我可以访问 Linux 集群的 8 核节点。登录到节点后,我可以使用以下命令查看处理器列表:
more /proc/cpuinfo
Run Code Online (Sandbox Code Playgroud)
在我的 8 核节点中,处理器编号从 0 到 7。每个处理器都是 Intel Xeon CPU (E5430 @ 2.66GHz)。
现在假设我foo用一些参数调用程序args:
foo args
Run Code Online (Sandbox Code Playgroud)
该程序foo需要很长时间才能执行(例如,数小时或数天)。调用之后foo,是否可以确定正在运行的特定处理器(即 0 到 7)foo?该top程序向我显示了进程 ID 和类似信息,但我没有看到处理器编号。这些信息是否可用?
我很熟悉lshw,/proc/cpuinfo等,但有在一个CPU的获得方法CPUID操作码?
如果我从 AC 适配器上拔下我的笔记本电脑,我会收到如下 ACPI 错误:
May 07 21:45:04 veritas root[7067]: ACPI group/action undefined: processor / LNXCPU:00
May 07 21:45:04 veritas root[7076]: ACPI group/action undefined: processor / LNXCPU:01
May 07 21:45:04 veritas root[7078]: ACPI group/action undefined: processor / LNXCPU:02
May 07 21:45:04 veritas root[7080]: ACPI group/action undefined: processor / LNXCPU:03
Run Code Online (Sandbox Code Playgroud)
acpi_listen 倾倒
ac_adapter ACPI0003:00 00000080 00000000
battery PNP0C0A:00 00000080 00000001
processor LNXCPU:00 00000080 00000015
processor LNXCPU:01 00000080 00000015
processor LNXCPU:02 00000080 00000015
processor LNXCPU:03 00000080 00000015
processor LNXCPU:00 00000081 00000000
processor …Run Code Online (Sandbox Code Playgroud) 我的 CPU 使用率几乎是 90%+ 在调查了 htop 的输出后,我看到,下面这个命令有一个进程占用了太多的 CPU 使用率
/usr/lib/xorg/Xorg -nolisten tcp :0 vt1 -keeptty -auth /tmp/serverauth.eEvrhpxBUl
Run Code Online (Sandbox Code Playgroud)
alamin 1635 1634 31 06:12 tty1 00:35:13 /usr/lib/xorg/Xorg -nolisten tcp :0 vt1 -keeptty -auth /tmp/serverauth.eEvrhpxBUl
alamin 9081 26703 0 08:04 pts/0 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn Xorg
Run Code Online (Sandbox Code Playgroud)
00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)
00:03.0 Audio device: Intel Corporation Broadwell-U Audio Controller …Run Code Online (Sandbox Code Playgroud) 我们可以/proc/cpuinfo在 Intel 和 ARM 机器上进行检查以了解 CPU 功能,例如 AES 和 SHA。我需要在 AIX 和 Linux 下对 PowerPC 执行相同的操作。
使用 Linux 进行测试如下所示。输出由GCC112在编译场上生成。
$ cat /proc/cpuinfo
processor : 0
cpu : POWER8E (raw), altivec supported
clock : 2061.000000MHz
revision : 2.1 (pvr 004b 0201)
...
processor : 159
cpu : POWER8E (raw), altivec supported
clock : 2061.000000MHz
revision : 2.1 (pvr 004b 0201)
timebase : 512000000
platform : PowerNV
model : 8247-22L
machine : PowerNV 8247-22L
firmware : …Run Code Online (Sandbox Code Playgroud) 我有一台配备 Intel i7-12700 32GB RAM 的新台式电脑。
我正在做构建代码的工作,我使用sensors命令来检查CPU温度,我发现大多数核心都是@ 100C。
这正常吗?
CPU硬件本身会控制频率以适应温度吗?
更新
我检查了dmesg,发现了很多日志,如下所示:
mce: CPUxx: Package temperature above threshold, cpu clock throttled
Run Code Online (Sandbox Code Playgroud)
看起来CPU控制本身不高于100C。
我创建了一个脚本,如果 CPU 和/或内存使用率达到 80%,它就会终止进程。发生这种情况时,它会创建一个被杀死进程的列表。我能做些什么来改善它?
while [ 1 ];
do
echo
echo checking for run-away process ...
CPU_USAGE=$(uptime | cut -d"," -f4 | cut -d":" -f2 | cut -d" " -f2 | sed -e "s/\.//g")
CPU_USAGE_THRESHOLD=800
PROCESS=$(ps aux r)
TOPPROCESS=$(ps -eo pid -eo pcpu -eo command | sort -k 2 -r | grep -v PID | head -n 1)
if [ $CPU_USAGE -gt $CPU_USAGE_THRESHOLD] ; then
kill -9 $(ps -eo pid | sort -k 1 -r | grep -v PID | …Run Code Online (Sandbox Code Playgroud) PCB或过程控制块,在维基百科上是这样定义的
进程控制块(PCB,也称为任务控制块,[1] 任务结构或切换帧)是操作系统内核中的一种数据结构,包含管理特定进程所需的信息。PCB是“一个进程在操作系统中的体现
它的职责是:
Process identification data
Processor state data
Process control data
Run Code Online (Sandbox Code Playgroud)
那么一个工艺的PCB在哪里可以找到呢?
它看起来像我已经Logcheck的设置为一个cron作业,每当它的运行过程中grep通过logcheck各地占用¼我的CPU。
现在我在某些时候需要我的全部 CPU 容量并让我的系统占用尽可能少的资源,除了特定/进程(我可能可以以某种方式指定)。
是否可以将带有 KDE 机器的 Debian 9.1 设置为某种性能模式(或“游戏模式”),以防止用户未明确启动的进程占用大量系统资源,降低后台进程的负载,最重要的是:延迟 cron 作业,直到该模式再次停止?
使用带有 i7-7700HQ(基本时钟 2.8Ghz)和 GTX 1050 的 Lenovo Legion Y520。
我在 linux 中收到 CPU 过热警告,它影响了我在游戏中的表现(在 Payday 2 和 CS:GO 中找到)。我在 Windows 中从来没有遇到过问题。
这是我在尝试解决此问题时发现的:
在 Windows 10 中(使用 aida64)
Windows 在空闲时保持在 3.4 Ghz 左右(不知道为什么在 CPU 使用率不到 3% 的情况下如此之高),温度在 50C 左右。
当给 CPU 施加压力时,温度会缓慢地(在几秒钟内而不是瞬间)从大约 50C 上升到大约 75C 并舒适地保持在那里。压力时时钟速度约为2.9Ghz。利用率始终为 100%。Aida64 不报告节流。受压时,CPU 内核上的电压从大约 1.1 到 0.9 不等。
在 Arch Linux 中(使用 s-tui)
Linux 在空闲时保持在 2.0Ghz 左右,温度在 50C 左右。
这就是奇怪的地方:当给 CPU 施加压力时,温度会立即从 50C 升至 93C 左右。压力时时钟速度正好是 3.4Ghz。利用率始终为 100%。当关闭压力测试时,温度立即回到 50C 左右,就好像什么都没发生过一样。这样做时,笔记本电脑当然不会感觉它加热到 90C+,即使在长时间压力之后也是如此。
这是一张图片,显示了温度、功率和频率如何同时下降。注意在这么短的时间内 cpu 温度变化了多少。

我该如何解决这个限制问题?在 linux …