Linux 性能优化

1、性能优化概述 Performance optimization

1)性能分析六个步骤
  • 选择指标评估应用程序和系统的性能 evaluation indicator
  • 为应用程序和系统设置性能目标 target
  • 进行性能基准测试 baseline
  • 性能分析定位瓶颈 bottleneck
  • 优化系统和应用程序 
  • 性能监控和告警 metrics monitor

3、性能优化方法论

1)评估优化效果
  • 应用程序维度,吞吐量 throughput,请求延时 latency
  • 系统资源维度,CPU使用率.  cpu usage
2)注意点
  • 避免性能测试工具干扰应用程序的性能
  • 避免外部环境的变换影响性能指标
3)多个性能问题同时存在,选择优化哪些
  • 二八原则 Pareto Principle,并不是所有的性能问题都值得优化,找出最重要的,可以大幅度提升性能的问题,优先优化系统资源使用问题,性能指标变化幅度
  • 选能最大提升性能的方法

 

4、CPU优化

1)性能统计信息

平均负载指单位时间内,系统处可运行状态和不可中断状态的平均进程数,就是平均活跃进程数 uptime 命令查看

平均负载和CPU个数有关系

2)CPU使用率

单位时间内,CPU繁忙情况。

  • 1)节拍率 Jiffies, 每发生一次中断,Jiffies+1
  • 2)用户节拍率 

CPU 使用率 1 - (空闲 2-空闲1)/ (总CPU时间2-总CPU时间1), 从/proc/stat 拿数据

 

  • top 显示系统整体
  • ps 显示每个进程
  • pidstat 显示每个进程的CPU使用情况

可以使用perf来分析应用程序性能 perf top 来看函数的cpu使用率

 

3) 可以用的压测工具
  • stress
  • sysstat
4) 上下文切换

任务数目多余CPU,来回切换。

 

5  内存映射

虚拟内存和物理内存地址的映射。应用的使用内存比实际的大,所以要用内存映射来管理

 

6 SWAP

把一块磁盘空间或者文件当成内存来使用

 

7 系统内存使用

free 命令,单位为KB

 

8 缓存命中率

直接通过缓存来获得数据的比例。 

cachestat

cachetop

 

9 内存性能指标

内存调优

  • 禁止swap
  • 减少内存的动态分配
  • 尽量使用缓存和缓冲区来访问数据
  • 限制进程使用内存情况
  • 调整oom_score

 

10 磁盘IO

1)磁盘

硬盘 (hard disk drive) 和 SSD(solid state disk),SSD 不需要磁道寻址,所以比FDD

SSD 要先擦出再写入,

2)磁盘IO指标

  • 每秒IO数,IOPS,每秒磁盘读、写数
  • 吞吐量,每秒读写数
  • 磁盘利用率
  • 服务时间,读、写执行的时间
  • 等待时间,IO等待时间
3)观测

iostat

pistat

posted @ 2024-04-02 16:49  ylxn  阅读(37)  评论(0编辑  收藏  举报