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

Понимание использования памяти и чисел в Linux

У меня есть веб-сервер под управлением Apache, на котором есть интересные цифры по использованию памяти.

Глядя наверху, у меня есть следующая информация о памяти

Mem:  11679976k total, 10917568k used,   762408k free,   384320k buffers
Swap:  4194296k total,        0k used,  4194296k free,  1103728k cached

Таким образом, за вычетом буферов и кеша используется примерно 9 ГБ памяти. free -m подтверждает это.

             total       used       free     shared    buffers     cached
Mem:         11406      10642        763          0        375       1077
-/+ buffers/cache:       9189       2217
Swap:         4095          0       4095

Этот веб-сервер очень загружен, поэтому, когда мы отключим apache, мы ожидаем, что использование памяти резко упадет, но это совсем не сильно.

Как мне узнать, что на самом деле использует всю эту память? Начиная с вывода, после выключения apache никто не использует много памяти. Это говорит мне, что никто не использует эту память, но система сообщает, что она используется.

У нас было несколько сбоев серверов из-за нехватки памяти, поэтому мы пытаемся лучше понять, что происходит.

Проверять, выписываться /proc/meminfo и /proc/slabinfo. В slabtop Команда может помочь вам понять содержимое slabinfo.

Существуют кеши, которые могут потреблять память, но не классифицируются как кеш или буферы по верхнему / свободному уровню. На ум приходят inode и dentry (особенно если у вас обширные файловые системы).