我想检查我的 Python 脚本正在使用多少个内核。
假设我有这个代码:
while True:
print('Hello World!')
当我运行时top
,它会提供 CPU、内存、百分比以及其他信息,但不提供核心 ID 或进程正在使用的核心数量。
top - 11:44:15 up 1 day, 23:08, 1 user, load average: 2.88, 2.39, 2.15
Tasks: 289 total, 5 running, 238 sleeping, 0 stopped, 0 zombie
%Cpu(s): 55.2 us, 31.8 sy, 0.0 ni, 12.8 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem : 7945496 total, 1027328 free, 4707680 used, 2210488 buff/cache
KiB Swap: 15999996 total, 14991876 free, 1008120 used. 2615420 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15336 lenovo 20 0 4393044 470488 192616 S 8.6 5.9 148:18.31 firefox
4412 lenovo 20 0 4521092 437940 65416 R 15.6 5.5 87:58.54 gnome-shell
4221 root 20 0 561840 82500 45652 R 9.9 1.0 84:25.21 Xorg
15395 lenovo 20 0 3871472 319376 151876 S 0.0 4.0 83:57.26 Web Content
2838 lenovo 20 0 3993616 823816 158412 R 68.5 10.4 36:28.10 Web Content
4435 lenovo 9 -11 2915368 11596 8836 S 0.3 0.1 35:46.08 pulseaudio
3342 lenovo 20 0 3060860 324000 127948 S 8.6 4.1 27:53.92 atom
29632 lenovo 20 0 3717204 750864 152688 S 10.3 9.5 22:25.05 Web Content
15443 lenovo 20 0 3273020 245772 50128 S 2.3 3.1 19:49.64 WebExtensions
3293 lenovo 20 0 1291576 215972 112612 S 4.6 2.7 15:38.90 atom
3319 lenovo 20 0 734208 226016 104340 S 5.6 2.8 14:52.60 atom
1446 root -51 0 0 0 0 S 1.0 0.0 14:21.71 irq/132-nvidia
16083 lenovo 20 0 446420 35468 27844 S 1.3 0.4 11:06.27 RDD Process
29733 lenovo 20 0 3537988 363160 235184 S 0.0 4.6 9:29.13 Web Content
29780 lenovo 20 0 3414220 363812 174640 S 0.3 4.6 7:50.64 Web Content
29570 lenovo 20 0 3068760 245412 125788 S 0.3 3.1 4:14.76 Web Content
1733 gdm 20 0 3464584 75712 45704 S 0.0 1.0 4:08.74 gnome-shell
我做了一些谷歌搜索,我发现了这个命令:
watch -tdn0.5 ps -mo pid,tid,%cpu,psr -p \`pgrep python\`
哪个输出:
PID TID %CPU PSR
15329 - 95.2 -
- 15329 95.2 1
好吧,我不确定前面的命令是否真的有效。
如果有人能给出解释,我将不胜感激。
编辑:
我使用的是 Ubuntu 18.04 桌面版。
内核版本:
4.15.0-99-generic #100-Ubuntu SMP Wed Apr 22 20:32:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
使用
top
,您可以显示“上次使用的 CPU”:按
f
,导航至P
(Last Used CPU),按d
将其标记为显示,然后按q
返回进程视图。要显示线程而不是进程(一个进程通过在多个 CPU 上调度其线程来一次运行),
top
请使用该-H
选项运行,或H
在启动后按。火狐浏览器示例:
我找到了一个很棒的工具,类似于
top
,但有更多细节。htop,可以通过运行安装
sudo apt install htop
。这是运行后的默认界面
htop
。如您所见,有更多关于正在运行的进程、CPU 和内存使用情况的信息。
与 类似
top
,也可以添加包含更多信息的新列。就我而言,要显示进程/线程在哪个核心上运行:
这是我添加新列后的屏幕截图: