Сайт на WP: периодически падает соединение с БД

12 3
maks_m
На сайте с 02.07.2013
Offline
101
4063

Что пишет хостер:

Данная проблема, вероятней всего связана с периодической нехваткой оперативной памяти, в следствие чего происходит принудительная перезагрузка демона программы-сервера баз данных MySQL. Об этом свидетельствую многочисленные логи.

Хотя мониторинг использования ресурсов сервера показывает более-менее равномерную нагрузку на ОЗУ - 40-70%. Хостер говорит, что иногда сайт использует все 100% и перезагружается. На мониторинге этого не видно, потому что он фиксирует нагрузку каждые минут 5.

Что в WP может пожирать столько памяти? Плагинов установлено минимум. Единственное, что может как-то нагружать сервер, так это большое количество «дополнительных полей» в звписях.

[Удален]
#1

посмотрите сколько запросов делают страницы

<?php

echo " Запросов: " . get_num_queries() . " | Секунд: "; timer_stop(1). " секунд | ";
if ( function_exists('memory_get_usage') )
echo ' | Потребление памяти: ' . round(memory_get_usage()/1024/1024, 2) . 'MB ';
?>
L
На сайте с 30.10.2015
Offline
34
#2

вордпресс любит жрать память. можно в конфиге прописать лимит памяти который он будет поедать, а можно установить кэширующий плагин(hyper cache по-моему), чтобы разгрузить память

...
totamon
На сайте с 12.05.2007
Offline
437
#3
maks_m:
Хотя мониторинг использования ресурсов сервера показывает более-менее равномерную нагрузку на ОЗУ - 40-70%.

равномерную нагрузку надо отличать от пиковой) сам столкнулся недавно, при обычной нагрузке в 10% сайт в один момент упал капитально... просто одновременно на 30 юзеров больше зашло)

кеширующий плагин хорошо нагрузку снимает с БД, попробуйте если не используете. ну и памяти можно же добавить вроде не дороже 100р за 1Г везде.

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
SeVlad
На сайте с 03.11.2008
Offline
1609
#4
maks_m:
Что пишет хостер:

Я бы ушел от хостера, у которого мускуль ребутиться из-за нехватки ОЗУ.

Однако если есть логи - что в них? Какие запросы отжирают память - выясняй. Для этого можно даже плагин в ВП поставить (для анализа мускуля), но лучше это не на ВП, а на сервер возложить.

Кеш-плагины конечно могут снизить нагрузку на БД, но это замазвание зелёнкой вместо лечения.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
maks_m
На сайте с 02.07.2013
Offline
101
#5

smartcode, levchernenko, спасибо. Поставил wp-super-cache. Как проверить, сколько теперь съедается памяти? С помощью php-кода в футере уже не получится, т.к. первый ответ от сервера закешировался и не обновляется.

---------- Добавлено 22.11.2015 в 18:22 ----------

SeVlad, сижу на CloudServer (1 ядро, 2 ГБ). Логи есть, только проблема в них разобраться:

Nov 10 10:30:51 i-8284-29400-VM kernel: Out of memory: Kill process 29328 (mysqld) score 51 or sacrifice child

