unix 为什么查询进程可用CPU返回所有CPU?

aydmsdu9  于 2022-11-23  发布在  Unix
关注(0)|答案(1)|浏览(136)

我尝试使用cpuset_getaffinity查询进程可用的CPU(他可以在哪些CPU上运行)。

cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, getpid(),
                             sizeof(*cpuset), cpuset);

查询返回的cpu集包含所有系统CPU。我想知道为什么以及在哪些情况下不是所有CPU都可用于一个进程?

prdp8dxp

prdp8dxp1#

你可以定义哪些CPU是专用的,比如说你想强调的一些进程。我使用8个CPU中的2个用于DPKD。
[root@我的服务器]目录/etc/默认/grub
GRUB_CMDLINE_LINUX_DEFAULT=“控制台= ttyS 0,115200控制台= tty 0独立CPU = 2,3默认值= 2 M大页面= 2 M大页面=1024”
您可以看到isolcpus= 2,3专用于DPKD,并且使用率为100%。
% Cpu 0:0.7微秒,0.7系统秒,0.0镍,98.7内径,
% Cpu 1:12.5微秒,2.6秒,0.0秒,84.9秒,
% Cpu 2:100.0微秒,0.0秒,0.0秒,0.0分钟,0.0秒,
% Cpu 3:100.0微秒,0.0秒,0.0秒,0.0分钟,0.0秒,
% Cpu 4:1.3微秒,2.0秒,0.0秒,92.6秒,
% Cpu 5:0.3微秒,0.3系统秒,0.0镍,99.3内径,
% Cpu 6:0.3微秒,0.3系统秒,0.0镍,99.3内径,
% Cpu 7:0.3微秒,1.0秒,0.0秒,98.7秒,
在本例中,如果这是您的问题,您会发现并非所有CPU都可用于处理传入进程。

相关问题