CPU와 커널의 관계

CPU와 커널의 관계

제가 항상 알고 있던 것은 CPU는 여러 개의 코어를 가질 수 있지만 코어는 하나의 CPU에만 속할 수 있다는 것입니다. 인터넷에서 찾은 정보도 이를 보여줍니다. 그런데 를 사용하면 lscpu --extend여러 개의 CPU가 하나의 코어에 속한다고 표시됩니다. 다음은 내 Linux 서버에서 사용한 데이터를 보여줍니다 lscpu --extend. 이는 CPU0과 CPU24가 모두 코어 0에 속한다는 것을 보여줍니다.

    CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ    MINMHZ
    0   0    0      0    0:0:0:0       是     2900.0000 1200.0000
    1   1    1      1    1:1:1:1       是     2900.0000 1200.0000
    2   0    0      2    2:2:2:0       是     2900.0000 1200.0000
    3   1    1      3    3:3:3:1       是     2900.0000 1200.0000
    4   0    0      4    4:4:4:0       是     2900.0000 1200.0000
    5   1    1      5    5:5:5:1       是     2900.0000 1200.0000
    6   0    0      6    6:6:6:0       是     2900.0000 1200.0000
    7   1    1      7    7:7:7:1       是     2900.0000 1200.0000
    8   0    0      8    8:8:8:0       是     2900.0000 1200.0000
    9   1    1      9    9:9:9:1       是     2900.0000 1200.0000
    10  0    0      10   10:10:10:0    是     2900.0000 1200.0000
    11  1    1      11   11:11:11:1    是     2900.0000 1200.0000
    12  0    0      12   12:12:12:0    是     2900.0000 1200.0000
    13  1    1      13   13:13:13:1    是     2900.0000 1200.0000
    14  0    0      14   14:14:14:0    是     2900.0000 1200.0000
    15  1    1      15   15:15:15:1    是     2900.0000 1200.0000
    16  0    0      16   16:16:16:0    是     2900.0000 1200.0000
    17  1    1      17   17:17:17:1    是     2900.0000 1200.0000
    18  0    0      18   18:18:18:0    是     2900.0000 1200.0000
    19  1    1      19   19:19:19:1    是     2900.0000 1200.0000
    20  0    0      20   20:20:20:0    是     2900.0000 1200.0000
    21  1    1      21   21:21:21:1    是     2900.0000 1200.0000
    22  0    0      22   22:22:22:0    是     2900.0000 1200.0000
    23  1    1      23   23:23:23:1    是     2900.0000 1200.0000
    24  0    0      0    0:0:0:0       是     2900.0000 1200.0000
    25  1    1      1    1:1:1:1       是     2900.0000 1200.0000
    26  0    0      2    2:2:2:0       是     2900.0000 1200.0000
    27  1    1      3    3:3:3:1       是     2900.0000 1200.0000
    28  0    0      4    4:4:4:0       是     2900.0000 1200.0000
    29  1    1      5    5:5:5:1       是     2900.0000 1200.0000
    30  0    0      6    6:6:6:0       是     2900.0000 1200.0000
    31  1    1      7    7:7:7:1       是     2900.0000 1200.0000
    32  0    0      8    8:8:8:0       是     2900.0000 1200.0000
    33  1    1      9    9:9:9:1       是     2900.0000 1200.0000
    34  0    0      10   10:10:10:0    是     2900.0000 1200.0000
    35  1    1      11   11:11:11:1    是     2900.0000 1200.0000
    36  0    0      12   12:12:12:0    是     2900.0000 1200.0000
    37  1    1      13   13:13:13:1    是     2900.0000 1200.0000
    38  0    0      14   14:14:14:0    是     2900.0000 1200.0000
    39  1    1      15   15:15:15:1    是     2900.0000 1200.0000
    40  0    0      16   16:16:16:0    是     2900.0000 1200.0000
    41  1    1      17   17:17:17:1    是     2900.0000 1200.0000
    42  0    0      18   18:18:18:0    是     2900.0000 1200.0000
    43  1    1      19   19:19:19:1    是     2900.0000 1200.0000
    44  0    0      20   20:20:20:0    是     2900.0000 1200.0000
    45  1    1      21   21:21:21:1    是     2900.0000 1200.0000
    46  0    0      22   22:22:22:0    是     2900.0000 1200.0000
    47  1    1      23   23:23:23:1    是     2900.0000 1200.0000

답변1

일부 용어는 이상하지만 그렇습니다.

이 출력에서 ​​소켓은 CPU를 의미하고 코어는 CPU(소켓)의 코어를 의미하므로 소켓 0의 코어 0과 소켓 1의 코어 0이 있을 수 있습니다.

노드는 Numa 노드이므로 두 개의 장치가 클러스터로 함께 네트워크로 연결되어 있습니다.

그리고 CPU는 별개의 코어를 의미합니다. 하나는 소켓 0 코어 0용이고 다른 하나는 소켓 1 코어 0용입니다.

그러나 내 생각에는 CPU n과 n+24가 동일한 것 같습니다.

0   0    0      0    0:0:0:0       yes    2000.0000 500.0000
1   0    0      1    1:1:1:0       yes    2000.0000 500.0000
2   0    0      0    0:0:0:0       yes    2000.0000 500.0000
3   0    0      1    1:1:1:0       yes    2000.0000 500.0000

비슷한 결과. 이 장치에는 소켓(CPU) 1개와 코어 2개가 있지만 하이퍼스레드는 4개 있는 것으로 알고 있습니다. 그러므로 나는 각 CPU가 하이퍼스레드(진정한 독립 코어가 아님)라고 생각합니다.

출력은 다음에서 비롯됩니다.lscpu

...
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  2
Core(s) per socket:  2
Socket(s):           1
NUMA node(s):        1
...

관련 정보