Linux主要性能指标监控

1.CPU&进程

 

1.1 top命令

 

top - 20:07:00 up 186 days,  3:47,  3 users,  load average: 0.01, 0.02, 0.00

Tasks:  82 total,   1 running,  80 sleeping,   1 stopped,   0 zombie

Cpu(s):  3.7% us,  0.0% sy,  0.0% ni, 96.3% id,  0.0% wa,  0.0% hi,  0.0% si


第1行 load average 
系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第2行 进程情况
Tasks: 29 total 进程总数 
1 running 正在运行的进程数 
28 sleeping 睡眠的进程数 
0 stopped 停止的进程数 
0 zombie 僵尸进程数

第3行 cpu利用情况
多颗cpu的系统按"1"查看每颗cpu利用率
Cpu(s): 
us 用户空间占用CPU百分比 
sy 内核空间占用CPU百分比 
ni 用户进程空间内改变过优先级的进程占用CPU百分比 
id 空闲CPU百分比 
wa 等待输入输出的CPU时间百分比 
hi 硬件中断  
si 软件中断
后面两个参数我没有深入了解过,也不是很明白.

关于top命令的详细情况,请查阅top命令详解文章

 

 

2.Memory

 

2.1 top 命令

Mem:   4149144k total,  3832668k used,   316476k free,   277592k buffers

Swap:  2096440k total,      144k used,  2096296k free,  2397028k cached


Mem:内存利用率
total 物理内存总量 
used 使用的物理内存总量 
free 空闲内存总量 
buffers 用作内核缓存的内存量

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

 

2.2 free

free -m 内存信息按照M单位显示

                   total       used       free     shared    buffers     cached
Mem:          4051       3744        307          0        271       2340
-/+ buffers/cache:       1132       2919
Swap:         2047          0       2047

 

total: 内存总数
used: 已经使用的内存数
free: 空闲的内存数
shared: 当前已经废弃不用,总是0
buffers:  Buffer缓存内存数,是块设备的读写缓冲区
cached:  Page缓存内存数,文件系统的cache

关系:total=used+free
第二部分(-/+ buffers/cache):
(-buffers/cache) used内存数:(指的第一部分Mem行中的used - buffers-cached)
(+buffers/cache) free内存数: (指的第一部分Mem行中的free + buffers+cached)
-buffers/cache反映的是被程序实实在在吃掉的内存
+buffers/cache反映的是可以挪用的内存总数
对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。

关于buffer与cache的区别
A buffer is something that has yet to be "written" to disk
buffer为有待写入磁盘的数据的缓冲区(供块设备访问,即随机访问数据片的设备)

A cache is something that has been "read" from the disk and stored for later use
cache为已经被从磁盘读取和存储有待使用的缓冲区

第三部分为虚拟内存缓冲区(swap),与windows不同的是,linux在物理内存没有耗尽的情况下,swap是不使用的.我曾经在做性能测试的过程中监控,发现服务器物理free内存只剩下

15m时候,swap换入换出都仍然为0

 

2.3 vmstat n 动态监控内存使用情况(n为采样间隔时间)

 在性能测试过程中,n最好不设置过小,以免耗费不必要的系统资源影响测试结果.

 

procs -----------memory-------------       -----swap---   ----io----   --system--  ------cpu----
 r  b   swpd    free    buff         cache        si   so         bi    bo    in     cs    us sy id wa
 1  0  144  312628  277612  2397268     0    0          1     9     1         0        2  0 98  0
 0  0  144  312628  277628  2397252     0    0          0    19    1006  869    5  0 95  0

 

procs:
r:在运行队列中等待的进程数
b:在等待io的进程数


memory
swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大(比如超过了100m),代表曾经使用虚拟内存的数量,只要si、so的值长期为0,说明数据从磁盘到内存无换入换出,系统性能还是正常的. 
free 当前的空闲页面列表中内存数量(k表示) 
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。 
cache: 作为page cache的内存数量(k),一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。

 

swap

si: 从磁盘交换到内存的交换页数量,单位:KB/秒

so: 从内存交换到磁盘的交换页数量,单位:KB/秒

 

io

bi: 发送到块设备的块数,单位:块/秒

bo: 从块设备接收到的块数,单位:块/秒

以上两项数值高,表示磁盘读写频繁,排除是否程序在大量读取文件。可以使用iostat进一步观察磁盘情况

 

system系统:

in: 每秒的中断数,包括时钟中断。

cs: 每秒的环境(上下文)切换次数。

如以上两项数值持续走高,说明程序引起的cpu调度出现问题,考虑程序处理逻辑的问题

 

cpu 
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)

 

你可能感兴趣的:(Linux主要性能指标监控)