We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
MySQL падает
Re: MySQL падает
Сменил на ваш конфиг, бд легла, пока просто закоментировал с начальным конфигом, все работает.
Re: MySQL падает
Победил ошибку c Mysql при зажатом F5
При частом рефреше страницы nginx все запросы передает Apache, а апач на каждый новый запрос создает новый процесс, так как работает в режиме Prefork, соответственно каждый новый процесс съедает часть памяти, но кроме того, эти процессы начинают выполняться, в результате количество запросов к Mysql превышает число max_user_connections.
Для того, чтобы запретить nginx передавать в апач множественные запросы от отдного пользователя нужно файле /etc/nginx/nginx.conf в секции http прописать
limit_req_zone $binary_remote_addr zone=dyn:10m rate=10r/s;
Эта директива ограничивает количество запросов от одного клиента до 10 запросов в секунду
И в файле /home/username/conf/web/nginx.conf
во-первых выносим обработку статики отдельно:
location ~* ^.+\.(jpg|jpeg|gif|png|ico|svg|css|zip|tgz|gz|rar|bz2|exe|pdf|doc|xls|ppt|txt|odt|ods|odp|odf|tar|bmp|rtf|js|mp3|avi|mpeg|flv|html|htm)$ {
root /home/UserName/web/site.com/public_html;
access_log /var/log/httpd/domains/site.com.log combined;
access_log /var/log/httpd/domains/site.com.bytes bytes;
expires max;
try_files $uri @fallback;
}
А в данных передающихся апачу дописываем вызов директивы limit_req
location / {
limit_req zone=dyn burst=10;
proxy_pass http://ip:8080;
}
это позволит ограничить до 10 одновременных запросов к апачу от одного клиента, при привышении nginx будет отдавать для этого клиента ошибку 503, работа других клиентов нарушена не будет.
При желании 503 ошибку можно завернуть так, что клиент ее не увидит.
Тестировалось у DigitalOcean на сервере с 512Mb.
При частом рефреше страницы nginx все запросы передает Apache, а апач на каждый новый запрос создает новый процесс, так как работает в режиме Prefork, соответственно каждый новый процесс съедает часть памяти, но кроме того, эти процессы начинают выполняться, в результате количество запросов к Mysql превышает число max_user_connections.
Для того, чтобы запретить nginx передавать в апач множественные запросы от отдного пользователя нужно файле /etc/nginx/nginx.conf в секции http прописать
limit_req_zone $binary_remote_addr zone=dyn:10m rate=10r/s;
Эта директива ограничивает количество запросов от одного клиента до 10 запросов в секунду
И в файле /home/username/conf/web/nginx.conf
во-первых выносим обработку статики отдельно:
location ~* ^.+\.(jpg|jpeg|gif|png|ico|svg|css|zip|tgz|gz|rar|bz2|exe|pdf|doc|xls|ppt|txt|odt|ods|odp|odf|tar|bmp|rtf|js|mp3|avi|mpeg|flv|html|htm)$ {
root /home/UserName/web/site.com/public_html;
access_log /var/log/httpd/domains/site.com.log combined;
access_log /var/log/httpd/domains/site.com.bytes bytes;
expires max;
try_files $uri @fallback;
}
А в данных передающихся апачу дописываем вызов директивы limit_req
location / {
limit_req zone=dyn burst=10;
proxy_pass http://ip:8080;
}
это позволит ограничить до 10 одновременных запросов к апачу от одного клиента, при привышении nginx будет отдавать для этого клиента ошибку 503, работа других клиентов нарушена не будет.
При желании 503 ошибку можно завернуть так, что клиент ее не увидит.
Тестировалось у DigitalOcean на сервере с 512Mb.
Re: MySQL падает
Спасибо тебе мил человек. Я твое дело запихнул в тпл все сайты так прут))) Красота)
Re: MySQL падает
Спасибо Visioner за инструкцию.
Дело реально в Vest'е, я работал с кучей VPS'ок, в первый раз решил попробовать CentOS и данную панельку- начались проблемы =/
Дело реально в Vest'е, я работал с кучей VPS'ок, в первый раз решил попробовать CentOS и данную панельку- начались проблемы =/
Re: MySQL падает
Всё равно упал через пару часов :(
Перед падением /var/log/mysqld.log:
Оперативки 1gb. Добавил swap на 500мб по этой инструкции, посмотрим что будет.
Перед падением /var/log/mysqld.log:
Code: Select all
131214 11:24:31 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(135987200 bytes) failed; errno 12
131214 11:24:31 InnoDB: Completed initialization of buffer pool
131214 11:24:31 InnoDB: Fatal error: cannot allocate memory for the buffer pool
131214 11:24:31 [ERROR] Plugin 'InnoDB' init function returned error.
131214 11:24:31 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
131214 11:24:31 [ERROR] Unknown/unsupported storage engine: InnoDB
131214 11:24:31 [ERROR] Aborting
Re: MySQL падает
Сервер падает каждый день и только ночью, перед падением лог:
От не больших ддос атак есть защита, от F5 помогает :)
http://servachoc.net/anti_ddos.7z
Code: Select all
140106 9:54:30 [Note] /usr/libexec/mysqld: Normal shutdown
140106 9:54:30 [Note] Event Scheduler: Purging the queue. 0 events
140106 9:54:30 InnoDB: Starting shutdown...
140106 9:54:32 InnoDB: Shutdown completed; log sequence number 318544815
140106 9:54:32 [Note] /usr/libexec/mysqld: Shutdown complete
140106 09:54:32 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
140106 09:54:32 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140106 9:54:33 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
140106 9:54:33 [Note] Plugin 'FEDERATED' is disabled.
140106 9:54:33 InnoDB: The InnoDB memory heap is disabled
140106 9:54:33 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140106 9:54:33 InnoDB: Compressed tables use zlib 1.2.3
140106 9:54:33 InnoDB: Using Linux native AIO
140106 9:54:33 InnoDB: Initializing buffer pool, size = 128.0M
140106 9:54:33 InnoDB: Completed initialization of buffer pool
140106 9:54:33 InnoDB: highest supported file format is Barracuda.
140106 9:54:33 InnoDB: Waiting for the background threads to start
140106 9:54:34 InnoDB: 5.5.35 started; log sequence number 318544815
140106 9:54:34 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
140106 9:54:34 [Note] - '0.0.0.0' resolves to '0.0.0.0';
140106 9:54:34 [Note] Server socket created on IP: '0.0.0.0'.
140106 9:54:34 [Note] Event Scheduler: Loaded 0 events
140106 9:54:34 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.5.35' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL) by Remi
140106 9:54:40 [Warning] IP address '109.251.115.158' has been resolved to the host name '109.251.115.158.freenet.com.ua', which resembles IPv4-address itself.
http://servachoc.net/anti_ddos.7z
Re: MySQL падает
131214 11:24:31 InnoDB: Initializing buffer pool, size = 128.0Mifelse wrote:Всё равно упал через пару часов :(
Перед падением /var/log/mysqld.log:Оперативки 1gb. Добавил swap на 500мб по этой инструкции, посмотрим что будет.Code: Select all
131214 11:24:31 InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(135987200 bytes) failed; errno 12 131214 11:24:31 InnoDB: Completed initialization of buffer pool 131214 11:24:31 InnoDB: Fatal error: cannot allocate memory for the buffer pool 131214 11:24:31 [ERROR] Plugin 'InnoDB' init function returned error. 131214 11:24:31 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 131214 11:24:31 [ERROR] Unknown/unsupported storage engine: InnoDB 131214 11:24:31 [ERROR] Aborting
InnoDB: mmap(135987200 bytes) failed; errno 12
131214 11:24:31 InnoDB: Completed initialization of buffer pool
131214 11:24:31 InnoDB: Fatal error: cannot allocate memory for the buffer pool
так то по русски написано... в чем проблема...
если вы не используете для своих баз данных InnoDB уменьшите размер буферного пула для данного движка.
innodb_buffer_pool_size = 8M
совсем отключать движок InnoDB нельзя... т.к. Roundcube использует его для своих таблиц
исправьте в конфиге key_buffer --> key_buffer_sizeRoDGeR wrote:Сервер падает каждый день и только ночью, перед падением лог:
140106 9:54:33 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
опция key_buffer не работает с версии 5.5.10
-
- Posts: 258
- Joined: Fri Jan 10, 2014 7:34 pm
Re: MySQL падает
Вам это помогло?Visioner wrote:Победил ошибку c Mysql при зажатом F5
При частом рефреше страницы nginx все запросы передает Apache, а апач на каждый новый запрос создает новый процесс, так как работает в режиме Prefork, соответственно каждый новый процесс съедает часть памяти, но кроме того, эти процессы начинают выполняться, в результате количество запросов к Mysql превышает число max_user_connections.
Для того, чтобы запретить nginx передавать в апач множественные запросы от отдного пользователя нужно файле /etc/nginx/nginx.conf в секции http прописать
limit_req_zone $binary_remote_addr zone=dyn:10m rate=10r/s;
Эта директива ограничивает количество запросов от одного клиента до 10 запросов в секунду
И в файле /home/username/conf/web/nginx.conf
во-первых выносим обработку статики отдельно:
location ~* ^.+\.(jpg|jpeg|gif|png|ico|svg|css|zip|tgz|gz|rar|bz2|exe|pdf|doc|xls|ppt|txt|odt|ods|odp|odf|tar|bmp|rtf|js|mp3|avi|mpeg|flv|html|htm)$ {
root /home/UserName/web/site.com/public_html;
access_log /var/log/httpd/domains/site.com.log combined;
access_log /var/log/httpd/domains/site.com.bytes bytes;
expires max;
try_files $uri @fallback;
}
А в данных передающихся апачу дописываем вызов директивы limit_req
location / {
limit_req zone=dyn burst=10;
proxy_pass http://ip:8080;
}
это позволит ограничить до 10 одновременных запросов к апачу от одного клиента, при привышении nginx будет отдавать для этого клиента ошибку 503, работа других клиентов нарушена не будет.
При желании 503 ошибку можно завернуть так, что клиент ее не увидит.
Тестировалось у DigitalOcean на сервере с 512Mb.
Re: MySQL падает
- простите за тупой вопрос - а это где?А в данных передающихся апачу дописываем вызов директивы limit_req
Re: MySQL падает
Присоединяюсь к вопросу:)gorodsb wrote:- простите за тупой вопрос - а это где?А в данных передающихся апачу дописываем вызов директивы limit_req