Linux性能监控分析命令(四)—top命令介绍

性能监控分析的命令包括如下:

1、vmstat

2、sar

3、iostat

4、top

5、free

6、uptime

7、netstat

8、ps

9、strace

10、lsof

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

命令介绍:

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

top命令能够实时监控系统的运行状态,并且可以安装CPU、内存和执行时间进行排序,同时top命令还可以通过交互式命令进行设定显示,通过top命令可以查看即时活跃的进程。

top命令用法:

top -hv | -abcHimMsS -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

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

命令行启动参数解释:

-b :批次模式运行。通过用来将TOP的输出的结果传送给其他程式或存储文件

-c:显示执行任务的命令行

-d:设定延迟时间

-h:帮助

-H:显示线程。当这个设定开启时,将显示所有进程产生的线程

-i:显示空闲的进程

-n:执行次数。一般与-b搭配使用

-u:监控指定用户相关进程

-U:监控指定用户相关进程

-p:监控指定的进程。当监控多个进程时,进程ID以逗号分隔。这个选项只能在命令行下使用

-s:安全模式操作

-S:累计时间模式

-v:显示top版本,然后退出

-M:自动显示内存单位(k/M/G)

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

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

----------------------------------------------------------------------------------------

1、全局命令

回车、空格:刷新显示信息

?、h:帮助

=:移除所有任务显示的限制

A:交替显示模式切换

B:粗体显示切换

d、s:更改界面刷新时间间隔

G:选择其它窗口/栏位组

I:Irix或Solaris模式切换

u、U:监控指定用户相关进程

k:结束进程

q:退出top

r:重新设定进程的nice值

W:存储当前设定

Z:改变颜色模板

2、摘要区命令

l:字母l,平均负载及系统运行时间显示开关

m:内存及交换空间使用率显示开关

t:当前任务及CPU状态显示开关

1:数字1,汇总显示CPU状态或分开显示每个CPU状态

3、任务区命令

a)     外观样式

    b:黑体/反色显示高亮的行/列。控制x和y交换命令的显示样式

    x:高亮显示排序的列

    y:高亮显示正在运行的任务

    z:彩色/黑白显示

b)     显示内容

    c:任务执行的命令行或进程名称

    f、o:增加和移除进程信息栏位及调整进程信息栏位显示顺序

    H:显示线程

    S:时间累计模式

    u:监控指定用户相关进程

c)      任务显示的数量

     i:显示空闲的进程

     n或#:设置任务显示最大数量

d)     任务排序(shift+f)

     M:按内存使用率排序

     N:按PID排序

     P:按PID排序

     T:按时间+排序

     <:按当前排序栏位左边相邻栏位排序

     >:按当前排序栏位右边相邻栏位排序

     F或O:选择排序栏位

     R:反向排序

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

top命令:

参数解释:

一、TOP前五行统计信息说明

1、第一行是任务队列信息,通uptime命令执行的结果一致。

内容说明:

00:17:40

当前时间

up 23:10

系统运行时间,格式为时:分

3 user

当前登录用户数

load average: 0.20, 0.20, 1.56

系统负载,即任务队列的平均长度。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值,它们的数字当然是越小越好。“有多少核心即为有多少负荷”法则: 在多核处理中,你的系统均值不应该高于处理器核心的总数量。

  

2、 第二、三行为进程和CPU的信息,当有多个CPU时,这些内容可能会超过两行。
内容说明:

Tasks: 740 total

进程总数

1 running

正在运行的进程数

738 sleeping

睡眠的进程数

1 stopped

停止的进程数

0 zombie

僵尸进程数

%Cpu(s):  1.8 us

用户空间占用CPU百分比

0.1% sy

内核空间占用CPU百分比

0.1% ni

用户进程空间内改变过优先级的进程占用CPU百分比

99.7% id

空闲CPU百分比

0.0% wa

等待输入输出的CPU时间百分比

0.0% hi

 硬中断(Hardware IRQ)占用CPU的百分比

0.0% si

 软中断(Software Interrupts)占用CPU的百分比

0.0% st

(Steal time) 是当 hypervisor 服务另一个虚拟处

理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比

3、第四五行为内存信息

内容说明:

Mem : 16018732 total

物理内存总量

9856504 used

使用的物理内存总量

1749232 free

空闲内存总量

4412996 buffers

用作内核缓存的内存量

Swap: 33554428 total

交换区总量

4324300 used

使用的交换区总量

29230128 free

空闲交换区总量

189640k  cached

缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

二、进程信息说明

列名

含义

PID

进程id

PPID

父进程id

RUSER

Real user name

UID

进程所有者的用户id

USER

进程所有者的用户名

GROUP

进程所有者的组名

TTY

启动进程的终端名。不是从终端启动的进程则显示为 ?

PR

优先级

NI

nice值。负值表示高优先级,正值表示低优先级

P

最后使用的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

最后一次写入到现在,被修改过的页面数。

S

进程状态。

            D=不可中断的睡眠状态

            R=运行

            S=睡眠

            T=跟踪/停止

            Z=僵尸进程

COMMAND

命令名/命令行

WCHAN

若该进程在睡眠,则显示睡眠中的系统函数名

Flags

任务标志,参考 sched.h

说明:默认情况下仅显示比较重要的  PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND  列。

可以通过快捷键更改显示内容:

(1)更改显示内容通过 f键可以选择显示的内容。

       按 f 键之后会显示列的列表,按 a-z  即可显示或隐藏对应的列,最后按回车键确定。

(2)按o键可以改变列的显示顺序。

       按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z  可以将相应的列向左移动。最后按回车键确定。

       按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的  R 键可以将当前的排序倒转。

       设置完按回车返回界面。

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

使用实例说明:

1、多核CPU监控

在top视图下,按数字键1,可以监控每个CPU的状态,如下图:

再次按数字键1则返回初始状态,如下图:

2、高亮显示当前运行的进程

输入字母'b'(打开/关闭加量效果),见下图:

我们发现进程id为117338的“top”进程被加亮了,top进程就是视图第二行显示的唯一的运行态(runing)的那个进程,可以通过敲击“y”/‘b’键关闭或打开运行态进程的加亮效果。

3、进程字段排序

默认进入top时,各进程是按照CPU的占用量来排序的,在下图中进程ID为3831的java进程排在第一(cpu占用4.6%),进程ID为154677的nxlog进程排在第二(cpu占用2.6%)

敲击键盘“x”(打开/关闭排序列的加亮效果),top的视图变化如下:

可以看到,top默认的排序列是“%CPU”;然后我们通过”shift + >”或”shift + <”可以向右或左改变排序列

下图是按一次”shift + >”的效果图,视图现在已经按照%MEM来排序。

4、显示 完整命令

#top -c

结果如下图:

5、以批处理模式显示程序信息

命令:top -b  

6、以累积模式显示程序信息

命令:top -S

7、设置信息更新次数

命令:top -n 2   //表示更新两次后停止更新显示

8、设置信息更新时间

命令:top -d 3  //表示更新周期为3秒

9、显示指定的进程信息

命令:top -p 3921

显示结果如下:

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

参考文档:      

http://blog.csdn.net/truelove12358/article/details/50502191

https://www.cnblogs.com/vurtne-lu/p/6550602.html

原文地址:https://www.cnblogs.com/beginner-boy/p/8082899.html