linux性能优化学习笔记系列文章

说明

本系列文章是学习极客时间的倪朋飞老师的性能优化实践课程的学习笔记,将会记录学习中使用到的linux优化工具以及自己学习的心得体会。

性能优化脑图

本系列的文章将从linux的CPU、内存、网络、存储多方面来分析和定位常规遇到的linux性能,并提出解决方案,这是第一次尝试作linux性能优化,所以文章中会有很多不足,希望在逐步学习中可以提升自己的技能。
linux性能优化学习笔记系列文章

性能优化工具

下图是性能领域的大师布伦丹·格雷格(Brendan Gregg)的linux性能工具图谱,涉及linux性能优化中会使用到的大部分命令。
linux性能优化学习笔记系列文章

性能优化过程

借花献佛,下面的内容是课程中的学员总结的遇到linux性能问题后问题定位过程,一般过程是监控大屏-》具体linux系统-》CPU-》内存-》磁盘-》网络:
有监控的情况下,首先去看看监控大盘,看看有没有异常报警,如果初期还没有监控的情况按照下面步骤查看系统层面有没有异常

  1. 查看系统的平均负载,使用top或者htop命令查看,平均负载体现的是系统的一个整体情况,cpu、内存、磁盘性能的综合展示。如果平均负载的值大于机器cpu的核数,说明机器资源已经紧张了。
  2. 如果平均负载高了,接下来定位具体是什么资源导致高负载,首先在top中看cpu每个核的使用情况,如果占比很高,那瓶颈应该是cpu,接下来就要看看是什么进程导致的
  3. 如果cpu没有问题,那接下来看内存,首先是用free去查看内存的使用情况,看内存剩余情况,同时结合cache和buffer使用情况,最后用top去排序看具体是什么进程占用了过高的内存
  4. 如果内存没有问题,接下来看磁盘,磁盘用iostat查看
  5. 还有就是带宽问题,用iftop查看流量情况,看看流量是否超过的机器给定的带宽
  6. 涉及到具体应用的话,就要根据具体应用的设定参数来查看,比如连接数是否查过设定值等
  7. 如果系统层各个指标查下来都没有发现异常,那么就要考虑外部系统了,比如数据库、缓存、存储等