需要帮助解决这个谜团。
我有一个Android 4.4四核设备。给定四核,我假设,必要时,所有核心的操作或负载将平均共享。
现在我已经开始在设置中检查“show cpu usage” - >开发者选项 - >显示cpu使用情况。
我想看看它显示12.0 / 11.7 / 8.0。 (根据linux,这个统计数据是关于显示1分钟/ 5分钟/ 15分钟的负载)
后来我在下面看了这个链接,这有点解释,这是什么统计数据。
http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
我是四核,我需要将这个数字减少到2以下..
我尝试删除通过网络连续运行的谷歌应用程序等。但仍然无法将其降低到8以下。
请帮忙。
答案 0 :(得分:2)
您对loadavg
的理解在这里是错误的 - 它与CPU利用率不对应。这是常见的错误,因为许多loadavg
机制的描述并不完全正确。如果查看proc(5)
手册页,可以阅读:
The first three fields in this file are load average figures giving the
number of jobs in the run queue (state R) or waiting for disk I/O (state
D) averaged over 1, 5, and 15 minutes.
这里最重要的是"D"
(不间断)状态。手册页将其描述为等待I / O的任务,这通常被解释为等待光盘 I / O,但并非总是如此。由于各种原因,特别是在嵌入式设备(如手机)上,设备驱动程序通常会在不间断状态下等待各种事件,这些事件可能非常非常罕见。
在我完全闲置的Qualcomm SoC(4核心)手机上,我有"D"
状态的15个内核线程。所有这些线程几乎总是在睡觉,但他们确实计入主动任务,使我的loadavg
总是高于15。
loadavg
不是您应该寻找的指标。如果要查看实际使用的CPU数量,请查看CPU利用率(如top
命令的输出)。