Nov 10 10:30:51 i-8284-29400-VM kernel: Killed process 29328 (mysqld) total-vm:1186796kB, anon-rss:97276kB, file-rss:100kB
Nov 10 10:30:51 i-8284-29400-VM kernel: [20688] 27 20688 28837 110 12 0 0 mysqld_safe
Nov 10 10:30:51 i-8284-29400-VM kernel: [29635] 27 29328 296699 24729 125 0 0 mysqld
Nov 10 10:30:51 i-8284-29400-VM kernel: Out of memory: Kill process 29635 (mysqld) score 52 or sacrifice child
Nov 10 10:30:51 i-8284-29400-VM kernel: Killed process 29635 (mysqld) total-vm:1186796kB, anon-rss:98696kB, file-rss:220kB
Nov 10 10:30:56 i-8284-29400-VM kernel: [20688] 27 20688 28837 80 12 0 0 mysqld_safe
Nov 10 10:30:56 i-8284-29400-VM kernel: [29637] 27 29637 28837 86 11 0 0 mysqld_safe
Nov 10 10:31:06 i-8284-29400-VM kernel: [20688] 27 20688 28837 80 12 0 0 mysqld_safe
Nov 10 10:31:11 i-8284-29400-VM mysqld_safe: 151110 10:31:11 mysqld_safe Number of processes running now: 0
Nov 10 10:31:11 i-8284-29400-VM mysqld_safe: 151110 10:31:11 mysqld_safe mysqld restarted
Nov 10 11:47:32 i-8284-29400-VM kernel: mysqld invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
Nov 10 11:47:32 i-8284-29400-VM kernel: mysqld cpuset=/ mems_allowed=0
Nov 10 11:47:32 i-8284-29400-VM kernel: CPU: 0 PID: 29671 Comm: mysqld Not tainted 3.10.0-229.14.1.el7.x86_64 #1
Nov 10 11:47:32 i-8284-29400-VM kernel: [20688] 27 20688 28837 95 12 0 0 mysqld_safe
Nov 10 11:47:32 i-8284-29400-VM kernel: [29659] 27 29659 295066 30693 137 0 0 mysqld
Nov 10 11:47:32 i-8284-29400-VM kernel: Out of memory: Kill process 29659 (mysqld) score 65 or sacrifice child
Nov 10 11:47:32 i-8284-29400-VM kernel: Killed process 29659 (mysqld) total-vm:1180264kB, anon-rss:122684kB, file-rss:88kB
Nov 10 11:47:32 i-8284-29400-VM kernel: [20688] 27 20688 28837 95 12 0 0 mysqld_safe
Nov 10 11:47:32 i-8284-29400-VM kernel: [29673] 27 29659 295066 30841 137 0 0 mysqld
Nov 10 11:47:32 i-8284-29400-VM kernel: Out of memory: Kill process 29673 (mysqld) score 65 or sacrifice child
Nov 10 11:47:32 i-8284-29400-VM kernel: Killed process 29673 (mysqld) total-vm:1180264kB, anon-rss:123168kB, file-rss:196kB
Nov 10 11:47:32 i-8284-29400-VM kernel: mysqld: page allocation failure: order:0, mode:0x201da
Nov 10 11:47:32 i-8284-29400-VM kernel: CPU: 0 PID: 29673 Comm: mysqld Not tainted 3.10.0-229.14.1.el7.x86_64 #1
Nov 10 11:47:33 i-8284-29400-VM mysqld_safe: /usr/bin/mysqld_safe: line 183: 29659 Killed nohup /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock < /dev/null >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1
Nov 10 11:47:36 i-8284-29400-VM mysqld_safe: 151110 11:47:36 mysqld_safe Number of processes running now: 0
Nov 10 11:47:37 i-8284-29400-VM mysqld_safe: 151110 11:47:37 mysqld_safe mysqld restarted
Nov 10 11:49:24 i-8284-29400-VM mysqld_safe: /usr/bin/mysqld_safe: line 183: 7502 Killed nohup /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock < /dev/null >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1
Nov 10 11:49:24 i-8284-29400-VM kernel: [20688] 27 20688 28837 105 12 0 0 mysqld_safe
Nov 10 11:49:24 i-8284-29400-VM kernel: [ 7502] 27 7502 294924 28533 132 0 0 mysqld
Nov 10 11:49:24 i-8284-29400-VM kernel: Out of memory: Kill process 7502 (mysqld) score 60 or sacrifice child
Nov 10 11:49:24 i-8284-29400-VM kernel: Killed process 7502 (mysqld) total-vm:1179696kB, anon-rss:112672kB, file-rss:1460kB
Nov 10 11:49:26 i-8284-29400-VM mysqld_safe: 151110 11:49:26 mysqld_safe Number of processes running now: 0
Nov 10 11:49:26 i-8284-29400-VM mysqld_safe: 151110 11:49:26 mysqld_safe mysqld restarted
Nov 10 16:17:46 i-8284-29400-VM mysqld_safe: /usr/bin/mysqld_safe: line 183: 7832 Killed nohup /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock < /dev/null >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1
Nov 10 16:17:46 i-8284-29400-VM kernel: [20688] 27 20688 28837 106 12 0 0 mysqld_safe
Nov 10 16:17:46 i-8284-29400-VM kernel: [ 7832] 27 7832 295577 30269 136 0 0 mysqld
Nov 10 16:17:46 i-8284-29400-VM kernel: Out of memory: Kill process 7832 (mysqld) score 64 or sacrifice child
Nov 10 16:17:46 i-8284-29400-VM kernel: Killed process 7832 (mysqld) total-vm:1182308kB, anon-rss:121076kB, file-rss:0kB
Nov 10 16:17:50 i-8284-29400-VM mysqld_safe: 151110 16:17:50 mysqld_safe Number of processes running now: 0
Nov 10 16:17:50 i-8284-29400-VM mysqld_safe: 151110 16:17:50 mysqld_safe mysqld restarted
Nov 10 16:19:04 i-8284-29400-VM kernel: [20688] 27 20688 28837 93 12 0 0 mysqld_safe
Nov 10 16:19:04 i-8284-29400-VM kernel: [ 7782] 27 7782 295432 25579 125 0 0 mysqld
Nov 10 16:19:04 i-8284-29400-VM kernel: Out of memory: Kill process 7782 (mysqld) score 54 or sacrifice child
Nov 10 16:19:04 i-8284-29400-VM kernel: Killed process 7782 (mysqld) total-vm:1181728kB, anon-rss:101488kB, file-rss:828kB
SeVlad
На сайте с 03.11.2008
Offline
1609
#6
maks_m:
Логи есть, только проблема в них разобраться:

Этого мало. Нужно найти запросы к БД. И уже искать кто и в каких случаях их генерит.

Если хостер тебе в этом не поможет - поставь плагин для анализа нагрузки на БД, который может вести логи/статистику нагруженных запросов.

Но для этого кеш-плагин отключи и удали кеш.

totamon
На сайте с 12.05.2007
Offline
437
#7
maks_m:
Как проверить, сколько теперь съедается памяти? С помощью php-кода в футере уже не получится, т.к. первый ответ от сервера закешировался и не обновляется.

на странице показано сколько именно для этой страницы использовано памяти, по серверу можно смотреть командой top через shell-клиент. Там же и с нагрузкой можно разобраться, хорошая статья описывающая работу этой команды http://habrahabr.ru/company/host-tracker/blog/220413/

maks_m
На сайте с 02.07.2013
Offline
101
#8

SeVlad, название плагина толкового не подскажешь?

LEOnidUKG
На сайте с 25.11.2006
Offline
1752
#9
сижу на CloudServer (1 ядро, 2 ГБ).

А у вас есть доступ к настройки мускуля? Или это типа виртуальный хостинг так по модному называется? Или это гарантированные вам, но тогда с какого фига вам mysql перезагружают? Сколько хочу столько и гружу.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
totamon
На сайте с 12.05.2007
Offline
437
#10
LEOnidUKG:
но тогда с какого фига вам mysql перезагружают?

это ВПС видимо, а mysql сам падает от недостатка памяти, или может еще из-за чего...

LEOnidUKG:
Сколько хочу столько и гружу.

выше выделенных ресурсов грузить то не получится, как не хочется)

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий