漫游测试之性能测试(4.4.Linux下内存\磁盘\CPU问题的判断方法)

以vmstat这个工具查询出来的结果的字段为解释的依据。其它监控工具,只需要了解每个字段的说明,其原理类似。

[email protected]:~# vmstat 2  
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 1  0      0 3499840 315836 3819660    0    0     0     1    2    0  0  0 100  0
 0  0      0 3499584 315836 3819660    0    0     0     0   88  158  0  0 100  0
 0  0      0 3499708 315836 3819660    0    0     0     2   86  162  0  0 100  0
 0  0      0 3499708 315836 3819660    0    0     0    10   81  151  0  0 100  0
 1  0      0 3499732 315836 3819660    0    0     0     2   83  154  0  0 100  0

 

4.4.1内存问题的判断方法

漫游测试之性能测试(4.4.Linux下内存\磁盘\CPU问题的判断方法)

Swpd表示虚拟内存的使用情况,如果大于0表示内存不足了;

Si,从磁盘读入虚拟内存量;so,从内存写入磁盘量,如果大于0均表示内存不足;

Free,如果长时间的趋势下降,或者没有呈波动回收,那么均表示内存方面有问题;

 

4.4.2磁盘问题的判断方法

漫游测试之性能测试(4.4.Linux下内存\磁盘\CPU问题的判断方法)

Bi,块设备每秒接收的块数量;Bo,块设备每秒发送的块数量;理论上都需要接近0,否则都可能需要调整IO。

CPU的sy 过高也有可能是有频繁的IO操作,Bi和BO这2个指标应该同步有表现。

 

4.4.3CPU问题的判断方法

漫游测试之性能测试(4.4.Linux下内存\磁盘\CPU问题的判断方法)

Cs过大,可能调用了系统函数,导致上下文切换,CPU被浪费于上下文切换,没有用于计算方面,是不可取的。此时TPS应该也上不去。

Us过大,说明CPU系统真正用到了地方,系统性能的优化方面就在算法了。

查看系统的进程和线程数,可以用pstree -p | wc -l来获取。

4.4.4注意文件句柄数和time_wait\time_close等影响

Linux默认文件句柄数是1024(可以通过ulimt设置大得大一些),当句柄数不足时,会提示‘too many open files’。

Linux中HttpClient调用时可能会产生大量的time_wait\time_close,从而影响性能处理能力(可以通过netstat -an |grep TIME_WAIT|wc -l命令进行查看)。