Утечка пямяти в Линукс
Зачем ядро такое старое?
2.6.16. Это не от меня зависит, его инсталлируют хуй знает кто, где-то за границей.
у меня как-то была проблема, когда из-за выделения слишком маленького буфера под память интегрированной видеокарты (gf 6300, кажется текла память (проприетарные драйвера нвидии). После выделения большего объёма течь перестало.
Зачем ядро такое старое?зачем используешь "зачем" вместо "почему"?
grep Slab -A2 /proc/meminfo
Slab: 186572 kB
SReclaimable: 165300 kB
SUnreclaim: 21272 kB
в данном случае 165Мб освободится по запросу
что вообще за устройство?Просто сервер, много работает с диском и сетью.
Патч не установить, но мои попытки вызвать освобождение памяти ни к чему не привели.
Тут проблема в том, что размер слаба в Меминфо и сумма страниц кешей в slabinfo не совпадают. Я проверил на другом сервере - там они очень похожи, а тут 54G против 300М. Как это возможно?
В такой ситуации хуй знает кто из-за границы неминуемо этот сервак ребутнёт, другого выбора у него, пожалуй, нет.
Это верно, но я посмотрел на еще один соседний сервак, там назревает похожая проблема, поэтому хотелось бы выяснить причины (сервак, который ОК, в другом регионе и там немного другая версия ядра).
Ну за год находятся и исправляются десятки багов в системе выделения памяти, вашему ядру, как тут говорилось, года 3 или больше, вряд ли кто сейчас навскидку скажет, который из ста мог давать такой эффект.
2.6.16 был long time support, поддержка закончилась год назад. без четвёртого числа не сказать сколько там багов
в нём для тебя и нет особого смысла, он изменяет по виду только формат вывода.
думаешь там четвёртое число, без названия дистрибутива?
если люди с kernel.org предоставляют LTS ядро и дистр поставляет ту же версию, то логичным было бы думать, что оно на основе ванильного. А может там действительно 2.6.16[.0]-superlinux
лишь бы не редхат, в 2.6.9 которого есть кммиты из 2.6.31
это sles10 скорее всего и он от ванильного далеко в сторону ушёл
они-то наверняка в курсе, что за баг
Я засек, что тут что-то неладно с ReiserFS. Поставил прогу записывать данные по кешам и размер Slab из меминфо. Вычислю корреляцию между leakом и колебаниями кешей в размерах, тогда видно будет.
2.6.16.60-0.31-smphttp://forums.novell.com/novell-product-support-forums/suse-...
но там тоже нет ответа
Оставить комментарий
Papazyan
Каким-то образом вся память на машине оказалась сожранной. Исследование всяких системных сообщений в /proc показало, что единственный кандидат - это Slab (пользовательские процессы, если судить по ps, не виновны):cat /proc/meminfo
MemTotal: 66013012 kB
MemFree: 9470408 kB
Buffers: 317304 kB
Cached: 1086040 kB
SwapCached: 44080 kB
Active: 944396 kB
Inactive: 558576 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 66013012 kB
LowFree: 9470408 kB
SwapTotal: 68157424 kB
SwapFree: 67991776 kB
Dirty: 976 kB
Writeback: 0 kB
AnonPages: 60704 kB
Mapped: 9572 kB
Slab: 54946420 kB
CommitLimit: 101163928 kB
Committed_AS: 739192 kB
PageTables: 7240 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 318532 kB
VmallocChunk: 34359419791 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
Но в slabinfo нет абсолютно никаких кешей, размер которых превышал бы 100 мегабайт. Как так может быть, что поле Slab в meminfo на порядок больше, чем сумма всех его кешей с запасом?