Como eu determino qual processo está usando mais memória física?

3

Já corri free -t -m e ps aux --sort -rss , mas não entendo porque há uma diferença entre a saída desses dois comandos em relação à quantidade de memória física total atualmente em uso. As saídas são as seguintes.

# free -t -m

             total       used       free     shared    buffers     cached
Mem:           995        863        132          0         30        658
-/+ buffers/cache:        173        821
Swap:            0          0          0
Total:         995        863        132

# ps aux --sort -rss

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql      824  0.0  6.1 887776 63128 ?        Ssl  Feb24   0:35 /usr/sbin/mysqld
www-data  1411  0.0  1.5 235640 15696 ?        S    Feb24   0:01 /usr/sbin/apache2 -k start
www-data  1349  0.0  1.5 238744 15300 ?        S    Feb24   0:01 /usr/sbin/apache2 -k start
www-data  1158  0.0  1.4 238308 14812 ?        S    Feb24   0:02 /usr/sbin/apache2 -k start
www-data  1412  0.0  1.4 238264 14764 ?        S    Feb24   0:01 /usr/sbin/apache2 -k start
www-data   906  0.0  1.3 234120 14200 ?        S    Feb24   0:02 /usr/sbin/apache2 -k start
www-data  2673  0.0  1.3 234096 14044 ?        S    12:52   0:00 /usr/sbin/apache2 -k start
www-data  1413  0.0  1.2 236368 12916 ?        S    Feb24   0:01 /usr/sbin/apache2 -k start
www-data  2577  0.0  1.1 232496 12184 ?        S    10:54   0:00 /usr/sbin/apache2 -k start
www-data  1484  0.0  1.1 232180 12028 ?        S    Feb24   0:01 /usr/sbin/apache2 -k start
www-data  2675  0.0  1.1 231924 11704 ?        S    12:53   0:00 /usr/sbin/apache2 -k start
root       867  0.0  0.9 229388  9888 ?        Ss   Feb24   0:03 /usr/sbin/apache2 -k start
root      2939  0.0  0.4  88304  4084 ?        Ss   16:20   0:00 sshd: root@pts/0    
root      1023  0.0  0.3 584428  3840 ?        Sl   Feb24   0:00 /usr/sbin/console-kit-daemon --no-daemon
root      2956  0.0  0.3  21872  3148 pts/0    Ss   16:20   0:00 -bash
root       620  0.0  0.2  52252  2836 ?        Ss   Feb24   0:00 /usr/sbin/sshd -D
root         1  0.0  0.2  26756  2428 ?        Ss   Feb24   0:00 /sbin/init
syslog     428  0.0  0.1 247456  1560 ?        Sl   Feb24   0:01 rsyslogd -c5
root      3094  0.0  0.1  18600  1300 pts/0    R+   17:06   0:00 ps aux --sort -rss
root       316  0.0  0.1  21552  1272 ?        Ss   Feb24   0:00 /sbin/udevd --daemon
102        408  0.0  0.1  24004  1140 ?        Ss   Feb24   0:00 dbus-daemon --system --fork
root       766  0.0  0.1  21324  1028 ?        Ss   Feb24   0:00 cron
root       725  0.0  0.0  15828   976 tty5     Ss+  Feb24   0:00 /sbin/getty -8 38400 tty5
root       739  0.0  0.0  15828   976 tty3     Ss+  Feb24   0:00 /sbin/getty -8 38400 tty3
root       743  0.0  0.0  15828   976 tty6     Ss+  Feb24   0:00 /sbin/getty -8 38400 tty6
root       719  0.0  0.0  15828   972 tty4     Ss+  Feb24   0:00 /sbin/getty -8 38400 tty4
root       735  0.0  0.0  15828   964 tty2     Ss+  Feb24   0:00 /sbin/getty -8 38400 tty2
root       900  0.0  0.0  15828   960 tty1     Ss+  Feb24   0:00 /sbin/getty -8 38400 tty1
root       453  0.0  0.0  21548   816 ?        S    Feb24   0:00 /sbin/udevd --daemon
root       454  0.0  0.0  21548   816 ?        S    Feb24   0:00 /sbin/udevd --daemon
root       763  0.0  0.0   4376   684 ?        Ss   Feb24   0:00 acpid -c /etc/acpi/events -s /var/run/acpid.socket
root       313  0.0  0.0  17316   636 ?        S    Feb24   0:00 upstart-udev-bridge --daemon
root       303  0.0  0.0  15268   412 ?        S    Feb24   0:00 upstart-file-bridge --daemon
root       600  0.0  0.0  15256   412 ?        S    Feb24   0:00 upstart-socket-bridge --daemon
daemon     767  0.0  0.0  19124   168 ?        Ss   Feb24   0:00 atd
root         2  0.0  0.0      0     0 ?        S    Feb24   0:00 [kthreadd]

Eu tenho 243068 KB (237 MB) como a soma da coluna RSS e o comando free mostra 863 MB sendo usado. Estou fazendo algo errado? Posso assumir o MySQL como o processo principal consumindo a memória física, apesar da grande diferença? Está realmente usando 63128 KB (61 MB)?

** UPDATE * *

Site muito bom explicando como interpretar a saída free -t -m : link

    
por Igor de Lorenzi 25.02.2014 / 18:39

1 resposta

0

Aqui está um código para listar processos e uso de memória de menor para maior tamanho de uso.

sudo ps -e -orss=,args= | sort -b -k1,1n 

(você pode adicionar , pid = se quiser o id do processo)

Você pode aprender sobre o comando aqui

Se você quiser graficamente:

No traço, digite Monitor do sistema .

pressione Guia Processos

Você pode ver cada processo pelo uso da memória em Memória

Prima Memória para ordená-los por Aumentar ordem ou diminuir

    
por nux 25.02.2014 / 19:26