源码基于:Kernel 5.4
针对节点:/proc/loadavg
0. 前言
在性能优化时,会通过/proc/loadavg 或者 uptime 来确认CPU 的密集情况。Android 中也会在ANR 等异常情况时附带打印 loadavg。本文主要结合代码简单分析 loadavg 原理。
1. uptime 命令
loadavg 的信息,不但通过top 命令,节点/proc/loadavg,也可以通过uptime,先来看下uptime 的结果:
13:48:34 up 4 days, 4:29, 0 users, load average: 0.00, 0.02, 0.01
通过strace uptime 跟踪下uptime:
...
openat(AT_FDCWD, "/proc/loadavg", O_RDONLY) = 4
lseek(4, 0, SEEK_SET) = 0
read(4, "0.08 0.10 0.06 3/118 12938\n", 8191) = 27
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=maked