Linux性能优化从入门到实战:22 综合篇:性能问题的分析与优化总结、工具速查
一、分析总结 系统是应用的运行环境,系统的瓶颈会导致应用的性能下降; 而应用的不合理设计,也会引发系统资源的瓶颈。 (1)CPU 性能分析 (2)内存性能分析 (3)磁盘和文件系统 I/O 性能分析 (4)网络性能分析 (5)应用程序瓶颈分析 1)strace,观察系统调用; 2)perf 和火焰图,分析热点函数; 3)动态追踪技术,来分析进程的执行状态。 二、优化总结 (1)CPU 优化 核心在于排除所有不必要的工作、充分利用 CPU 缓存并减少进程调度对性能的影响。 1)把进程绑定到一个或者多个 CPU 上,充分利用 CPU 缓存的本地性,并减少进程间的相互影响。 2)为中断处理程序开启多 CPU 负载均衡,以便在发生大量中断时,可以充分利用多 CPU 的优势分摊负载。 3)使用 Cgroups 等方法,为进程设置资源限制,避免个别进程消耗过多的 CPU。同时,为核心应用程序设置更高的优先级,减少低优先级任务的影响。 (2)内存优化 核心是解决内存使用的问题,如 可用内存不足、内存泄漏、Swap 过多、缺页异常过多以及缓存过多等。 1)除非有必要,Swap 应该禁止掉。这样就可以避免 Swap 的额外 I/O ,带来内存访问变慢的问题。 2)使用 Cgroups 等方法,为进程设置内存限制。这样就可以避免个别进程消耗过多内存,而影响了其他进程。对于核心应用,还应该降低