在具有当前内核和已安装微代码的 Debian Stretch 和测试/Buster 系统上,我仍然看到在/proc/cpuinfo.
然而,运行spectre-meltdown-checker显示并不脆弱。
所以我想知道什么/proc/cpuinfo显示。这些只是该 CPU 的漏洞吗?尽管系统已打补丁,但这些漏洞是否总是会被列出?
我问了之前的一个问题,试图找出将应用程序从 RHEL 5 迁移到 RHEL 6 时 CPU 使用率增加的原因。我为此所做的分析似乎表明它是由内核中的 CFS 引起的。我编写了一个测试应用程序来尝试验证是否是这种情况(原始测试应用程序已删除以适应大小限制,但在git repo 中仍然可用。
我在 RHEL 5 上使用以下命令编译它:
cc test_select_work.c -O2 -DSLEEP_TYPE=0 -Wall -Wextra -lm -lpthread -o test_select_work
Run Code Online (Sandbox Code Playgroud)
然后我调整了参数,直到戴尔 Precision m6500 上每次迭代的执行时间约为 1 毫秒。
我在 RHEL 5 上得到以下结果:
./test_select_work 1000 10000 300 4
time_per_iteration: min: 911.5 us avg: 913.7 us max: 917.1 us stddev: 2.4 us
./test_select_work 1000 10000 300 8
time_per_iteration: min: 1802.6 us avg: 1803.9 us max: 1809.1 us stddev: 2.1 us
./test_select_work 1000 …Run Code Online (Sandbox Code Playgroud) 我需要在特定的时间间隔运行一些命令/脚本,为此我有两个选择:
cron-jobsleep在脚本本身中实现一个循环。从资源消耗的角度来看,哪个是更好的选择,为什么?是cron更好的方法吗?cron 是否使用某种触发器或使其比其他触发器更有效?cron 使用什么程序来检查和启动作业?
我一直在为Intel Core 2 Quad (Yorkfield) 处理器调整我的 Linux 内核,我注意到以下消息dmesg:
[ 0.019526] cpuidle: using governor menu
[ 0.531691] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[ 0.550918] intel_idle: does not run on family 6 model 23
[ 0.554415] tsc: Marking TSC unstable due to TSC halts in idle
Run Code Online (Sandbox Code Playgroud)
PowerTop 仅显示用于封装和单个内核的状态 C1、C2 和 C3:
Package | CPU 0
POLL 0.0% | POLL 0.0% 0.1 ms
C1 0.0% | C1 0.0% 0.0 ms
C2 8.2% | C2 9.9% 0.4 …Run Code Online (Sandbox Code Playgroud) 每次运行资源繁重的进程(例如大型编译、提取大型 tarball 或……播放 Flash)时,我的笔记本电脑(带有 i3 芯片的 HP)都会疯狂地过热。
我目前正在研究一些冷却解决方案,但有了限制全局 CPU 消耗的想法。我认为如果 CPU 被封顶,温度可能会停止疯狂增加,我愿意牺牲一点性能来完成工作。
如果有帮助,我正在运行 Debian。
由于磁盘控制器故障,我已将服务器从一个主板移到另一个主板。
从那时起,我注意到其中一个核心的 25% 总是会转到 IRQ,但是我还没有设法让自己知道哪个 IRQ 对此负责。
内核是 Linux 2.6.18-194.3.1.el5 (CentOS)。mpstat -P ALL显示:
18:20:33 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
18:20:33 all 0,23 0,00 0,08 0,11 6,41 0,02 0,00 93,16 2149,29
18:20:33 0 0,25 0,00 0,12 0,07 0,01 0,05 0,00 99,49 127,08
18:20:33 1 0,14 0,00 0,03 0,04 0,00 0,00 0,00 99,78 0,00
18:20:33 2 0,23 0,00 0,02 0,03 0,00 0,00 0,00 99,72 0,02
18:20:33 3 0,28 0,00 0,15 0,28 25,63 0,03 0,00 73,64 …Run Code Online (Sandbox Code Playgroud) 上周五,我将我的 Ubuntu 服务器升级到 11.10,它现在使用 3.0.0-12-server 内核运行。从那以后,整体性能急剧下降。升级前系统负载约为 0.3,但目前在具有 16GB RAM(10GB 空闲,未使用交换)的 8 核 CPU 系统上为 22-30。
我要责怪 BTRFS 文件系统驱动程序和底层 MD 阵列,因为 [md1_raid1] 和 [btrfs-transacti] 消耗了大量资源。但是所有的 [kworker/*:*] 消耗更多。
sar 自周五以来,一直在输出类似的东西:
11:25:01 CPU %user %nice %system %iowait %steal %idle
11:35:01 all 1,55 0,00 70,98 8,99 0,00 18,48
11:45:01 all 1,51 0,00 68,29 10,67 0,00 19,53
11:55:01 all 1,40 0,00 65,52 13,53 0,00 19,55
12:05:01 all 0,95 0,00 66,23 10,73 0,00 22,10
Run Code Online (Sandbox Code Playgroud)
并iostat确认写入率非常低:
sda 129,26 3059,12 614,31 258226022 51855269
sdb 98,78 24,28 …Run Code Online (Sandbox Code Playgroud) 我这里有一个 Intel i7 2700k,我想知道如何分辨哪些处理器是物理的,哪些是虚拟的(即:超线程)。我目前正在运行一个 Conky 脚本来显示我的 CPU 温度、频率和负载,但我不确定我是否做得对:

我已经编写了自己的脚本来从 获取温度和频率i7z,但这些仅对应于物理内核。我目前正在像这样显示每个核心:
${cpu cpu1} ${lua display_temp 0} ${lua display_load 0}
${cpu cpu2}
${cpu cpu3} ${lua display_temp 1} ${lua display_load 1}
${cpu cpu4}
# ...
Run Code Online (Sandbox Code Playgroud)
我不确定这是否正确,因为我有时会看到负载和温度。在/proc/cpuinfo,核心是如何排序的?首先所有物理然后所有虚拟?每个物理核心然后它的虚拟核心?它们是如何排序的?
我有一个不那么重要的常规进程,但会消耗这么多的 CPU 能力,我还有一个非常重要的进程,但它大部分时间都处于空闲状态,但是当它找到工作时,它确实需要很高的计算能力
我试图与运行nice -20 ./low_priority_process和nice --20 ./high_priority_process,但仍然较低优先级占用CPU的显著量时高优先级的进程是需要的人,我怎么可以运行一个过程,真的会产生或使用时CPU供电另一个进程甚至自动挂起
我想知道,有没有办法告诉进程它可以占用多少处理器能力?
问题是我正在使用Arista(视频转换器)转换视频,我对疯狂运行的风扇感到恼火,当我查看任务监视器时,它占用了超过 92% 的 CPU。
我可以(以某种方式)告诉它只需要 20% 吗?
谢谢