加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

linux的top命令查看系统资源(loadaverage)

(2015-02-08 01:15:56)
标签:

it

linux

top

free

系统消耗

分类: 程序设计积累

今天网上详细学习了下linux系统查看系统资源的命令,主要有top,free。摘录总结记录于此。

主要是top cpu和free 内存。还有load average 负载。

简介
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。
比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表。
该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。

下面详细介绍它的使用方法。

参数含义:
top - 00:22:15 up 3 days,  3:17,  1 user,  load average: 0.15, 0.16, 0.15
Tasks: 282 total,   4 running, 278 sleeping,   0 stopped,   0 zombie
Cpu(s): 11.4%us, 27.5%sy,  0.0%ni, 60.8%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:   8058872k total,  7257728k used,   801144k free,   384452k buffers
Swap:  2097144k total,        0k used,  2097144k free,  2846240k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                              
27766 root      20   447m 385m 3052 S 68.1  4.9 269:09.77 beam                                                                                                                 
32325 root      20   486m 417m 3056 R 58.2  5.3   1189:29 beam                                                                                                                 
 6672 root      20   432m 392m 3072 R 51.2  5.0 568:07.92 beam                                                                                                                 
12614 root      20   503m 455m 3076 S 50.8  5.8   1470:38 beam                                                                                                                 
27754 root      20   169m 136m 3052 R 26.9  1.7  98:27.10 beam                                                                                                                 
 6680 root      20   141m 107m 3052 S 17.9  1.4 136:11.88 beam                                                                                                                 
12604 root      20   140m 109m 3056 S 11.3  1.4 317:44.42 beam                                                                                                                 
32319 root      20   154m 124m 3056 S  9.3  1.6 261:01.83 beam            

统计信息区前五行是系统整体的统计信息。
第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

00:22:15    当前时间
up 3 days,  3:17,    系统运行时间,格式为时:分
1 user    当前登录用户数
load average:0.15, 0.16, 0.15
系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
(就是进程队列的长度,每隔5秒钟检查一次活跃的进程数,显示为1分钟、5分钟、15分钟内的每次检查结果的平均值。
当这个值>cpu核心数的时候就说明有进程在等待处理了,被认为卡,也就是负载过重)

 
 
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks:
total     进程总数
running    正在运行的进程数
sleeping  睡眠的进程数
stopped    停止的进程数
zombie     僵尸进程数
Cpu(s):
us    用户空间占用CPU百分比
sy    内核空间占用CPU百分比
ni    用户进程空间内改变过优先级的进程占用CPU百分比
id   空闲CPU百分比
wa    等待输入输出的CPU时间百分比
hi    硬中断(Hardware IRQ)占用CPU的百分比
si    软中断(Software IRQ)占用CPU的百分比
 

最后两行为内存信息。内容如下:
Mem:   8058872k total,  7257728k used,   801144k free,   384452k buffers
Swap:  2097144k total,        0k used,  2097144k free,  2846240k cached
Mem:
total    物理内存总量
used     使用的物理内存总量
free     空闲内存总量
buffers  用作内核缓存的内存量
Swap:
total   交换区总量
used    使用的交换区总量
free    空闲交换区总量
cached  缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
  该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
(这里要注意下,Mem中的free不是当前系统可用的最大物理内存,当前可用的物理内存数应该为Mem:free+Mem:buffers+Swap:cached。
buffers在内存行列,含义是操作系统写入缓冲,是要从内存中写入到硬盘上的数据。cached在swap行列,这个表示读取缓存,是操作系统对硬盘
上的数据缓存。两个都是有操作系统控制的,属于系统级,并且能由操作系统很快的释放掉,当Mem:free不足时,Os就会进程释放操作)。
(
详细的内存使用情况可以用free命令查看:
[root@VM_9_6_centos ~]# free
             total       used       free     shared    buffers     cached
Mem:       8058872    7328604     730268             385856    2915524
-/+ buffers/cache:    4027224    4031648
Swap:      2097144            2097144

4027224表示物理内存真是占用,为7328604-385856-2915524,也就是Mem:used-Mem:buffers-Mem:cached
4031648表示物理内存真是可用,为730268+385856+2915524,也就是Mem:free+Mem:buffers+Mem:cached

也就是说当前8g内存还有3.8是可用的,而不是730268k可用
)

    

进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号  列名    含义
   PID     进程id
   PPID    父进程id
   RUSER   Real user name
   UID     进程所有者的用户id
   USER    进程所有者的用户名
   GROUP   进程所有者的组名
   TTY     启动进程的终端名。不是从终端启动的进程则显示为 ?
   PR      优先级
   NI      nice值。负值表示高优先级,正值表示低优先级
        最后使用的CPU,仅在多CPU环境下有意义
   %CPU    上次更新到现在的CPU时间占用百分比
   TIME    进程使用的CPU时间总计,单位秒
   TIME+   进程使用的CPU时间总计,单位1/100秒
   %MEM    进程使用的物理内存百分比
   VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
   SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
   RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
   CODE    可执行代码占用的物理内存大小,单位kb
   DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
   SHR     共享内存大小,单位kb
   nFLT    页面错误次数
   nDRT    最后一次写入到现在,被修改过的页面数。
        进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
   COMMAND 命令名/命令行
   WCHAN   若该进程在睡眠,则显示睡眠中的系统函数名
   Flags   任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。
可以通过下面的快捷键来更改显示内容。
更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
(排序这个技巧还可以top->b键->x键,这时候选中排序的列,通过”shift + >”,”shift + <”改变排序列)

命令使用
top使用格式
top [-] [d] [p] [q] [c] [C] [S] [s]  [n]

参数说明
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程。
c 显示整个命令行而不只是显示命令名

其他实用命令
下面介绍在top命令执行过程中可以使用的一些交互命令。
从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。
这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。


附常用操作:
top   //每隔5秒显式所有进程的资源占用情况
top -d 2  //每隔2秒显式所有进程的资源占用情况
top -c  //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

 

参考博客:www.cnblogs.com/ggjucheng/archive/2012/01/08/2316399.html

小括号中内容为参考其它资料的补充


 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有