如何查找任意给定时间每个 CPU 核心中运行的作业数(由 gnu parallel 创建)?

如何查找任意给定时间每个 CPU 核心中运行的作业数(由 gnu parallel 创建)?

我正在使用 gnu parallel 来读取包含curl 命令的文本文件。如果我这样做,ps -ef | grep -cw [c]url它会显示此时卷曲过程的总数。

但我想知道每个 CPU 核心中运行的 gnu 并行作业的数量。

如何找到那个?

答案1

从字面上看这个问题,我看不出有什么办法可以做到这一点:一个进程可能在一个核心上运行 1 毫秒,然后在另一个核心上运行下一个毫秒。

不过,您的评论很容易回答:

我想确保所有核心都参与其中。我如何验证这一点?

htop

这表明所有核心都忙:


  1  [|||||93.0%]    17 [|||||97.3%]   33 [|||||87.1%]    49 [|||||91.0%]
  2  [|||||95.3%]    18 [|||||98.5%]   34 [|||||91.4%]    50 [|||||92.5%]
  3  [|||||93.7%]    19 [|||||96.9%]   35 [|||||87.4%]    51 [|||||91.3%]
  4  [|||||90.2%]    20 [|||||96.2%]   36 [|||||92.1%]    52 [|||||94.9%]
  5  [|||||95.3%]    21 [|||||97.3%]   37 [|||||87.6%]    53 [|||||90.7%]
  6  [|||||95.3%]    22 [|||||97.3%]   38 [|||||92.0%]    54 [|||||93.4%]
  7  [|||||91.7%]    23 [|||||97.7%]   39 [|||||86.7%]    55 [|||||94.2%]
  8  [|||||92.5%]    24 [|||||98.4%]   40 [|||||93.3%]    56 [|||||91.8%]
  9  [|||||97.3%]    25 [|||||97.7%]   41 [|||||93.8%]    57 [|||||92.9%]
  10 [|||||97.7%]    26 [|||||96.9%]   42 [|||||94.9%]    58 [|||||93.5%]
  11 [|||||97.7%]    27 [|||||98.4%]   43 [|||||95.3%]    59 [|||||90.8%]
  12 [|||||97.3%]    28 [|||||97.7%]   44 [|||||95.3%]    60 [|||||91.3%]
  13 [|||||96.5%]    29 [|||||97.3%]   45 [|||||95.7%]    61 [|||||93.2%]
  14 [|||||97.7%]    30 [|||||97.7%]   46 [|||||95.3%]    62 [|||||93.3%]
  15 [|||||97.7%]    31 [|||||97.7%]   47 [|||||94.5%]    63 [|||||92.6%]
  16 [|||||96.9%]    32 [|||||95.7%]   48 [|||||94.0%]    64 [|||||94.9%]
  Avg[||||||||||||||||||||||||94.5%]   Tasks: 302, 10084 thr; 39 running
  Mem[|||                10.1G/504G]   Load average: 119.46 47.95 29.59 
  Swp[                        0K/0K]   Uptime: 00:17:23

    PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
   2457 vcache     20   0 4985M 1284M 86536 S 440.  0.2 10:54.69 /usr/sbin/varn
 351883 www-data   20   0 1954M 11736  3748 S 142.  0.0  1:20.80 /usr/sbin/apac
 433876 www-data   20   0 1953M 11392  3748 S 132.  0.0  0:29.07 /usr/sbin/apac
 411605 www-data   20   0 1889M 11424  3748 S 99.0  0.0  0:40.96 /usr/sbin/apac
   2466 varnishlo  20   0 87080 84156 83468 S 42.6  0.0  1:07.94 /usr/bin/varni
 371877 tange      20   0 15916 11136  3500 R 40.3  0.0  0:24.92 htop
 372227 tange      20   0 25960 19820  5688 D 33.2  0.0  0:15.86 perl /usr/loca
 372060 tange      20   0 25912 19816  5692 D 32.5  0.0  0:15.21 perl /usr/loca
F1Help  F2Setup F3SearchF4FilterF5Tree  F6SortByF7Nice -F8Nice +F9Kill  F10Quit

这显示了一台闲置的机器:


  1  [|     0.5%]    17 [      0.0%]   33 [      0.0%]    49 [      0.0%]
  2  [      0.0%]    18 [      0.0%]   34 [      0.0%]    50 [      0.0%]
  3  [      0.0%]    19 [      0.0%]   35 [      0.0%]    51 [      0.0%]
  4  [      0.0%]    20 [      0.0%]   36 [      0.0%]    52 [      0.0%]
  5  [      0.0%]    21 [|     0.5%]   37 [      0.0%]    53 [      0.0%]
  6  [      0.0%]    22 [      0.0%]   38 [      0.0%]    54 [      0.0%]
  7  [      0.0%]    23 [      0.0%]   39 [      0.0%]    55 [      0.0%]
  8  [|||| 29.6%]    24 [      0.0%]   40 [      0.0%]    56 [      0.0%]
  9  [|     0.5%]    25 [|     0.5%]   41 [|     0.5%]    57 [|     0.9%]
  10 [      0.0%]    26 [|     0.5%]   42 [      0.0%]    58 [|     0.5%]
  11 [      0.0%]    27 [||    0.9%]   43 [      0.0%]    59 [|     0.9%]
  12 [      0.0%]    28 [|     0.5%]   44 [      0.0%]    60 [|     0.5%]
  13 [      0.0%]    29 [|     0.5%]   45 [|     0.5%]    61 [|     0.9%]
  14 [      0.0%]    30 [|     0.5%]   46 [|     0.5%]    62 [|     0.9%]
  15 [      0.0%]    31 [|     0.5%]   47 [|     0.5%]    63 [||    1.4%]
  16 [      0.0%]    32 [|     0.5%]   48 [      0.0%]    64 [|     0.9%]
  Avg[||                       0.7%]   Tasks: 132, 10350 thr; 1 running
  Mem[|||                7.15G/504G]   Load average: 1.02 21.86 20.72 
  Swp[                        0K/0K]   Uptime: 00:15:10 

    PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
   2457 vcache     20   0 4913M 1191M 86520 S  0.5  0.2  7:02.69 /usr/sbin/varn
   3023 mysql      20   0 2092M  377M 35696 S  0.5  0.1  0:00.50 /usr/sbin/mysq
   4217 root       20   0 2366M 44548 19464 S  0.5  0.0  0:00.12 /usr/lib/snapd
 371811 root       20   0 23436  5048  1892 S  0.0  0.0  0:00.03 /lib/systemd/s
 371814 root       20   0 23436  5048  1892 S  0.0  0.0  0:00.03 /lib/systemd/s
 371816 root       20   0 23436  5048  1892 S  0.0  0.0  0:00.03 /lib/systemd/s
 371817 root       20   0 23436  5048  1892 S  0.0  0.0  0:00.03 /lib/systemd/s
 371818 root       20   0 23436  5048  1892 S  0.0  0.0  0:00.03 /lib/systemd/s
F1Help  F2Setup F3SearchF4FilterF5Tree  F6SortByF7Nice -F8Nice +F9Kill  F10Quit

答案2

该数字为 0 或 1。CPU 内核一次只能执行一个程序。

相关内容