Justworks.ru

25Янв/111

Как узнать объем памяти, занимаемый системой?

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

Консольный способ - команда free (ключ -m - показывать данные в мегабайтах):

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2004       1183        820          0        108        705
-/+ buffers/cache:        369       1635
Swap:          996          0        996

Строка «Mem:» показывает потребление памяти системой с учетом буферов и кеша.
Строка «-/+ buffers/cache» - без учета буферов и кеша. Как правило, стоит смотреть именно на вторую строку. Ну а строка «Swap:» показывает использование файла подкачки. Важно отметить, что информация из второй строки не учитывает кеша внутренних структур ядра. Это можно легко проверить, запустив последовательность команд:

$ sync
# echo 3 > /proc/sys/vm/drop_caches
# free -m

Количество свободной памяти во второй строке команды free скорее всего возрастет.

Для детальной диагностики можно также посмотреть:
/proc/meminfo
/proc/slabinfo и slabtop
и информацию по конкретному процессу /proc/$pid/status (другие файлы не менее интересны). Посмотреть использование памяти модулями ядра можно командой lsmod.


Комментарии (1) Пинги (0)
  1. Отлично, долгожданный ответ на интересующий меня вопрос! Глубокие познания Linux всегда приятно встретить единомышленников. Я правда пока не так компетентен, но научусь


Оставить комментарий

Нет обратных ссылок на эту запись.