性能监控分析的命令包括如下:
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
显示结果如下:
=====================================================