了解 ARM 多核计算机上的 top 命令输出

了解 ARM 多核计算机上的 top 命令输出

在运行浏览器时运行top命令来检查 New RPi3 上的 CPU 性能和内存使用情况。

既然我们有一个4× ARM Cortex-A53, 1.2GHz,我应该如何读取结果?

$ top

Mem: 327132K used, 620864K free, 29124K shrd, 5800K buff, 164492K cached
CPU:  80% usr   8% sys   0% nic   2% idle   0% io   0% irq   9% sirq
...
  • 80% 的流程未经优化
  • 8% 系统进程
  • 2%闲置?

    我的理解是,当它显示 80% 时,这意味着 400% 满容量中的 80%,因为我们有 4 个核心,对吗?

    这是否意味着该top命令无法idle正确计算?

    如何检查每个核心的使用率/空闲百分比?

我的 Linux(使用 Yocto for RPi3 构建的映像)

root@raspberrypi3:~# uname -a
Linux raspberrypi3 4.1.18 #1 SMP Thu Mar 17 10:26:07 CET 2016 armv7l GNU/Linux

root@raspberrypi3:~# lsb_release -a
LSB Version:    core-4.1-noarch:core-4.1-arm
Distributor ID: poky
Description:    Poky (Yocto Project Reference Distro) 1.8.1
Release:    1.8.1
Codename:   fido

top版本

root@raspberrypi3:~# top --version
top: unrecognized option '--version'
BusyBox v1.23.1 (2015-10-19 16:33:36 CEST) multi-call binary.

Usage: top [-b] [-nCOUNT] [-dSECONDS]

答案1

根据 的版本top,CPU 使用情况摘要可能使用 100% 来表示一个核心的价值或表示可用 CPU 总量。根据您的输出,您似乎正在使用top;的 BusyBox 版本它使用 100% 来表示总的可用 CPU 时间,因此您的 CPU 完全繁忙,大约 80% 的时间用于计算,大约 19% 的时间用于 I/O。每个进程的条目还提供了与整个可用处理能力相关的统计数据,因此在四核计算机上,每个线程的最高利用率为 25%。

procps 的版本top(非嵌入式 Linux 上的版本,也是 Raspbian 等上的默认版本)使用不同的约定:对于全局 CPU 消耗,100% 是整个 CPU 的总和;但对于每个进程,100% 意味着一个 CPU 的价值。

顶部具有更好的界面并细分每个 CPU 的 CPU 使用率。在那里您会看到每个 CPU 的利用率。在单个进程上,htop 将一个 CPU 的价值计算为 100%,就像 procps 版本一样。

请记住,计算并不精确,而是基于抽样。 (进行精确的 CPU 利用率测量本身会占用大量 CPU 时间,尤其是在高争用的情况下。)2% 的空闲和完全繁忙之间没有显着差异。

相关内容