目前测试最常用操作系统是linux,对Linux操作系统监控及命令,是作为性能测试人员,必须掌握的技能。下图整理性能测试中常用监控命令,掌握如下命令基本可定位解决linux中95%的问题。
Linux监控命令
监控命令
- 操作系统版本
操作系统版本命令
- CPU
CPU监控命令
- MEM及句柄
内存命令
句柄监控命令
- IO
IO有关命令
- 网络
网络有关命令
- 进程及线程
监控进程及线程命令
- 其它
其它命令
诊断思路
- CPU诊断思路
主要监控目的:判断是否因为CPU存在瓶颈,什么原因引起CPU高。
(1) user%: 跟用户的进程有关系,当user%高于70%,需要查看哪个进程占用CPU,如果关注的进程,则需要优化;如果不是关注的进程,要具体分析(主要方法:占用CPU高的进程是什么进程,为什么会出现)。
(2) sys%: 跟I/O管理;中断和驱动有关;跟内存管理;页面交换有关;跟进程管理;上下文切换有关;当sys%大于20%时,关注内存是否不足;上下文切换值是否很高。
(3) wait%: 跟IO有关系;用于进程等待I/O而使CPU处理空闲状态的比率。当wait%高于10%,关注磁盘IO是否很忙,如果很忙,需要解决磁盘问题。
(4) 队列r: 当连续大于系统CPU个数时,表示系统现在运行比较慢,当持续大于CPU个数的2倍以上时,说明CPU明显瓶颈。
(5) cs(上下文切换):当持续大于20000,则说明cs已经很高了,要查看一下sys%占用很高。
- MEM诊断思路
主要监控目的:判断用户进程是否出现异常,内存泄露或资源使用不释放;
异常分析思路:
(1) memfree越来越少,同时swap free越来越少;
(2) 文件句柄数越来越接近系统默认的文件句柄数;
当日志中出“open too many files”需要关注进程的文件句柄数,当进程的文件句柄数超过系统默认句柄数时,系统会生产异常。
- IO诊断思路
主要监控目的:判断用户进程是否出现IO瓶颈
(1) 了解磁盘理论上最大的读写速度
(2) 监控实际使用磁盘读写情况,对比理论值是否接近理论值
- 网络诊断思路
主要监控目的:判断系统网络吞吐量是否出现瓶颈,是否达到网络带宽限制;网络状态和数量是否有异常,网络连接数是否达到最大值。
(1) 查看网络端口连接状态和数量,是否存在异常连接情况(如:CLOSE_WAIT状态)。
(2) 查看网络连接IP分配情况,检查连接数是否与配置值一致。