Linux系统性能瓶颈的排查思路
- 有监控的情况下,首先看监控,是否有异常指标或报警
- 没有监控的情况下按照以下步骤看看系统层面有没有异常
- 首先看系统的平均负载,使用top或htop命令查看,平均负载体现的是系统的一个整体情况。它应该是cpu,内存,磁盘性能的一个综合体现。一般是平均负载的值大于机器cpu的核数,这时候说明机器资源已经紧张了。
- 平均负载比较高的话,接下来首先看看具体是什么资源导致的。比如使用top看下cpu每个核的使用情况,如果占比很高,那瓶颈应该是cpu,接下来就是要看看是什么进程导致的。
- 如果cpu没有问题,那么接下来去看看内存,首先是用free去查看内存的使用情况,但不直接看剩余了多少。还要结合看看cache和buffer,然后再看看具体是什么进程占用了过高的内存。这个也可以用top排序。
- 内存没有问题的话就要去看磁盘了。磁盘可以用iostat去查看。
- 还有就是带宽的问题,一般会用iftop去查看流量情况,看看流量是否超过了机器给定的带宽。
- 涉及到具体应用的话,就要根据具体应用的设定参数来查看,比如连接数是否超过设定值等。
- 如果系统层各个指标查下来都没有发现异常,就应该考虑下外部系统了,比如数据库,缓存,存储等。