LINUX.ORG.RU
решено ФорумAdmin

Кушать подано DDR-RAM, система не освобождает кешируемую память.

 ,


1

3

Привет всем, может кто-то сталкивался с такой проблемой, есть сервер для виртуализации, использование времени CPU вообще нет, а вот память, за сутки забивается вся целиком в cached... написал скриптик который её чистит, графики ниже. С чем может быть связано? Исходные данные: Debian x64, 32 Gb DDR RAM

Скриптик такой:

sync
echo 3 > /proc/sys/vm/drop_caches

Графики (за неделю):

UPD. Поправил ссылки на графики.



Последнее исправление: yakunin (всего исправлений: 2)

Детский вопрос: а для чего принудительно чистить память? Разве система не сделает это самостоятельно в случае необходимости? А скриптик вредный, он сводит к нулю саму идею кэширования данных в памяти и связанное с этим увеличение скорости работы сервера.

adamantan
()

У тебя по ссылкам 404. Ну и linuxatemyram.com навернул, надеюсь?

entefeed ☆☆☆
()

сталкивался неоднократно. только это называется «работа linux с памятью», и не проблема вовсе.

SevikL ★★★★★
()
Ответ на: комментарий от adamantan

Все как раз в этом и дело, что самостоятельно она не освобождает кешированную памятью. Если принудительно не выбрасывать кеш, то в итоге система через 30-40 дней выкидывает ошибку и перегружается. При очистке кеша все работает нормально. Есть мысли что это связано как-то с промежуточным буфером при записи на жесткие диски... Но пока другого решения не нашел.

yakunin
() автор топика
Ответ на: комментарий от yakunin

Talk's cheap. Show us the code. (c)

А по делу - что именно за ошибка? Где трейсы и дампы? Без них все эти разговоры про неосвобождение кэшей и падение на ровном месте - это сплошное кукарекание.

whoami
()
Ответ на: комментарий от JB

Графики перезалил, спасибо! free -m сейчас выглядит так: (но это потому что отработал скрипт, сейчас все хорошо, на графике видно когда кеш наполняется и в 12 ночи каждого дня срабатывает скрипт и сбрасывает все из памяти, видно скачки.)

 free -m
             total       used       free     shared    buffers     cached
Mem:         32179       7995      24184        248        107       2020
-/+ buffers/cache:       5866      26313
Swap:        10480          0      10480
yakunin
() автор топика
Ответ на: комментарий от int13h
uname -a
Linux virtual 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) x86_64 GNU/Linux
yakunin
() автор топика
Ответ на: комментарий от Elyas

Рассматриваю этот вариант как самый крайний, но все-таки. Спасибо!

yakunin
() автор топика
Ответ на: комментарий от JB

вывод free -m в студию

cat /proc/meminfo информативнее. Может у него всё выжрано теми кэшами которые нельзя просто так взять и дропнуть.

MrClon ★★★★★
()
Ответ на: комментарий от yakunin

на графиках вообще нет ничего аномального

искать причину падений надо в другом

JB ★★★★★
()
Ответ на: комментарий от MrClon

cat /proc/meminfo информативнее. Может у него всё выжрано теми кэшами которые нельзя просто так взять и дропнуть.

как вариант - битая память. Когда кеш добирается до битых ячеек начинает происходить неведомая фигня и сервер уходит в панику. Без трейса или дампа тут можно долго гадать

JB ★★★★★
()
Последнее исправление: JB (всего исправлений: 2)
Ответ на: комментарий от JB

Согласен. Но трейсы и дампы у ТСа уже запрашивали, так-что я решил не повторяться.

MrClon ★★★★★
()
Ответ на: комментарий от yakunin

Всё-таки, название темы нужно исправлять. Первая часть - бессмысленный набор слов, а вторая...

система не освобождает кешируемую память.

А что должна? Память в Linux (да и в Android - тоже) должна работать, то есть, в идеале должна быть забита кэшем под завязку. И это никаким образом не может быть причиной падения службы или перезагрузки. Меня умиляет, когда владельцы смартфонов показывают друг другу количество свободной памяти, наивно полагая, что чем больше свободно, тем лучше.

adamantan
()

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

kirill_rrr ★★★★★
()
Ответ на: комментарий от JB

Сорри, что влез. Но я сталкивался с ситуацией, когда: linux, вместо того, чтобы чистить кеш, уходит в swap. Это в общем случае нормально? Есть смысл редко используемые данные положить на диск, и при этом жалеть cache?

