Linux,作为强大而自由的开源操作系统,不断推动着技术进步和创新,是每一个技术爱好者都比较感兴趣的话题,这一篇文章是关于Linux性能的第一篇,后续持续更新,与大家一起突破瓶颈,优化性能。
Linux性能三驾马车:cpu 内存 io,想要提高性能,首先要抓住性能瓶颈才能确认方向,需要了解linux实现原理,性能分析工具的使用。
今天我们先从最熟悉的top工具入手,当发现环境上业务性能下降了,我会习惯敲下top,并且我主要观察这个指标就是top命令右上角的 load average:
top - 16:32:45 up 2 days, 1:20, 2 users, load average: 0.07, 0.15, 0.12
Tasks: 199 total, 1 running, 198 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.1 us, 0.8 sy, 0.0 ni, 96.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 15965.6 total, 2480.5 free, 11043.0 used, 2489.9 buff/cache
MiB Swap: 4096.0 total, 3961.5 free, 134.5 used. 3653.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
“load average(平均负载)”是top命令中展示的系统负载指标之一。它表示了在一段时间内,系统中的平均活跃进程数量,即正在使用CPU或等待CPU执行的进程数。
load average: 0.07, 0.15, 0.12 三个数值代表对应于过去1分钟、5分钟和15分钟的平均值。更具体地说,每个值表示了在过去特定时间段内系统的平均活跃进程数量。
那么问题来了,这个平均负载到底多少算高?
在linux中 平均负载并没有具体高点值,要根据系统中cpu核数来决定,
对于理想情况下的负载水平,一般认为当load average值接近于系统的CPU核心数时,系统负载是合理的。例如,如果系统有4个CPU核心,则load average值在4左右是比较正常的。
当load average值较高时,说明系统负载较重,可能存在CPU资源不足或者其他进程竞争资源的情况。这种情况下,可能需要进一步分析和优化系统以提高性能。
load average不仅仅是CPU利用率的指标,它还考虑了等待CPU的进程数。因此,较高的load average并不一定表示CPU繁忙,也可能是其它原因导致的,比如磁盘I/O繁忙等
今日总结:
1、查看linux系统负载情况,看load average
2、一般认为当load average值接近于系统的CPU核心数时,系统负载是合理的,高于cpu核数就要考虑系统负载高导致的性能问题了
3、导致平均负载升高的要素:(1)进程占用的CPU高 (2)进程IO密集 (3)系统发生的上下文切换次数多
后面我们会继续深入研究关于cpu使用率、io密集、系统上下文切换次数多问题定位细节,欲知后事如何,且听下回分解