我们都知道linux命令有很多,但在linux下要准确的计算一个进程实际使用的物理内存是多少却不是那么的简单,今个我就介绍个简单,方便,明了的工具命令smem. Smem命令: 背景:smem是一款命令行下的内存使用情况报告工具,它能够给用户提供Linux系统下的内存使用的多种报告。 不废话了,干 依赖安装: [root@node02 ~]# yum install epel-release [root@node02 ~]# yum install smem python-matplotlib python-tk 要显示系统中的每个进程的占用内存状态,可执行如下命令: [root@node02 ~]# smem -K -s uss PID User Command Swap USS PSS RSS 4642 root /sbin/agetty --noclear tty1 0 168 207 868 4633 root /usr/sbin/crond -n 0 672 724 1620 4560 root /sbin/auditd 0 704 734 1300 4630 root /usr/lib/systemd/systemd-lo 0 800 848 1756 2385 root /usr/lib/systemd/systemd-ud 0 852 929 1896 4604 dbus /usr/bin/dbus-daemon --syst 0 760 1005 2340 5106 root /usr/libexec/postfix/master 0 1148 1215 2172 7134 postfix pickup -l -t unix -u 0 1184 1578 4088 5122 postfix qmgr -l -t unix -u 0 1228 1622 4132 4892 root /usr/sbin/sshd -D 0 1024 1627 4356 4631 root /usr/bin/abrt-watch-log -F 0 1488 2202 4836 7473 root -bash 56 2184 2244 3060 2379 root /usr/sbin/lvmetad -f 0 2588 2674 3620 4591 root /usr/sbin/abrtd -d -s 0 2156 2905 5744 2356 root /usr/lib/systemd/systemd-jo 0 1584 3114 5544 1 root /usr/lib/systemd/systemd -- 0 3040 3174 4300 7465 root sshd: root@pts/0 8 2560 3231 6104 4589 root /usr/bin/vmtoolsd 0 2512 3268 6308 4588 root /usr/bin/VGAuthService -s 0 2664 3392 6268 7818 root python /usr/bin/smem -K -s 0 5712 6414 7920 4629 polkitd /usr/lib/polkit-1/polkitd - 0 7760 8185 10516 4888 root /usr/bin/python2 -Es /usr/s 20 12452 13724 17308 4902 root /usr/bin/containerd 0 29640 29736 30500 4894 root /usr/bin/dockerd -H fd:// 0 58600 58755 59840 4893 root /usr/sbin/rsyslogd -n 120 106416 107983 110672 注释: 参数-K:用来显示内存单位 参数-s: 排序 Uss:对uss列进行排序,输出系统中所有系统进行占用内存的大小

也可用百分号的形式显示每个进程的占用系统内存的比率,如下图所示: [root@node02 ~]# smem -p -s uss PID User Command Swap USS PSS RSS 4642 root /sbin/agetty --noclear tty1 0.00% 0.01% 0.01% 0.05% 4633 root /usr/sbin/crond -n 0.00% 0.04% 0.04% 0.09% 4560 root /sbin/auditd 0.00% 0.04% 0.04% 0.07% 4604 dbus /usr/bin/dbus-daemon --syst 0.00% 0.04% 0.05% 0.12% 4630 root /usr/lib/systemd/systemd-lo 0.00% 0.04% 0.05% 0.09% 2385 root /usr/lib/systemd/systemd-ud 0.00% 0.05% 0.05% 0.10% 4892 root /usr/sbin/sshd -D 0.00% 0.05% 0.09% 0.23% 5106 root /usr/libexec/postfix/master 0.00% 0.06% 0.06% 0.12% 7134 postfix pickup -l -t unix -u 0.00% 0.06% 0.08% 0.22% 5122 postfix qmgr -l -t unix -u 0.00% 0.07% 0.09% 0.22% 4631 root /usr/bin/abrt-watch-log -F 0.00% 0.08% 0.12% 0.26% 2356 root /usr/lib/systemd/systemd-jo 0.00% 0.08% 0.15% 0.27% 4591 root /usr/sbin/abrtd -d -s 0.00% 0.11% 0.15% 0.31% 7473 root -bash 0.00% 0.12% 0.12% 0.16% 4589 root /usr/bin/vmtoolsd 0.00% 0.13% 0.17% 0.34% 7465 root sshd: root@pts/0 0.00% 0.14% 0.17% 0.32% 2379 root /usr/sbin/lvmetad -f 0.00% 0.14% 0.14% 0.19% 4588 root /usr/bin/VGAuthService -s 0.00% 0.14% 0.18% 0.33% 1 root /usr/lib/systemd/systemd -- 0.00% 0.16% 0.17% 0.23% 7917 root python /usr/bin/smem -p -s 0.00% 0.30% 0.34% 0.42% 4629 polkitd /usr/lib/polkit-1/polkitd - 0.00% 0.41% 0.43% 0.56% 4888 root /usr/bin/python2 -Es /usr/s 0.00% 0.66% 0.73% 0.92% 7911 root /opt/etcd/bin/etcd --name=e 0.00% 1.57% 1.57% 1.57% 4902 root /usr/bin/containerd 0.00% 1.57% 1.58% 1.62% 4894 root /usr/bin/dockerd -H fd:// 0.00% 3.11% 3.12% 3.18% 4893 root /usr/sbin/rsyslogd -n 0.00% 5.67% 5.74% 5.88% 注释: 参数-p:以百分号的形式报告内存的使用情况

显示系统中的每一个用户的内存使用情况: [root@node02 ~]# smem -u -k User Count Swap USS PSS RSS dbus 1 0 760.0K 1005.0K 2.3M postfix 2 0 2.4M 3.1M 8.0M polkitd 1 0 7.6M 8.0M 10.3M root 22 192.0K 259.8M 268.8M 303.9M 注释: 参数-u:用户