系统性能优化流程

jopen 10年前

来自老外《Linux Performance Tools》pdf的部分记录。

======== 分割线 ========

理论:

  1. 检查资源:输入饱和度;工作单元利用率;输出错误日志。
  2. 问自己5次Why?
  3. 另一些方法:工作量描述;深度分析;事件追踪;基线数据;静态性能调优
  4. 根据上述结论,开始找工具干活

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
  • 应用自己的配置文件

工作方法:发现问题 - 假设 - 预言 - 测试 - 分析

系统性能优化流程