На этот вопрос уже есть ответ:
Top is неточно показывает использование моей памяти или мой VPS-провайдер делает что-то странное? Как вы видите на рисунке ниже, он использует более 90% памяти, но если посмотреть, какие процессы фактически используют память, это не так. Даже не суммирую более 30%. Я знаю, что верхняя часть не отображается правильно, когда процессы имеют общую память, но, например, процессы httpd, которые используют общую память, почти не занимают какой-либо процент от всей доступной памяти, даже если суммировать.
Верхняя команда на картинке сортируется после использования памяти, поэтому нет большого скрытия процесса.
http://i.imgur.com/GGBXCN9.png (По-видимому, у меня не хватило репутации, чтобы публиковать изображения, это вопросы.)
Обновление с верхним выводом в виде текста :
Tasks: 49 total, 1 running, 48 sleeping, 0 stopped, 0 zombie
Cpu(s): 17.7%us, 1.1%sy, 0.0%ni, 81.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.3%st
Mem: 2097152k total, 1858988k used, 238164k free, 0k buffers
Swap: 2097152k total, 140740k used, 1956412k free, 1089504k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
812 mysql 20 0 513m 241m 5104 S 4.7 11.8 108:32.39 mysqld
882 root 20 0 344m 219m 6116 S 0.0 10.7 1:08.81 clamd
26111 root 20 0 851m 34m 9720 S 0.0 1.7 1:30.03 java
22155 cpanelro 20 0 94272 10m 2392 S 0.0 0.5 0:00.04 cpsrvd-ssl
22260 cpanelro 20 0 94092 9792 2272 S 0.0 0.5 0:00.02 cpsrvd-ssl
21175 cpanelro 20 0 94092 9704 2276 S 0.0 0.5 0:00.03 cpsrvd-ssl
7491 root 20 0 47732 8520 2176 S 0.0 0.4 0:00.10 leechprotect
623 named 20 0 245m 5256 1940 S 0.3 0.3 11:58.59 named
1639 root 20 0 46644 5172 1408 S 0.0 0.2 1:46.64 tailwatchd
1472 root 20 0 93828 4972 1352 S 0.0 0.2 0:17.42 cpsrvd-ssl
23781 root 20 0 38800 4928 2160 S 0.0 0.2 0:00.57 zsh
17788 nobody 20 0 69072 4336 2488 S 0.0 0.2 0:00.21 httpd
917 root 20 0 68588 4288 3000 S 0.0 0.2 0:28.16 httpd
21152 nobody 20 0 69124 4224 2456 S 0.0 0.2 0:00.05 httpd
20549 nobody 20 0 68992 3716 1996 S 0.0 0.2 0:00.07 httpd
20550 nobody 20 0 68992 3536 1792 S 0.0 0.2 0:00.06 httpd
21996 nobody 20 0 68992 3508 1788 S 0.0 0.2 0:00.02 httpd
20544 nobody 20 0 68992 3484 1804 S 0.0 0.2 0:00.05 httpd
21995 nobody 20 0 68992 3432 1704 S 0.3 0.2 0:00.02 httpd
22228 nobody 20 0 68992 3396 1704 S 0.0 0.2 0:00.00 httpd
22226 nobody 20 0 68588 3300 1924 S 0.0 0.2 0:00.00 httpd
21154 nobody 20 0 68720 3172 1716 S 0.0 0.2 0:00.03 httpd
Обновить бесплатно -m:
free -m
total used free shared buffers cached
Mem: 2048 1864 183 0 0 1063
-/+ buffers/cache: 800 1247
Swap: 2048 137 1910
Имейте в виду, что существует различие между «активной» и «потребляемой» памятью. Linux имеет тенденцию хранить большие объемы данных в памяти на случай, если они понадобятся в будущем. Но процессы могут не активно использовать эту память - в этом случае они сообщают о меньшем объеме «используемой» памяти.
Если процессу внезапно требуется больше памяти, то ядро освободит часть этих кэшированных данных и разрешит процессу
Таким образом, технически память одновременно «используется» и «свободна».
Вам следует ознакомиться с командой « free ». Мне также нравится использовать htop вместо top, поскольку он отображает эти различия.
Вот предыдущий вопрос, на который был дан довольно хороший ответ.