系统性能优化流程
jopen
10年前
来自老外《Linux Performance Tools》pdf的部分记录。
======== 分割线 ========
理论:
- 检查资源:输入饱和度;工作单元利用率;输出错误日志。
- 问自己5次Why?
- 另一些方法:工作量描述;深度分析;事件追踪;基线数据;静态性能调优
- 根据上述结论,开始找工具干活
PS:任何工具都是基于内核接口(/proc, /sys, ...)
工具分类:
- 观察:安全,常用,基于资源开销
- 标杆确定:负载测试,注意这会导致竞争问题
- 调优:更改导致危险,随着负载而伤性能
- 静态:check配置文件,安全
观察:
- uptime 平均负载
- top 处理器周期统计
- ps -ef f 进程状态列表
- vmstat -Sm 1 虚拟内存统计
- free -m 内存使用量
- netstat 查网络的复合工具,参数很多,如-ntl
- ss socket统计
- slabtop 内核分配内存使用量
测试:
有效的测试:以小时单位运行测试;期间用观察工具分析和确认性能。
- perf 综合分析工具,前提是安装linux-tool
- dd、hdparm 磁盘测试
- ab、openssl 应用测试
- ping、traceroute 网络测试
调优:
通用接口:sysctl- CPU调度 nice|renice、taskset、chcpu
- IO存储 tune2fs、ionice、blockdev
- 网络 ethtool、tc、ip、route
- 应用自己的配置文件
工作方法:发现问题 - 假设 - 预言 - 测试 - 分析