标签: cpu

从 C 程序获取 CPU 利用率统计信息

我想从 C 程序中读取 CPU 利用率统计信息,我对 CPU 使用率、窃取时间等感兴趣。这些统计信息显示在top命令的第三行。

我试图topawk( top -n 1 -b | awk '{print $0}')解析's 的输出,但它似乎top在开始显示正确的统计数据之前总是给出相同的“虚构”值。

有没有办法从代码中,或者通过解析一些命令的输出来获取 CPU 利用率统计信息?

编辑:

平台为Linux

谢谢你。

cpu c monitoring top

10
推荐指数
2
解决办法
2万
查看次数

计算机实际上用它的空闲 CPU 周期做什么?

当计算机未满负荷运行时,在 Linux 环境中,它实际上做了什么?在调度线程之间,如果无事可做,是否自旋等待?它是否进入某种睡眠状态?

当一台计算机报告它处于 20% 的负载时,这是否真的意味着(给予或接受)它 80% 的时间什么都不做?

linux cpu scheduling

10
推荐指数
1
解决办法
503
查看次数

Debian jessie 引导挂起在“关于系统运行级别更改的已开始更新 UTMP”。

我刚刚升级我的我的电脑,主板和CPU,而现在每当我试图引导我的Debian安装它挂在[ OK ] Started Update UTMP about System Runlevel Changes.是否有办法,我可以启动到我的旧体制与我的新的硬件,而无需完全重新安装?

眼镜:

  • CPU = AMD Phenom II 965 3.4 Ghz x4 -> AMD FX 8350 4.0 Ghz x8

  • MOBO = 华硕 M4A87TD EVO -> 华硕 M5A99FX PRO

cpu boot debian

10
推荐指数
1
解决办法
11万
查看次数

为什么 top 显示的内核数与 cpuinfo 不同?

当我运行 top 时,我显示 CPU 0-7。当我做:

cat /proc/cpuinfo | grep "cpu cores" | uniq
Run Code Online (Sandbox Code Playgroud)

我得到:

cpu cores : 4
Run Code Online (Sandbox Code Playgroud)

如果我grep“物理ID”,我有1。

我认为我的命令是错误的,而 top 是正确的。这不是虚拟机,而是物理服务器 RedHat。我究竟做错了什么?

我不确定这些回答它:

如何知道Linux系统的核心数?

/proc/cpuinfo 中的处理器数量

编辑:我是否更正了那个物理 ID,如果它只显示 1,那么我在主板上有一个物理芯片?

编辑:它是 Intel(R) Xeon(R) CPU X5560 @ 2.80GHz 但物理 ID 为 1,我认为它会是 0,但 cpuinfo 中没有物理 ID 0。

编辑:如果重要的话,我想弄清楚他们在哪里做 0.5 核心数的许可。

linux cpu

10
推荐指数
3
解决办法
1万
查看次数

Linux:如何知道哪些进程固定在哪个核心上?

有没有办法知道哪些内核当前有一个进程固定在它们上面?

甚至其他用户运行的进程也应列在输出中。

或者,是否可以尝试将进程固定到核心,但如果所需的核心已经固定了一个进程,则可能会失败?

PS:感兴趣的进程必须将 bin 固定到给定的核心,而不仅仅是当前在给定的核心上运行

PS:这不是重复,另一个问题是如何确保一个进程独占一个CPU。这里我们问的是如何检测一个进程是否被固定到给定的核心(即使用了cpuset,而不是如何使用它)。

linux cpu process-management high-performance

10
推荐指数
2
解决办法
3万
查看次数

如何启用 CPU 温度保护

我的桌面有一个讨厌的习惯。当我有几个高强度应用程序在运行并且我的 CPU 在一段时间内处于最大使用率时,核心温度会升高并且我的计算机会自动关闭。

有没有办法可以在后台监控(编写脚本)我的 CPU 温度,并在它高于某个温度时发出某种警告?

我正在使用 dwm 作为我的窗口管理器运行 Opensuse。我通常sensors用来查看我的 CPU 温度。

linux cpu shell-script temperature

9
推荐指数
1
解决办法
2954
查看次数

所有 PID 的总和是“utime”总系统 utime 吗?

为了测量用户的总 CPU 时间,我使用了“utime”字段/proc/[pid]/stat

