我已经运行了free -t -m
和ps aux --sort -rss
,但我不明白为什么这两个命令的输出在当前使用的总物理内存量方面存在差异。输出如下。
# 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]
RSS 列的总和为 243068 KB (237 MB),而 free 命令显示已使用 863 MB。我做错了吗?尽管差异很大,我是否可以假设 MySQL 是消耗物理内存的主要进程?它真的使用了 63128 KB (61 MB) 吗?
**更新**
非常好的网站,解释如何解释free -t -m
输出:http://www.linuxatemyram.com/
答案1
下面是一个代码,用于列出进程及其内存使用情况,从小到大。
sudo ps -e -orss=,args= | sort -b -k1,1n
( 你可以加,pid=如果你想要进程 ID)
您可以了解 ps 命令这里
如果您想要图形化:
在破折号中输入系统监视器。
按进程选项卡
您可以通过以下内存使用情况查看每个进程记忆
按下记忆按以下方式排序增加订购或减少