开源是一种精神,分享是一种美德!

smem

相关命令:top,ps,free -m

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)

暂无评论

评论

名字:
验证码:
获取验证码
内容: