Re: MySQL падает
Posted: Tue Sep 10, 2013 11:01 am
Сменил на ваш конфиг, бд легла, пока просто закоментировал с начальным конфигом, все работает.
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
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.
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
исправьте в конфиге 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.
Вам это помогло?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.
- простите за тупой вопрос - а это где?А в данных передающихся апачу дописываем вызов директивы limit_req
Присоединяюсь к вопросу:)gorodsb wrote:- простите за тупой вопрос - а это где?А в данных передающихся апачу дописываем вызов директивы limit_req