Падение виртуального сервера (KVM)

12
Евгений Русаченко
На сайте с 17.04.2013
Offline
157
1887

Доброго времени суток.

Имеется сервер в Hetzner разделенный на виртуальные серверы. Один из виртуальных серверов постоянно падает с нехваткой памяти. OOM Killer начинает прибивать процессы.

TOP системы перед тем, как OOM начинает убивать процессы:

top - 23:18:22 up 3 days, 6:17, 0 users, load average: 17.28, 10.44, 4.94

Tasks: 175 total, 2 running, 171 sleeping, 0 stopped, 2 zombie

Cpu(s): 4.3%us, 2.8%sy, 0.2%ni, 39.0%id, 52.8%wa, 0.7%hi, 0.1%si, 0.0%st

Mem: 11.736G total, 11.658G used, 80.383M free, 22.500M buffers

Swap: 4095.992M total, 4095.992M used, 0.000k free, 9039.207M cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

2808 mysql 15 0 2640m 1.3g 6576 S 4.3 11.0 222:18.01 /usr/sbin/mysqld --

7754 root 15 0 395m 188m 7024 S 0.0 1.6 0:47.51 /usr/sbin/clamd

7703 root 18 0 231m 183m 6124 S 0.0 1.5 0:14.62 /usr/sbin/clamd

20301 *** 16 0 3321m 94m 24m S 1.3 0.8 0:00.24 /usr/local/apache/b

2518 *** 16 0 3310m 92m 33m S 0.0 0.8 0:00.13 /usr/local/apache/b

2034 *** 17 0 3310m 90m 31m S 0.0 0.8 0:00.17 /usr/local/apache/b

20322 *** 15 0 3335m 86m 4396 S 1.0 0.7 0:00.16 /usr/local/apache/b

1191 *** 15 0 3318m 86m 21m S 0.3 0.7 0:00.94 /usr/local/apache/b

20887 *** 16 0 3312m 81m 20m S 0.0 0.7 0:00.13 /usr/local/apache/b

20101 root 10 -5 120m 81m 868 S 0.0 0.7 0:00.06 nginx: worker proce

TOP системы за 2 минуты до падения:

top - 23:12:08 up 3 days, 6:11, 0 users, load average: 1.04, 1.16, 1.27

Tasks: 155 total, 1 running, 154 sleeping, 0 stopped, 0 zombie

Cpu(s): 4.7%us, 1.9%sy, 0.0%ni, 90.3%id, 2.7%wa, 0.3%hi, 0.2%si, 0.0%st

Mem: 11.736G total, 11.576G used, 164.453M free, 71.234M buffers

Swap: 4095.992M total, 4095.992M used, 0.000k free, 8971.262M cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

2808 mysql 15 0 2640m 1.3g 6576 S 3.7 11.0 222:02.21 /usr/sbin/mysqld --

7754 root 15 0 395m 188m 7024 S 0.0 1.6 0:47.45 /usr/sbin/clamd

7703 root 18 0 231m 183m 6124 S 0.0 1.5 0:14.62 /usr/sbin/clamd

2518 *** 16 0 3310m 92m 33m S 0.0 0.8 0:00.13 /usr/local/apache/b

2034 *** 17 0 3310m 90m 31m S 0.0 0.8 0:00.17 /usr/local/apache/b

20887 *** 16 0 3312m 81m 20m S 0.0 0.7 0:00.13 /usr/local/apache/b

30094 root 10 -5 120m 81m 888 S 0.0 0.7 0:00.79 nginx: worker proce

30092 root 10 -5 120m 81m 880 S 0.0 0.7 0:01.83 nginx: worker proce

30093 root 10 -5 120m 81m 880 S 0.0 0.7 0:02.05 nginx: worker proce

30095 root 10 -5 120m 81m 880 S 0.0 0.7 0:02.69 nginx: worker proce

Ядро системы: Linux <hostname> 2.6.18-348.3.1.el5 #1 SMP Mon Mar 11 19:39:25 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux

Операционная система CentOS 5.9 (Final)

В логах ничего при этом нет, причем и о том, что OOM что-то убивает.

При помощи VNC удалось сделать такой скрин:

Проблема наблюдается только на одной виртуалке, на остальных все гладко. Не подскажите в чем может быть беда? На ноде в логах также пусто.

