Почему значения% MEM в верхней части не складываются в общую используемую память?

18

В настоящее время я отлаживаю проблемы с производительностью моего VPS, и для этого я пытаюсь понять, какой из процессов потребляет больше всего памяти. Чтение сверху, вот что я получаю:

Mem:    366544k total,   321396k used,    45148k free,      380k buffers
Swap:  1048572k total,   592388k used,   456184k free,     7756k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                  
12339 ruby      20   0  844m  74m 2440 S    0 20.8   0:24.84 ruby                                                                                     
12363 ruby      20   0  844m  73m 1576 S    0 20.6   0:00.26 ruby                                                                                     
21117 ruby      20   0  171m  33m 1792 S    0  9.3   2:03.98 ruby                                                                                     
11846 ruby      20   0  858m  21m 1820 S    0  6.0   0:09.15 ruby                                                                                     
21277 ruby      20   0  219m  11m 1648 S    0  3.2   2:00.98 ruby                                                                                     
  792 root      20   0  266m  10m 1024 S    0  3.0   1:40.06 ruby                                                                                     
  532 mysql     20   0  234m 4760 1040 S    0  1.3   0:41.58 mysqld                                                                                   
  793 root      20   0  250m 4616  984 S    0  1.3   1:20.55 ruby                                                                                     
  586 root      20   0  156m 4532  848 S    0  1.2   6:17.10 god                                                                                      
12315 ruby      20   0  175m 2412 1900 S    0  0.7   0:07.55 ruby                                                                                     
 3844 root      20   0 44036 2132 1028 S    0  0.6   1:08.22 ruby                                                                                     
10939 ruby      20   0  179m 1884 1724 S    0  0.5   0:08.33 ruby                                                                                     
 4660 ruby      20   0  229m 1592 1440 S    0  0.4   2:55.46 ruby                                                                                     
 3879 nobody    20   0 37428  964  520 S    0  0.3   0:01.99 nginx 

Как вы можете видеть, моя память используется примерно на 90% (что является моей проблемой), но когда вы складываете значения% MEM, она достигает только 50-60%. То же самое, RES не составляет до ~ 350 МБ. Почему? Я неправильно понимаю их значение?

Благодарность

Бен
источник
Я думаю, что top корректирует количество строк, отображаемых с размером дисплея, поэтому все процессы могут быть не видны.
Самик

Ответы:

6

Я пытаюсь понять, какой из процессов ест больше всего памяти.

Это просто: рубин !

когда вы складываете значения% MEM, оно составляет только около 50-60%

На самом деле, сложение столбцов, как показано, дает 69,2% .

  • Как отметил Самик, это, безусловно, не включает в себя все процессы в вашей системе - попробуйте вставить выходные данные команды, top -b -n 1чтобы получить полную информацию в файле и поделиться ею с нами, чтобы мы могли помочь вам лучше.

  • Кроме того, ядро ​​занимает некоторое количество памяти, и некоторые виды VPS (например, Xen, KVM) зарезервируют некоторую дополнительную память при загрузке для их внутреннего использования. Pastebin выход dmesgтоже.

Для улучшения показателей и простоты использования я рекомендую использовать htopУстановить htop вместо top с включенной опцией «Скрыть потоки пользовательского пространства»:

введите описание изображения здесь

Также посмотрите на memtop:

введите описание изображения здесь

иш
источник
Вот полный верхний вывод: paste.ubuntu.com/1055673 и dmesg: paste.ubuntu.com/1055674 Использование htop дает мне другой вывод! Я вижу три из 22,4% процессов MEM, на самом деле, многие процессы дублируются (mysqld тоже много раз). В любом случае, мне нравится вывод, намного чище ... Memtop тоже крут, я могу лучше понять, какое из моих приложений ruby ​​потребляет больше всего памяти;)
Бен
0

topКоманда linux показывает всю ramиспользуемую память не только для вас, но и для системы. Linux cachesнекоторые области с вашего жесткого диска, чтобы ускорить ваш компьютер. Рекомендуется использовать любой другой монитор памяти.

Альберто Гареа
источник