smem是Linux系统上的一款可以生成多种内存耗用报告的命令行工具。与现有工具不一样的是smem可以报告实际使用的物理内存(PSS),这是一种更有意义的指标。可以衡量虚拟内存系统的库和应用程序所占用的内存数量。
由于大部分的物理内存通常在多个应用程序之间共享,名为实际使用物理内存(RSS)的这个标准的内存耗用衡量指标会大大高估内存耗用情况。PSS这个参数而是衡量了每个应用程序在每个共享内存区中的“公平分配”,给出了一个切合实际的衡量指标。Options:
-h, --help show this help message and exit
-H, --no-header disable header line
-c COLUMNS, --columns=COLUMNS
columns to show
-t, --totals show totals
-R REALMEM, --realmem=REALMEM
amount of physical RAM
-K KERNEL, --kernel=KERNEL
path to kernel image
-m, --mappings show mappings
-u, --users show users
-w, --system show whole system
-P PROCESSFILTER, --processfilter=PROCESSFILTER
process filter regex
-M MAPFILTER, --mapfilter=MAPFILTER
map filter regex
-U USERFILTER, --userfilter=USERFILTER
user filter regex
-n, --numeric numeric output
-s SORT, --sort=SORT field to sort on
-r, --reverse reverse sort
-p, --percent show percentage
-k, --abbreviate show unit suffixes
--pie=PIE show pie graph
--bar=BAR show bar graph
-S SOURCE, --source=SOURCE
[root@bigserver2 ~]# smem -u #参数-u 显示每个用户所耗用的内存总量 User Count Swap USS PSS RSS chrony 1 0 684 758 1780 dbus 1 0 716 813 1728 postfix 2 0 2420 3331 8128 polkitd 1 0 11800 12304 14404 root 22 0 1855336 1882298 1977520 [root@bigserver2 ~]# smem -p #查看耗用内存情况的百分比 PID User Command Swap USS PSS RSS 696 root /usr/sbin/irqbalance --fore 0.00% 0.00% 0.00% 0.01% 671 root /sbin/auditd 0.00% 0.00% 0.00% 0.01% 516 root /usr/sbin/lvmetad -f 0.00% 0.01% 0.01% 0.01% 715 root /usr/sbin/crond -n 0.00% 0.01% 0.01% 0.01% 738 chrony /usr/sbin/chronyd 0.00% 0.01% 0.01% 0.01% 706 dbus /bin/dbus-daemon --system - 0.00% 0.01% 0.01% 0.01% 705 root /usr/lib/systemd/systemd-lo 0.00% 0.01% 0.01% 0.01% 1630 root -bash 0.00% 0.00% 0.01% 0.02% 16260 root -bash 0.00% 0.00% 0.01% 0.02% 736 root login -- root 0.00% 0.01% 0.01% 0.02% 1185 root /usr/libexec/postfix/master 0.00% 0.01% 0.01% 0.02% 517 root /usr/lib/systemd/systemd-ud 0.00% 0.01% 0.01% 0.02% 967 root /usr/sbin/sshd -D 0.00% 0.01% 0.01% 0.03% 16362 postfix pickup -l -t unix -u 0.00% 0.01% 0.01% 0.03% 1187 postfix qmgr -l -t unix -u 0.00% 0.01% 0.01% 0.03% 16258 root sshd: root@pts/0 0.00% 0.01% 0.02% 0.04% 1 root /usr/lib/systemd/systemd -- 0.00% 0.02% 0.02% 0.03% 695 root /usr/sbin/rsyslogd -n 0.00% 0.02% 0.03% 0.05% 494 root /usr/lib/systemd/systemd-jo 0.00% 0.03% 0.04% 0.05% 16369 root python /usr/bin/smem -p 0.00% 0.05% 0.06% 0.07% 704 polkitd /usr/lib/polkit-1/polkitd - 0.00% 0.10% 0.10% 0.12% 965 root /usr/bin/python -Es /usr/sb 0.00% 0.10% 0.11% 0.14% 1141 root java -Dzookeeper.log.dir=/b 0.00% 1.03% 1.05% 1.14% 1906 root /usr/lib/jvm/java-1.8.0-ope 0.00% 1.31% 1.35% 1.48% 1793 root /usr/lib/jvm/java-1.8.0-ope 0.00% 1.48% 1.52% 1.65% 1996 root /usr/lib/jvm/java-1.8.0-ope 0.00% 3.00% 3.03% 3.17% 1257 root java -Xmx1G -Xms1G -server 0.00% 8.17% 8.19% 8.28% [root@bigserver2 ~]# smem -w #查看系统内存使用情况 Area Used Cache Noncache firmware/hardware 0 0 0 kernel image 0 0 0 kernel dynamic memory 937184 766356 170828 userspace memory 1893856 44176 1849680 free memory 9285136 9285136 0 [root@bigserver2 ~]# smem -w -p Area Used Cache Noncache firmware/hardware 0.00% 0.00% 0.00% kernel image 0.00% 0.00% 0.00% kernel dynamic memory 7.74% 6.33% 1.41% userspace memory 15.63% 0.36% 15.27% free memory 76.63% 76.63% 0.00% #参数-R REALMEM,REALMEM这个值是指物理内存数量。此参数可以让smem在整个系统(-w)的输出中发现固件/硬件所耗用的内存数量(对比上下即可发现,注意firmware/hardware) [root@bigserver2 ~]# smem -R 24G -w Area Used Cache Noncache firmware/hardware 13049648 0 13049648 kernel image 0 0 0 kernel dynamic memory 938004 766352 171652 userspace memory 1893800 44176 1849624 free memory 9284372 9284372 0 [root@bigserver2 ~]# smem -c "name user pss" #参数-c 用来显示需要展示的列 Name User PSS irqbalance root 385 auditd root 564 lvmetad root 690 crond root 720 chronyd chrony 758 dbus-daemon dbus 813 systemd-logind root 820 bash root 942 bash root 946 login root 1117 master root 1224 systemd-udevd root 1260 sshd root 1612 pickup postfix 1643 qmgr postfix 1688 sshd root 2541 systemd root 2651 rsyslogd root 4133 systemd-journal root 4371 python root 7239 polkitd polkitd 12304 tuned root 13858 java root 127773 java root 163813 java root 183915 java root 367656 java root 992176 [root@bigserver2 ~]# smem -s rss #参数-s 根据某一列(例如 rss)来排序. PID User Command Swap USS PSS RSS 671 root /sbin/auditd 0 536 564 1120 696 root /usr/sbin/irqbalance --fore 0 304 385 1208 715 root /usr/sbin/crond -n 0 676 720 1612 516 root /usr/sbin/lvmetad -f 0 636 690 1616 705 root /usr/lib/systemd/systemd-lo 0 776 820 1712 706 dbus /bin/dbus-daemon --system - 0 716 813 1728 738 chrony /usr/sbin/chronyd 0 684 758 1780 1630 root -bash 0 496 942 2152 16260 root -bash 0 500 946 2160 1185 root /usr/libexec/postfix/master 0 1160 1224 2196 517 root /usr/lib/systemd/systemd-ud 0 1188 1260 2232 736 root login -- root 0 764 1117 2716 1 root /usr/lib/systemd/systemd -- 0 2524 2651 3760 16362 postfix pickup -l -t unix -u 0 1188 1643 4040 1187 postfix qmgr -l -t unix -u 0 1232 1688 4088 967 root /usr/sbin/sshd -D 0 980 1612 4128 16258 root sshd: root@pts/0 0 1668 2541 5372 494 root /usr/lib/systemd/systemd-jo 0 3032 4371 6568 695 root /usr/sbin/rsyslogd -n 0 2760 4133 6640 16375 root python /usr/bin/smem -s rss 0 6552 7243 8748 704 polkitd /usr/lib/polkit-1/polkitd - 0 11800 12304 14404 965 root /usr/bin/python -Es /usr/sb 0 12496 13858 16980 1141 root java -Dzookeeper.log.dir=/b 0 125308 127773 138512 1906 root /usr/lib/jvm/java-1.8.0-ope 0 159148 163813 179776 1793 root /usr/lib/jvm/java-1.8.0-ope 0 179248 183915 199876 1996 root /usr/lib/jvm/java-1.8.0-ope 0 362984 367656 383624 1257 root java -Xmx1G -Xms1G -server 0 989712 992176 1002916 [root@bigserver2 ~]# smem -s rss -r #参数-r 一般与参数-s结合使用,表示反转排序(从升序改为降序) PID User Command Swap USS PSS RSS 1257 root java -Xmx1G -Xms1G -server 0 989712 992176 1002916 1996 root /usr/lib/jvm/java-1.8.0-ope 0 362984 367656 383624 1793 root /usr/lib/jvm/java-1.8.0-ope 0 179248 183915 199876 1906 root /usr/lib/jvm/java-1.8.0-ope 0 159148 163813 179776 1141 root java -Dzookeeper.log.dir=/b 0 125308 127773 138512 965 root /usr/bin/python -Es /usr/sb 0 12496 13858 16980 704 polkitd /usr/lib/polkit-1/polkitd - 0 11800 12304 14404 16376 root python /usr/bin/smem -s rss 0 6552 7243 8748 695 root /usr/sbin/rsyslogd -n 0 2760 4133 6640 494 root /usr/lib/systemd/systemd-jo 0 3032 4371 6568 16258 root sshd: root@pts/0 0 1668 2541 5372 967 root /usr/sbin/sshd -D 0 980 1612 4128 1187 postfix qmgr -l -t unix -u 0 1232 1688 4088 16362 postfix pickup -l -t unix -u 0 1188 1643 4040 1 root /usr/lib/systemd/systemd -- 0 2524 2651 3760 736 root login -- root 0 764 1117 2716 517 root /usr/lib/systemd/systemd-ud 0 1188 1260 2232 1185 root /usr/libexec/postfix/master 0 1160 1224 2196 16260 root -bash 0 500 946 2160 1630 root -bash 0 496 942 2152 738 chrony /usr/sbin/chronyd 0 684 758 1780 706 dbus /bin/dbus-daemon --system - 0 716 813 1728 705 root /usr/lib/systemd/systemd-lo 0 776 820 1712 516 root /usr/sbin/lvmetad -f 0 636 690 1616 715 root /usr/sbin/crond -n 0 676 720 1612 696 root /usr/sbin/irqbalance --fore 0 304 385 1208 671 root /sbin/auditd 0 536 564 1120 [root@bigserver2 ~]# smem -M mysql #参数-M 过滤相关进程 PID User Command Swap USS PSS RSS 1185 root /usr/libexec/postfix/master 0 104 106 112 1187 postfix qmgr -l -t unix -u 0 104 162 224 16362 postfix pickup -l -t unix -u 0 104 162 224
评论(0)
暂无评论