utime %lu   Amount of time that this process has been scheduled in user
            mode, measured in clock ticks (divide by
            sysconf(_SC_CLK_TCK).  This includes guest time, guest_time
            (time spent running a virtual CPU, see below), so that
            applications that are not aware of the guest time field do
            not lose that time from their calculations.
Run Code Online (Sandbox Code Playgroud)

(来自man proc (5)

因此,我的“用户 utime”是utime该用户正在运行的所有 PID的总和。

我希望这将为我提供该用户花费的 CPU 秒数的准确值。我在正确的轨道上吗?

我还不明白或考虑到的一些事情:

  • 每个 PID 也有一个父 PID(或零)。但是我正在计算每个 PID,而不仅仅是 ppid 为 …

cpu process proc

9
推荐指数
1
解决办法
4866
查看次数

确定 RHEL 6 与 RHEL 5 上 CPU 使用率较高的原因

我目前希望将我们的系统从 RHEL 5 迁移到 RHEL 6,但我遇到了一个问题,在 RHEL 6 机器上 CPU 使用率出乎意料地高。看来这可能至少在某种程度上是由于使用select来进行可中断的睡眠。这是一个显示行为的简单示例:

#include <sys/select.h>

int main()
{
  timeval ts;
  for (unsigned int ii=0; ii<10000; ++ii) {
    ts.tv_sec = 0;
    ts.tv_usec = 1000;
    select(0, 0, 0, 0, &ts);
  }

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

在 RHEL 5 机器上,它的 CPU 使用率将保持在 0%,但在安装了 RHEL 6 的同一硬件上,它将使用大约 0.5% 的 CPU,因此当运行 30 到 50 个程序select用于执行睡眠时,它会占用大量不必要的 CPU。

我打开了一个Bugzilla并尝试运行 OProfile,它在查看内核时仅在主应用程序中显示 100%,在 poll_idle 中显示超过 99%(我在我的 grub 选项中设置了 idle=poll,因此可以捕获所有内容)。

关于我可以做些什么来尝试隔离 CPU 使用率较高的原因的任何其他想法?

更新:我找到了 perf 工具并得到以下输出:

# …
Run Code Online (Sandbox Code Playgroud)

cpu scheduling kernel linux-kernel

9
推荐指数
1
解决办法
6271
查看次数

QEMU/KVM 是否使用 Intel AES 指令来加密 qcow2 镜像(如果主机 CPU 有)?

KVM 的 qcow2 映像文件格式可以使用 AES 加密。加密应用于集群级别

每个簇内的每个扇区都使用 AES 密码块链接模式独立加密,使用小端格式的扇区偏移量(相对于设备的开头)作为 128 位初始化向量的前 64 位。

所述簇的大小可以设置从512个字节至2M(64K似乎是默认值)。

使用 qcow2 加密的主要问题之一是 CPU 的性能损失 - 每个磁盘写入或非缓存读取都需要加密或取消加密。

我想知道的是 QEMU/KVM 是否使用Intel AES 指令来减轻主机 CPU 具有的性能损失?如果是这样,使用情况或性能是否在很大程度上取决于集群大小?

英特尔® AES 指令是一组新指令,从基于 32 纳米英特尔® 微架构代号 Westmere 的全新 2010 英特尔® 酷睿™ 处理器家族开始。这些指令使用 FIPS 出版物编号 197 定义的高级加密标准 (AES) 实现快速、安全的数据加密和解密。 由于 AES 目前是主要的分组密码,并且用于各种协议,因此新指令很有价值用于广泛的应用。

cpu kvm encryption disk-encryption

9
推荐指数
1
解决办法
5592
查看次数

仅使用一个 CPU 内核

我需要为我的并发程序运行性能测试,我的要求是它应该只在一个CPU 内核上运行。(我不想合作线程 - 我希望总是有一个上下文切换)。

所以我有两个问题:

  1. 最佳解决方案 - 如何仅为我的程序签名和保留一个 CPU 内核(以强制操作系统不使用此 CPU 内核)。我想这是不可能的,但也许我错了......

  2. 如何设置 linux (Fedora 24) 只使用一个 CPU 核心?

linux cpu parallelism

9
推荐指数
1
解决办法
8725
查看次数