一、Linux性能指标概述
当看到性能指标时,我相信“高并发”和“响应快”一定是你最先想到的。而它们也正对应着性能优化的两个核心指标——“吞吐”和“延时”。这两个指标是从应用负载的角度来考察性能,并直接影响了产品终端用户的体验。性能分析,其实就是找出应用或系统的瓶颈,并设法去避免或者缓解它们,从而更高效地利用系统资源处理更多的请求。这包含了以下一系列的步骤:
-
选择指标评估应用程序和系统的性能;
-
为应用程序和系统设置性能目标;
-
进行性能基准测试;
-
性能分析定位瓶颈;
-
优化系统和应用程序;
-
性能监控和告警;
二、性能优化的一般思路
- 有监控的情况下,先去看看监控大盘,结合系统的日志信息看看有没有异常报警,如果没有监控的情况则会按照下面步骤去看看系统层面有没有异常;
- 看看系统的平均负载,使用top或者htop命令查看,平均负载体现的是系统的一个整体情况,他应该是cpu、内存、磁盘性能的一个综合,一般是平均负载的值大于机器cpu的核数时,说明机器资源已经紧张了;
- 平均负载高了以后,接下来就要看看具体是什么资源导致。首先会在top中看cpu每个核的使用情况,如果cpu使用的占比很高那瓶颈应该是cpu,接下来就要看看是什么进程导致的;
- 如果cpu没有问题,那接下来我会去看内存,先是用free去查看内存的是用情况,但不直接看他剩余了多少,还要结合看看cache和buffer,然后再看看具体是什么进程占用了过高的内存,我也是是用top去排序;
- 内存没有问题的话就要去看磁盘了,磁盘我用iostat去查看磁盘的使用情况;
- 还有就是带宽问题,一般会用iftop去查看流量情况,看看流量是否超过的机器给定的带宽;
- 涉及到具体应用的话,就要根据具体应用的设定参数来查看,比如连接数是否查过设定值等;
- 如果系统层各个指标查下来都没有发现异常,那么就要考虑外部系统了,比如数据库、缓存、中间件等。
三、平均负载-CPU load average
Load average 表示的是CPU的负载,包含的信息不是CPU的使用率状况,而是在一段时间内CPU正