Почта для домена ( https://lite.host/pochta/dlya-domena ) с безлимитными пользователями и доменами / Хостинг ( https://lite.host/hosting/dlya-blogov ) от 99 рублей / поддержка Let's Encrypt / PHP от 5.2 до 8.3 / SSH / бесплатный перенос,
S
На сайте с 23.04.2010
Offline
25
#1

Swap: 4095.992M total, 4095.992M used, 0.000k free

Нехватка памяти , в том числе и swap-а.

Попробуйте размер swap-а увеличить ну и оптимизировать настройки apache и д.р

Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#2
snkua:
Swap: 4095.992M total, 4095.992M used, 0.000k free
Нехватка памяти , в том числе и swap-а.
Попробуйте размер swap-а увеличить ну и оптимизировать настройки apache и д.р

Также думал, но SWAP не используется активно. Туда попадают редкоиспользуемые страницы памяти. Посмотрите на cached память - 9 гб. В случае нехватки памяти система должна её освобождать и отдавать процессу, но при этом она этого не делает. Вопрос ставится почему?

Никакие sysctl настройки не крутил, все установлено по умолчанию из образа соседних серверов.

---------- Добавлено 18.04.2013 в 23:48 ----------

kernel.shmall был установлен выше имеющейся памяти на сервере. Поправил - буду ждать. Это вроде единственный лимит, который был выше возможного для имеющейся памяти.

P
На сайте с 08.03.2007
Offline
250
#3

Тут что-то непонятное - swap не должен быть заполнен до конца, никаких таких редкоиспользуемых страниц ровно 4 гигабйта у apache+nginx не бывает (обычно). Разве что плодятся мёртвые процессы и складываются в своп? Или у Mysql какие-то нетипичные параметры. Попробуйте выводить по крону список процессов, причём полный (не как в Вашем листинге), либо поставить zabbix (на соседнюю VDS) и помониторить раз в 30 секунд основные параметры.

Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#4
Pilat:
Тут что-то непонятное - swap не должен быть заполнен до конца, никаких таких редкоиспользуемых страниц ровно 4 гигабйта у apache+nginx не бывает (обычно). Разве что плодятся мёртвые процессы и складываются в своп? Или у Mysql какие-то нетипичные параметры. Попробуйте выводить по крону список процессов, причём полный (не как в Вашем листинге), либо поставить zabbix (на соседнюю VDS) и помониторить раз в 30 секунд основные параметры.

Проблема актуальна, если не перезагружать Apache начинает что-то попадать в SWAP, причем это "что-то" просто там лежит и не используется. Памяти свободной много при этом, вся отдана под дисковый кеш, но если при этом SWAP заполнится на 100%, то сервер падает с OOM Killer, хотя cached памяти 9 гб (как на скриншоте), Linux её просто не отдает программам.

Сейчас наблюдаю такую картинку, что 1 день бывает проработает нормально, потом начинает расти SWAP, постепенно, по чуть-чуть. Мертвых процессов Apache нет, колеблятся всегда от 5 до 20 максимум, зависит от нагрузки на сервер.

Параметры Apache такие:

StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 64
MaxClients 64
MaxRequestsPerChild 1000

RLimitMEM 8589934592
RLimitCPU 240

Проблема вряд ли связана с MySQL, настройки стандартные, подняты буферы, кеши, такая же конфигурация, один в один на соседнем контейнере KVM - работает исправно.

Apache ставился Cpanel через EasyApache с модулем MPM-ITK, грешу что что-то там не так. Планирую пересобрать ручками и понаблюдать как будет работать, если всё OK, то просто заменить Apache на свой и всё.

Andreyka
На сайте с 19.02.2005
Offline
822
#5

Попробуйте отключить своп вообще

И проверьте что жрет память

Не стоит плодить сущности без необходимости
Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#6
Andreyka:
Попробуйте отключить своп вообще
И проверьте что жрет память

Особо ничего не менялось. SWAP я подключил после появления проблемы, "мало ли, памяти не хватает".

Можно попробовать отключить еще раз, но как при этом выявлять, что кушает память? Память есть в этом случае, просто она отведена под cached.

P
На сайте с 08.03.2007
Offline
250
#7
P
На сайте с 08.03.2007
Offline
250
#8

удалено автором

Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#9
Pilat:
удалено автором

Да, я смотрел данную тему. Приведенные программки ничего не выводят:

Overall swap used: 0 kB
========================================
kB pid name
========================================

На сколько я понимаю, они должны выводить непосредственно те процессы, которые активно сидят в SWAP'е.

Andreyka
На сайте с 19.02.2005
Offline
822
#10

Если ничего не помогает - обратитесь к специалисту

12

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