skeletor Posted October 23, 2012 Есть сервер Debian 6, ядро 2.6.32-5-amd64 . Параметры сервера CPU (Intel Core i7-3770 CPU @ 3.40GHz 8 ядер), Памяти 16 Гб, 2 Диска в RAID0 (2 x 3 TB SATA 6 Gb/s HDD 7200 rpm (Software-RAID 1)) + swap 32 Gb Другими словами Dedicated Server EX 4 на http://www.hetzner.de На нём поднят nginx+php+mysql. Памяти (потребляется 7гб из 16), процессора и дисков хватает с лихвой. Но где-то через пару дней что-то выедает почти всю память (свободно остаётся где-то 500 мб). А ещё через некоторое время сервер просто уходит в себя: сеть недоступна, Cron-задания невыполняются, то есть наступает полный ступор. Перегрузить через панель управления - не получается. Только через тикет (они сами каким-то ручным образом его перегружают), при этом, в ребут по логам уходит вроде бы корректно. Поддержка в hetzner отвечает стандартными фразами - понятия не имеем, и можем взять сервер на диагностику на сутки. И им по-барабану, что сервер в продакшине. Поставил cacti, думал смогу уловить момент, но LA, mem - не скакали в тот момент. Хотя агент snmp мог это и не уловить. Отключил сейчас все изменения в sysct.conf, limit.conf и пока наблюдаю. Может кто с таким сталкивался? Остался ещё 1 вариант - обновить ядро до версии 3.2, если опять зависнет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alexeymanikin Posted October 23, 2012 Была аналогичная проблема на более чем на 50 серверах на ядре 2.6.35, после недели работы сервер съедал гигов 30 памяти, причем убийство процессов не помогало. Решилось обновлением ядра до 3.0.28 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted October 23, 2012 А ps, к примеру, молчит как партизан и не сдает того кто память ест? если не успеваете зайти до момента когда уже не пускает, то поставьте atop, он историю писать умеет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
skeletor Posted October 24, 2012 ps ничего необычного не выводит, top/htop показывает те же цифры, что и до. Даже рестарт указанных служб не освобождает память. Значит, дело скорее всего не в них. Касательно atop - идея хорошая, попробую. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted October 24, 2012 в топе жмакнуть m (или M) и посмотреть, кто кушает. еще сделать cat /proc/meminfo по результатам уже можно будет что-то сказать... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
skeletor Posted October 24, 2012 Делал, но цифры не сходятся всё равно. имеется ввиду, из top/htop. Через /proc/meminfo - MemTotal: 16160948 kB MemFree: 502892 kB Buffers: 178412 kB Cached: 7436540 kB SwapCached: 0 kB Active: 1929572 kB Inactive: 6153940 kB Active(anon): 435528 kB Inactive(anon): 48180 kB Active(file): 1494044 kB Inactive(file): 6105760 kB Unevictable: 7269972 kB Mlocked: 7269972 kB SwapTotal: 33553328 kB SwapFree: 33553328 kB Dirty: 540 kB Writeback: 0 kB AnonPages: 7738528 kB Mapped: 27152 kB Shmem: 832 kB Slab: 196436 kB SReclaimable: 174656 kB SUnreclaim: 21780 kB KernelStack: 2288 kB PageTables: 29200 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 49714276 kB Committed_AS: 8025824 kB VmallocTotal: 34359738367 kB VmallocUsed: 122432 kB VmallocChunk: 34359610132 kB Смущает вот это Unevictable: 7269972 kB Mlocked: 7269972 kB Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted October 24, 2012 Mlocked - то, что заблокировано от своппироваиня вызовом mlock(), 7 гиг - многовато как-то... 7.5 гиг ушло под кеш, ядро откушало 200 метров. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
skeletor Posted October 24, 2012 Вот, обновил даже php до 5.3.18, но утечки продолжаются. Жду момента, когда будет КВМ и обновлю ядро. Можно и без КВМа, но всё равно стрёмновато. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
skeletor Posted October 24, 2012 Очень странно другое: # vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 498512 193808 7487920 0 0 9 10 45 2 2 1 97 0 2 0 0 498552 193808 7487920 0 0 0 6 526 696 1 0 99 0 2 0 0 498460 193816 7487924 0 0 0 202 580 4829 3 0 96 0 0 0 0 497576 193816 7487928 0 0 0 20 642 1285 6 1 93 0 0 0 0 497216 193816 7487932 0 0 0 8 462 2894 2 0 98 0 # monit status all | tail -8 System 'server.com.ua' status running monitoring status monitored load average [0.48] [0.31] [0.22] cpu 3.0%us 0.3%sy 0.1%wa memory usage 7984884 kB [49.4%] data collected Wed Oct 24 16:56:41 2012 Почему через vmstat и через monit разные показания? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
skeletor Posted October 25, 2012 Что сделал - обновил ядро до 3.2 - отключил полностью swap - отключил всё в sysctl - изменил распределение памяти: vm.overcommit_ratio=100 vm.overcommit_memory=2 Пока наблюдаю. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nuclearcat Posted October 27, 2012 kernel.panic = 5 kernel.panic_on_oops = 1 kernel.panic_on_stackoverflow = 1 kernel.panic_on_unrecovered_nmi = 1 kernel.unknown_nmi_panic = 1 vm.panic_on_oom = 1 Я бы сделал так, и поднял бы netconsole,на случай если oops не в сетевой подсистеме. Хоть сервер к жизни вернется сам. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...