Назад | Перейти на главную страницу

Объяснение сжатия кеша Linux?

У нас есть сервер Linux, для которого график использования памяти Cacti сообщает об уменьшении размера кеша до тех пор, пока на сервере в конечном итоге не закончится память. Свободной памяти остается мало, что нормально для Linux. Я ожидаю, что размер кеша будет оставаться примерно постоянным с течением времени, и я пытаюсь подумать, что, возможно, с этим происходит.

Я предполагаю, что утечка памяти ядра не является вероятной проблемой.

Я также видел это, в котором говорится, что сохранение в файловую систему tmpfs возможно:

В Linux, в чем разница между «буферами» и «кешем», сообщаемыми командой free?

На кого еще я должен смотреть?

Уменьшение объема кеш-памяти при условии, что ваша свободная память и буферы остаются неизменными, просто означает, что некоторый процесс в системе, как считается, нуждается в этом больше (с технической точки зрения, «рабочий набор» страниц памяти для процессов, запущенных в системе, увеличился больше, поэтому ядру нужно хранить больше страниц в основной памяти).

То, что сказал Уомбл, правильно в отношении управления кешем, но это не исключает утечки памяти. Так что следите за тем, какие процессы кажутся незаметными в использовании памяти. После того, как вы определите подозрительные процессы, вам нужно будет определить, является ли это нормальным поведением, и в этом случае это может быть настраиваемое поведение или утечка памяти.

Такие службы, как MySQL, имеют настраиваемое количество оперативной памяти, которую они будут использовать для кэширования. Возможно, это слишком высокое значение для вашей системы, что делает кеширование MySQL слишком агрессивным. Уменьшение этого параметра может привести к снижению производительности, если в этом случае вы захотите увеличить объем оперативной памяти на сервере.