DALDON ★★★★★
()
Ответ на: комментарий от kirill_rrr

Да вроде как она не отображается. Для хост ОС, память отжирается просто процессом kvm. Не более.

DALDON ★★★★★
()

А ты так и не опредлил что именно отожрало столько? Если нет - определяй тогда.

Frost ★★★
()
Последнее исправление: Frost (всего исправлений: 1)
Ответ на: комментарий от DALDON

linux, вместо того, чтобы чистить кеш, уходит в swap. Это в общем случае нормально?

Когда ты говоришь «уходит в swap», то что именно ты имеешь в виду? Он просто в него уходит или постоянно из него возвращается и уходит снова?

anonymous
()
Ответ на: комментарий от DALDON

Сорри, что влез. Но я сталкивался с ситуацией, когда: linux, вместо того, чтобы чистить кеш, уходит в swap. Это в общем случае нормально? Есть смысл редко используемые данные положить на диск, и при этом жалеть cache?

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

JB ★★★★★
()
Ответ на: комментарий от DALDON

Есть смысл редко используемые данные положить на диск, и при этом жалеть cache?

Вполне. Например, утечки. Или действительно редко используемые данные.

redgremlin ★★★★★
()
Ответ на: комментарий от DALDON

я сталкивался с ситуацией, когда: linux, вместо того, чтобы чистить кеш, уходит в swap

Как вы этого добиваетесь? Я позарез хочу такого поведения. А то как память кончается, вместо того, чтобы сбросить ненужное в кеш и продолжить нормальную работу, система урезает до нуля кеши с буферами и начинает чудовищно тормозить на дисковых операциях. Всякие swappiness/vfs_cache_pressure на это поведение никак не влияют. И оно характерно для любых Linux-ядер за последние лет 10, от Gentoo до Ubuntu и Android.

KRoN73 ★★★★★
()

Один знакомый мне сисадмин боролся с «Бездействием системы» на оффтопике, которое жрало 99% проца.

Llevellyn
()
Ответ на: комментарий от anonymous

Когда ты говоришь «уходит в swap», то что именно ты имеешь в виду? Он просто в него уходит или постоянно из него возвращается и уходит снова?

Не проверял, но думаю, что просто уходит и всё.

DALDON ★★★★★
()
Ответ на: комментарий от DALDON

Это нормально - ненужное копируется в страничный файл, а система получает возможность оперативно пере-заюзать страницы памяти под что-нибудь более насущное, таким образом повышая производительность системы в целом. Проблемы возникают только когда ненужное вдруг становится нужным: постоянный процесс реклайма данных из свопа говорит о недостаточности физической памяти в системе, а ежели система изредка начинает тянуть данные из свопа - то это ничего такого не говорит, но может быть проблемой если приложение чувствительно ко времени обработки запросов.

anonymous
()
Ответ на: комментарий от anonymous

Это нормально - ненужное копируется в страничный файл, а система получает возможность оперативно пере-заюзать страницы памяти под что-нибудь более насущное, таким образом повышая производительность системы в целом. Проблемы возникают только когда ненужное вдруг становится нужным: постоянный процесс реклайма данных из свопа говорит о недостаточности физической памяти в системе, а ежели система изредка начинает тянуть данные из свопа - то это ничего такого не говорит, но может быть проблемой если приложение чувствительно ко времени обработки запросов.

А где можно посмотреть насколько часто реклайм происходит? :)

DALDON ★★★★★
()
Ответ на: комментарий от DALDON

vmstat по дефолту показывает si/so (swap ins / swap outs) или pi/po (page ins / page outs), например

anonymous
()
Ответ на: комментарий от KRoN73

Как раз это и происходит, я имею ввиду ситуацию когда свободная память вся уходит в кеш все начинает жутко тормозить, через какое-то время такого торможения система паникует и перегружается. Как-то вот так. При том что из swap практически ничего не берет и объем реальной памяти в 32 Gb.

yakunin
() автор топика

В данный момент решил радикально сменить ситуацию не меняя при этом особо железо. На время вместо рейда системных дисков подсунул один с FreeBSD 10.2 x64, за сутки отработал без каких либо проблем. Посмотрю как это будет жить в течении недели и если все ок. Система с Debian будет заменена на FreeBSD.

Всем спасибо за участие!

yakunin
() автор топика
Ответ на: комментарий от yakunin

Кстати:

yakunin (32.03.2016 9:06:13)

32го марта - это чо? ЛОР под Линуксом чтоли работает??

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.