linux服务器负载分析

一般做压力测试都需要监测服务器的状态,以评估服务器负载能力,除了可以通过工具(如zabbix)进行分析之外,还可以使用命令来分析

1.uptime命令检查服务器平均负载

[root@iZ23j6e7bheZ ~]# uptime
 20:57:23 up 13 days,  2:00,  2 users,  load average: 0.00, 0.00, 0.00

解析:

load average分别代表1分钟负载  5分钟负载   15分钟负载

2.iostat检查服务器IO使用情况

[root@iZ23j6e7bheZ ~]# iostat -m
Linux 2.6.32-431.20.3.el6.x86_64 (iZ23j6e7bheZ)         04/16/2015      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.21    0.00    0.13    0.01    0.00   99.65

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
xvda              0.11         0.00         0.00        251        596

解析:

%user: 在用户级别运行所使用的CPU的百分比.
%nice: nice操作所使用的CPU的百分比.
%system: 在系统级别(kernel)运行所使用CPU的百分比.
%iowait: CPU等待硬件I/O时,所占用CPU百分比.
%idle: CPU空闲时间的百分比.
Device段:
tps: 每秒钟发送到的I/O请求数.
Blk_read /s: 每秒读取的block数.
Blk_wrtn/s: 每秒写入的block数.
Blk_read:   读入的block总数.
Blk_wrtn:  写入的block总数.


3.vmstat命令监控服务器状态值

[root@iZ23j6e7bheZ ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0   6356 105640 250424    0    0     0     1   18    1  0  0 100  0  0
解析:

r:表示运行队列(分配到CPU的进程数量)
b:阻塞的进程数量
swpd:虚拟内存使用大小

free:空闲物理内存大小

buff:liunx缓存大小

cache:文件缓存

si:每秒读取虚拟内存大小

so:每秒写入虚拟内存大小

bi:块设备(磁盘等)每秒接收的块数量(跟磁盘最小簇有关)

bo:块设备每秒发送块的数量

in:每秒cpu的中断次数

cs:每秒上下文切换次数(调用系统函数,就要进行上下文切换,这个值越小越好。例如php-fpm的动态模式,在高并发下会新建php-cgi进程,这样会导致cs增大;同理,在代码中调用系统函数,导致上下文切换,非常耗资源)

us:用户CPU时间

sy:系统CPU时间

id:空闲CPU时间

wt:等待IO的CPU时间

4.脑残top命令

top - 21:15:24 up 13 days,  2:18,  1 user,  load average: 0.13, 0.04, 0.01
Tasks:  76 total,   1 running,  75 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    501492k total,   455900k used,    45592k free,    90888k buffers
Swap:        0k total,        0k used,        0k free,   235952k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                           
 1148 root      20   0  768m 8892 7124 S  0.3  1.8  22:43.36 AliHids                           
    1 root      20   0 19232 1512 1224 S  0.0  0.3   0:00.76 init                              
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.02 kthreadd                          
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                       
    4 root      20   0     0    0    0 S  0.0  0.0   0:02.79 ksoftirqd/0                       
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                       
    6 root      RT   0     0    0    0 S  0.0  0.0   0:01.94 watchdog/0                        
    7 root      20   0     0    0    0 S  0.0  0.0   0:52.26 events/0                          
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup                            
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper                           
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns                             
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr                         
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm                                
   13 root      20   0     0    0    0 S  0.0  0.0   0:00.00 xenwatch                          
   14 root      20   0     0    0    0 S  0.0  0.0   0:00.01 xenbus                 
top命令中综合很多信息,前3个的信息一般都可以在这个top命令中找到,而且,这个top命令还会显示每个进程的详细信息。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。