Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Сервер баз данных
  • Search

MySQL падает

Вопросы по работе Сервера баз данных
MySQL, PostgreSQL, MariaDB, Percona Server, phpMyAdmin, phpPgAdmin
Post Reply
  • Print view
Advanced search
229 posts
  • Page 2 of 23
    • Jump to page:
  • Previous
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 23
  • Next
rez0n
Posts: 149
Joined: Fri Jan 25, 2013 8:04 am
Contact:
Contact rez0n
Website

Re: MySQL падает
  • Quote

Post by rez0n » Thu Aug 29, 2013 2:09 pm

max_connections=25
max_user_connections=20

Исходя из тестов - этот параметр нужно подымать как можно выше (или вообще убирать и не ограничивать), так как по его достижении - MySQL блокирует все подключения на некоторое время.
Я думаю ограничение на кол-во подключений от каждого пользователя нужно разрулить через nginx
Top

skid
VestaCP Team
Posts: 1476
Joined: Wed Apr 06, 2011 11:12 pm

Re: MySQL падает
  • Quote

Post by skid » Thu Aug 29, 2013 2:15 pm

От нагрузки падает mysql или apache или весь сервер?
Top

rez0n
Posts: 149
Joined: Fri Jan 25, 2013 8:04 am
Contact:
Contact rez0n
Website

Re: MySQL падает
  • Quote

Post by rez0n » Thu Aug 29, 2013 2:19 pm

Конкретно mysql.
2 варианта для примера.

1. max-connections - 20 = mysql просто заблочит подключения, через 5 секунд вернется в штатный режим.
2. max-connections - 200 = mysql падает.

Все остальное, в это время - работает отлично.
Top

skid
VestaCP Team
Posts: 1476
Joined: Wed Apr 06, 2011 11:12 pm

Re: MySQL падает
  • Quote

Post by skid » Thu Aug 29, 2013 2:32 pm

Если при 200 соединениях mysql с ошибкой "cannot allocate memory for the buffer pool", значит в этот момент на сервере заканчивается свободная оперативная память.

Для того чтобы сервер не пытался съесть больше чем это физически возможно, можно ограничить кол-во запросов параметром max-connections.

На сколько я знаю ISP не изменяет настройки mysql сервера по умолочанию, возможно это в данной сиутации

Code: Select all

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Top

skid
VestaCP Team
Posts: 1476
Joined: Wed Apr 06, 2011 11:12 pm

Re: MySQL падает
  • Quote

Post by skid » Thu Aug 29, 2013 2:34 pm

Так, же можно вопользоваться советом по уменьшению innodb пула
[mysqld]
innodb_buffer_pool_size = 10M
Top

rez0n
Posts: 149
Joined: Fri Jan 25, 2013 8:04 am
Contact:
Contact rez0n
Website

Re: MySQL падает
  • Quote

Post by rez0n » Thu Aug 29, 2013 2:35 pm

Я подозреваю что там nginx не дает погрузнуть sql серверу.

Могу выложить конфиг mysql оттуда.

UPD. Мне всего то нужно сделать так, чтобы один единственный пользователь не смог посредством случайно (или не случайно) зажатого F5 - положить SQL или вывести всем сообщение "No connection to SQL" пускай даже кратковременно.
Top

rez0n
Posts: 149
Joined: Fri Jan 25, 2013 8:04 am
Contact:
Contact rez0n
Website

Re: MySQL падает
  • Quote

Post by rez0n » Thu Aug 29, 2013 2:45 pm

skid wrote:Так, же можно вопользоваться советом по уменьшению innodb пула
[mysqld]
innodb_buffer_pool_size = 10M
У меня так и есть.
PS. База в MyISAM
Top

skid
VestaCP Team
Posts: 1476
Joined: Wed Apr 06, 2011 11:12 pm

Re: MySQL падает
  • Quote

Post by skid » Thu Aug 29, 2013 3:15 pm

В таком случае можно ограничить кол-во запросов с одного ip. Добавьте в /etc/nginx/nginx.conf секцию

Code: Select all

    # Limit connections
    limit_conn_zone $binary_remote_addr zone=perip:10m;
    limit_conn perip 4;
и перезапустите nginx
Top

rez0n
Posts: 149
Joined: Fri Jan 25, 2013 8:04 am
Contact:
Contact rez0n
Website

Re: MySQL падает
  • Quote

Post by rez0n » Thu Aug 29, 2013 3:37 pm

Не то.
1. 2х секундное зажатие F5 - can't connect to MySQL. Сработал max_connections
2. Закомментировал в my.cnf - max_connections = пришлось жать дольше, секунд 7-10. Упал. http://verbin.pp.ua/screen/Quaded_-_Xsh ... .36.44.png

В процессе этого действа создается уйма "воркеров" httpd. Может быть в этом дело?
UPD.
Попробовал так.

Code: Select all

KeepAlive On
MaxKeepAliveRequests 20
KeepAliveTimeout 10
Не помогло.

UPD 2.
Подсунул ему конфиг от MySQL сервера который не падает - не помогло.
Top

rez0n
Posts: 149
Joined: Fri Jan 25, 2013 8:04 am
Contact:
Contact rez0n
Website

Re: MySQL падает
  • Quote

Post by rez0n » Thu Aug 29, 2013 7:24 pm

Привет снова. Нашел частичное решение данного трабла.
Нужен своп! :)

Code: Select all

dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
swapon /swapfile
В файл /etc/fstab добавляем строку

Code: Select all

/swapfile swap swap defaults 0 0
Image
Теперь все это дело уходит в swap и mysql не вешается. Иногда выдает 500ю шибку правда.

Но все же, может есть решения более изящные? Может есть еще у кого то мысли?
Так же есть смежный вопрос, вот пришел посетитель на сайт, зажал тот же F5 и все, пока он не отпустит - сервер будет висеть в обработке его запросов. Каким образом можно это пресечь?
Top


Post Reply
  • Print view

229 posts
  • Page 2 of 23
    • Jump to page:
  • Previous
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 23
  • Next

Return to “Сервер баз данных”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

Login  •  Register

I forgot my password