Прежде чем на самом деле спросить, просто чтобы прояснить: да, я знаю о дисковом кеше, и нет, это не мой случай :) Извините, за эту преамбулу :)
Я использую CentOS 5. Каждое приложение в системе сильно меняется, а система работает очень медленно. Когда я делаю free -m , вот что я получил:
             total       used       free     shared    buffers     cached
Mem:          3952       3929         22          0          1         18
-/+ buffers/cache:       3909         42
Swap:        16383         46      16337
Таким образом, у меня есть только 42 Мб для использования! Насколько я понимаю, -/+ buffers/cache фактически не считает дисковый кеш, так что у меня действительно только 42 Мб, верно? Я подумал, что могу ошибаться, поэтому я попытался отключить кеширование диска, но это не дало эффекта - картина осталась прежней.
Итак, я решил выяснить, кто использует всю мою оперативную память, и я использовал top для этого. Но, по-видимому, он сообщает, что ни один процесс не использует мою оперативную память. Единственный процесс в моем топе - это MySQL, но он использует 0,1% оперативной памяти и 400 Мб подкачки. Та же картина, когда я пытаюсь запустить другие сервисы или приложения - все идут в swap, top показывает, что MEM не используется (максимум 0.1% для любого процесса).
top - 15:09:00 up  2:09,  2 users,  load average: 0.02, 0.16, 0.11
Tasks: 112 total,   1 running, 111 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4046868k total,  4001368k used,    45500k free,      748k buffers
Swap: 16777208k total,    68840k used, 16708368k free,    16632k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
 3214 ntp       15   0 23412 5044 3916 S  0.0  0.1   0:00.00  17m ntpd
 2319 root       5 -10 12648 4460 3184 S  0.0  0.1   0:00.00 8188 iscsid
 2168 root      RT   0 22120 3692 2848 S  0.0  0.1   0:00.00  17m multipathd
 5113 mysql     18   0  474m 2356  856 S  0.0  0.1   0:00.11 472m mysqld
 4106 root      34  19  251m 1944 1360 S  0.0  0.0   0:00.11 249m yum-updatesd
 4109 root      15   0 90152 1904 1772 S  0.0  0.0   0:00.18  86m sshd
 5175 root      15   0 90156 1896 1772 S  0.0  0.0   0:00.02  86m sshd
Перезапуск не помогает, и, кстати, он очень медленный, чего я обычно не ожидаю на этой машине (4 ядра, 4 Гб оперативной памяти, RAID1).
Итак, с этим - я почти уверен, что это не дисковый кеш, который использует ОЗУ, потому что обычно его следует уменьшить и позволить другим процессам использовать ОЗУ, а не переходить в режим обмена.
Итак, наконец, вопрос в том, есть ли у кого-нибудь идеи, как выяснить, какой процесс на самом деле так интенсивно использует память?
