Linux 性能测试、监控、优化是一个持续的过程,一般可以通过Zabbix来收集性能数据,但是都是对内置功能的整合,以下对性能测试中常用的Linux工具进行简单列举。
![fe2bc26781623e80bdbb8cfd77f9c823.png](https://i-blog.csdnimg.cn/blog_migrate/f179ca0c47a7618cf1f2eb005fcc5978.jpeg)
一、CPU - mpstat
A、没有参数时,显示系统启动以后所有信息的平均值。
![8e86f3e108b0e6b7b4b5f9e405808716.png](https://i-blog.csdnimg.cn/blog_migrate/e38b0fb1d20b25f8c401e0f70aa87088.png)
B、mpstat 1 10(1为时间间隔,10为循环次数)
二、内存 - top
实时监控系统运行状态。
- M键,按内存使用率排序
- P键,按CPU使用率排序
- z键,彩色/黑白显示
- load average
- 三值分别为最后1分钟、5分钟、15分钟的平均负载
- 单核为1,表示满负载;多核,1*cpu数,表示满负载
三、内存 - free
监控系统内存使用状态。
- total - 物理内存大小
- used - 已使用多少
- free - 可用多少
- shared - 多少个进程共享的内存总额
- buffers/cached - 磁盘缓存的大小
四、内存 - vmstat
监控操作系统进车概念状态、内存、虚拟内存、磁盘IO、CPU信息。
A、通过-S参数指定显示单位,默认为K。
![03cb4146b9ca0b2d80f17ab42581d7fc.png](https://i-blog.csdnimg.cn/blog_migrate/d680c2ad281719b601626007fa5ea427.png)
B、vmstat 1 10(1为时间间隔,10为循环次数)
五、网络监控 - netstat
显示本机网络连接、端口、路由表等信息。
常用选项:
- -n,拒绝显示别名
- -l,列出在listen状态
- -p,显示程序名
- -t,显示tcp
- -u,显示upd
- -i,自动匹配接口信息
- -c,每隔固定时间,执行命令
- -ntlp组合
六、磁盘监控 - iostat
对系统磁盘IO进行监控,显示磁盘的读写操作的统计信息。
![1f3558d10e4492120c0c41365eb7a5a6.png](https://i-blog.csdnimg.cn/blog_migrate/eca9577fbd473836de8c5c3a3d00d2b7.png)
通过-x参数,输出要统计的磁盘设备名称,默认为所有磁盘。
七、进程跟踪 - strace
诊断、调试、统计,对系统调用,信号传递的跟踪结果,对应用进行分析。
![7a4b5e568df152a3992a935aca9e65c8.png](https://i-blog.csdnimg.cn/blog_migrate/ecceaa9f8ada719b2584bf5d05ac3f56.jpeg)
常用选项:
- -p 跟踪指定的进程
- -f fork子进程系统调用
- -c 统计系统调用执行的时间、次数、出错的次数
- -t 在输出中加上时间信息
- -e expr 过滤不想要的输出
- -o file
# 对ls -al进行跟踪
strace -ff -F -o ls.log ls -al
八、万能命令 - sar
System Activity Reporter系统活动情况报告,报告文件读写情况、系统调用的使用情况、磁盘IO、CPU效率、内存使进程活动。
常用选项:
- -A 所有报告总和
- -u CPU利用率
- sar -u 1(1秒一次)
- -v 进程、节点、文件和锁表状态
- -r 内存
- -B 内存分页
- -b 缓冲区使用
九、综合 - nmon
记录全面,实时捕捉系统资源的使用情况,可以通过nmon_analyzer产生数据文件与图形化结果。具体参考https://zhuanlan.zhihu.com/p/60064567。
# -s 1 采集频率
# -c 10 采集次数
nmon -f -F rs.nmon -s 1 -c 10 -t