Linux 性能优化流程

我们从如下三方面分析:

1、性能指标有哪些?

2、性能如何剖析?

​3、性能调优方法有哪些?

一:CPU

1.平均负载 --uptime

2.cpu使用率(用户cpu,系统cpu,iowait,软中断,硬中断,窃取cpu,客户cpu)--mpstat,pidstat

3.上下文切换(自愿上下文切换、非自愿上下文切换)--vmstat

4.cpu 缓存命中率 --top,perf top

5.增对不同的场景CPU上下文切换分为:进程上下文切换、线程上下文切换、中断上下文切换

top/ps ; vmstat; mpstat; sar ; pidstat ; strace; perf ; execsnoop(短进程分析); proc 文件系统

cpu绑定; 进程cpu 资源限制; 进程优先级调整; 中断负载均衡; cpu缓存; numa 优化

Linux 性能优化流程_第1张图片

Linux 性能优化流程_第2张图片 

Linux 性能优化流程_第3张图片 

 

二:内存

1.内存使用量

2.进程内存使用量

3.缓存与缓存命中率

4.swap 使用量

free; top; sar;  vmstat;  cachestat; cachetop;  memleak;  proc 文件系统

1.利用缓存与缓存区

2.减少swap 使用

3.减少动态内存分配

4.优化numa

5.限制进程内存资源

6.使用HugePage

三:网络

1.吞吐量(BPS, QPS, PPS)

2.延迟

3.丢包

4.tcp重传;

ethtool; sar; ping; netstat/ss  ;  ifstat; ifconfig;  tcpdump;  wireshark; iptables; traceroute; ipcontrack; perf

1.网卡调优(MTU,队列长度;链路聚合)

2.协议调优(Http,tcp,Overlay)

3.资源控制(Qos)

4.内核调优(Nat 调优;功能卸载;负载均衡; DPDK)

四:磁盘

1.磁盘使用率

2.IOPS

3.吞吐量

4.IOWAIT

dstat; sar; iostat; pidstat; iotop; iolatency; blktrace; fio; perf

  • 1.系统调用
  • 2.i/o 资源控制
  • 3.充分利用缓存
  • 4.raid
  • 5.i/o 隔离

五:文件系统

1.容量

2.IOPS

3.缓存命中率

df; strace; vmstat; sar; perf;proc 文件系统;

1.文件系统选型

2.利用文件系统缓存

3.i/o 隔离

六:Linux 内核

1.BPF

2.perf

3.proc 文件系统

调优内核系统参数选项

七:应用程序

1.吞吐量

2.响应时间

3.资源利用率

Use方法(使用率、饱和度、错误)

进程剖析(进程状态、资源利用率、i/o剖析、系统调用、热点函数、动态追踪)

apm

逻辑简化

编程语言

算法调优

非阻塞i/o

利用缓存和缓存区

异步处理与并发

垃圾回收

在系统开发整体架构优化设计:

1、空间换时间(缓存、缓冲区、冗余数据)

2、时间换空间(压缩编码、页面交换)

3、并行处理(多线程、多进程、分布式)

4、异步处理(异步i/o 、 消息队列、事件通知)

怎么评估性能优化的效果?

1.确定性能量化指标

2.测试优化前的性能指标

3.测试优化后的性能指标

应用程序如何优化?

1.降低cpu 的使用率,减少循环次数、减少递归、减少动态内存分配

2.编译器优化

3.算法优化

4.异步处理

5.多线程代替多进程

6.善用缓存

你可能感兴趣的:(Linux,性能优化,linux,性能优化,运维)