linux-内存状态监测工具-smem命令

 

smem

smem是一款打印内存使用情况的工具,它可以给用户提供内存使用的多种报告,它跟传统的内存工具不同的是,它有一个独特的功能,就是可以提供PSS报告

smem在centos中是没有预装的,可以直接yum安装

 

 

 

smem界面

在我们执行命令就会几列,最重要就有四列:Swap USS PSS RSS

 

 

swap

虚拟耗用内存(包含共享库占用的内存)

如果系统使用到了虚拟内存(virtual memory),因此要准确的计算出一个进程的实际占用的物理内存就不是那么简单,只知道进程的虚拟内存大小也并没有太大用处,因为还是无法获取到实际分配的物理内存大小

 

USS

进程独自占用的内存,只计算了进程独自占用的内存大小(不包含共享库占用的内存)

 

PSS

实际使用的物理内存(比例分配共享库占用的内存)

所有使用某共享库的程序均分该共享库占用的内存时,显然所有进程的PSS之和就是系统的内存使用量,它会更准确一点,它将共享内存的大小进行平均后,再分摊到各个进程上去

 

RSS

实际使用物理内存(包含共享库占用的内存)

使用top命令可以查询得到RSS内存值,是最常用常见的内存指标,表示进程占用的物理内存大小。

但是,将各进程的RSS相加起来,通常都会超过整个系统的内存消耗,因为RSS中包含了各个进程间共享的内存

 

 

 

smem命令选项

-H:不显示标题

-c:显示指定的那行列

    :smem -c uss

-t:在最后,增加一行用于显示总数

-R:显示物理RAM数量

-K:显示核映象路径

-m:PSS显示映射

-u:表示显示用户占用内存信息

-w:显示整个系统内存信息

-P:显示指定关键字的相关信息

    :smem -P mysql

-M: 用指定关键字在command列中查询、

    :smem -M httpd

-U:用指定关键字在user列中查询

    :smem -U apache

-n:让user列以数字的方式显示

-s:让指定的列进行排序

    例:smem -s user

-r:让显示的内容进行反向排序

    例:smem -r

-p:以百分比的方式来显示内存信息

-k:用于显示内存单元

 

 

=====================================================================================================

 

 

查找当前占用cpu或内存最多的几个进程

用一些命令组合起来,就可以实现

 

获取当前cpu使用率最高的前十个进程

ps aux | head -1;ps aux | sort -rn -k3 | head -10

这命令主要分成二部分,拆出来就行容易理解

ps aux | head -1
    ##主要用于获取标题
ps aux | sort -rn -k3 | head -10
    ##主要获取cpu使用最高前十名进程
    ##sort命令稍后有记录
    ##head -10 是获取前10行的数据

 

 

获取当前内存使用率最高的前十个进程

ps aux | head -1;ps aux | sort -rn -k4 | head -10

以上使用的命令跟获取cpu的命令一样,只是-k的值有点变化,因为在ps命令中%MEM列,排在第四列

 

 

 

sort命令

sort通常被用于排序来使用

语法:sort(选项)(参数)

 

选项

  1. -b:忽略每行前面开始出的空格字符;
  2. -c:检查文件是否已经按照顺序排序;
  3. -d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
  4. -f:排序时,将小写字母视为大写字母;
  5. -i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;
  6. -m:将几个排序号的文件进行合并;
  7. -M:将前面3个字母依照月份的缩写进行排序;
  8. -n:依照数值的大小排序;
  9. -o <输出文件>:将排序后的结果存入制定的文件;
  10. -r:以相反的顺序来排序;
  11. -t <分隔字符>:指定排序时所用的栏位分隔字符;
  12. <起始栏位> <结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

 

 

 

转载请注明原文链接:linux-内存状态监测工具-smem命令

发表评论:

共有 0 条评论

 Top