80 개 코어 중 16 개 코어가 사용되지 않습니다


11

최근에 서버가 시스템에서 더 이상 80 개의 스레드를 모두 사용하지는 않는다는 것을 발견했습니다. 높은 시스템로드에도 불구하고 16 개의 코어가 항상 유휴 상태 인 것처럼 보입니다.

10 코어 Xeon의 4 배인 4 개의 소켓이있는 Dell PowerEdge R900 서버입니다. 따라서 40 개의 코어, HT에는 80 개의 스레드가 있습니다. (인텔 Xeon CPU E7-4850 @ 2.00GHz). 시스템 메모리는 512GB이며 Ubuntu 14.04.1 LTS를 실행합니다. 아직 서버를 재부팅하지 않았으므로 이것을 피하기를 바랐습니다.

uname -a
리눅스 어셈블리 3.13.0-35- 일반 # 62- 우분투 SMP 금요일 8 월 15 일 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux

다음을 확인합니다.

i7z로 측정 한 온도 : (4 개의 소켓을 표시 할 수 없음

cpuinfo의 CPU 속도 1994.00Mhz
실제 주파수 (터보 계산 제외) 1994 MHz

소켓 [0]-[물리 코어 = 10, 논리 코어 = 20, 최대 온라인 코어 = 10]
  CPU 멀티 플라이어 15x || 버스 클럭 주파수 (BCLK) 132.93 MHz
  10 코어에서 터보 활성화, 하이퍼 스레딩 ON
  Turbo 2126.93 MHz (132.93 x [16])를 고려하지 않은 최대 주파수
  1/2/3/4/5/6 코어의 최대 TURBO 멀티 플라이어 (활성화 된 경우)는 0x / 0x / 0x / 0x / 0x / 0x
  실제 전류 주파수 1994.02 MHz (최대 이하)
        코어 [core-id] : 실제 Freq (Mult.) C0 % 정지 (C1) % C3 % C6 % 온도
        코어 1 [1] : 1994.01 (15.00x) 100 0 75
        코어 2 [5] : 1994.00 (15.00x) 100 0 77
        코어 3 [9] : 1994.02 (15.00x) 100 0 76
        코어 4 [13] : 1994.00 (15.00x) 100 0 77
        코어 5 [17] : 1994.00 (15.00x) 100 0 77
        코어 6 [21] : 1994.00 (15.00x) 97.7 0.404 0 1.86 77
        코어 7 [25] : 1994.00 (15.00x) 94.5 0 1 5.27 77
        코어 8 [29] : 1994.00 (15.00x) 100 0 76
        코어 9 [33] : 1994.00 (15.00x) 99.8 01 75
        코어 10 [37] : 1994.00 (15.00x) 100 0 73
  Turbo 2126.93 MHz (132.93 x [16])를 고려하지 않은 최대 주파수
  1/2/3/4/5/6 코어의 최대 TURBO 멀티 플라이어 (활성화 된 경우)는 0x / 0x / 0x / 0x / 0x / 0x
  실제 전류 주파수 1994.02 MHz (최대 이하)
        코어 [core-id] : 실제 Freq (Mult.) C0 % 정지 (C1) % C3 % C6 % 온도
        코어 1 [1] : 1994.02 (15.00x) 100 0 74
        코어 2 [5] : 1994.00 (15.00x) 100 0 76
        코어 3 [9] : 1994.02 (15.00x) 100 0 76
        코어 4 [13] : 1994.00 (15.00x) 100 0 77
        코어 5 [17] : 1994.00 (15.00x) 100 0 76
        코어 6 [21] : 1994.00 (15.00x) 97 01 2.43 77
        코어 7 [25] : 1994.00 (15.00x) 92.9 0 1 6.81 77
C0 = 정지하지 않고 실행중인 프로세서 10000 75
C1 = 정지 상태로 실행중인 프로세서 (상태> C0은 절전 모드 임) 1 1 75
C3 = PLL을 끄고 코어 캐시를 끈 상태에서 실행중인 코어 00 73
C6 = C3 + 코어 상태의 모든 것이 마지막 레벨 캐시에 저장 됨
  표의 위 값은 지난 1 초 동안의 백분율입니다
[core-id]는 / proc / cpuinfo의 core-id 번호를 나타냅니다.
가비지 값을 읽을 때 '가비지 값'메시지가 인쇄됩니다
  종료하려면 Ctrl + C

유휴 : 마지막 16 개의 코어가 모두 100 % 유휴 상태입니다.

mpstat -p ALL 1 :
평균 : CPU % usr % nice % sys % iowait % irq % soft % steal % guest % gnice % idle
평균 : 모두 70.69 0.00 0.70 0.00 0.00 0.00 0.00 0.00 0.00 28.61
평균 : 0 92.93 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.07
평균 : 1 94.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 6.00
평균 : 2 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
평균 : 3 83.33 0.00 2.08 0.00 0.00 0.00 0.00 0.00 0.00 14.58
평균 : 4 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
평균 : 5 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
.................................................. ........
평균 : 64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 65 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 66 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 67 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 68 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 69 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 71 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 72 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 73 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 74 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 75 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 76 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 77 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 78 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 79 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

최고로드 번호 :

상위-17:41:48 최대 35 일, 6:28, 15 명의 사용자,로드 평균 : 77.69, 70.48, 62.73
작업 : 총 1327 개, 44 개 실행, 1281 자, 2 개 중지, 0 좀비
% Cpu : 63.7 us, 13.6 sy, 0.0 ni, 22.3 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem : 52837942+ 전체, 52553190+ 중고, 2847524 무료, 535660 버퍼
KiB 스왑 : 총 78124032, 2105608 사용, 76018416 무료. 캐시 된 멤

때때로 유휴 %는 더 이상 100이 아니지만 여기에서 볼 수 있듯이 약간 작지만 대부분 100 % 유휴 상태로 유지됩니다.

평균 : CPU % usr % nice % sys % iowait % irq % soft % steal % guest % gnice % idle
평균 : 모두 70.69 0.00 0.70 0.00 0.00 0.00 0.00 0.00 0.00 28.61
평균 : 64 0.13 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.87
평균 : 65 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 66 0.00 0.00 2.63 0.00 0.00 0.00 0.00 0.00 0.00 97.37
평균 : 67 0.00 0.00 0.13 0.13 0.00 0.00 0.00 0.00 0.00 99.75
평균 : 68 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 69 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 71 0.00 0.00 0.12 0.00 0.00 0.00 0.00 0.00 0.00 99.88
평균 : 72 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 73 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 74 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 75 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 76 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 77 0.00 0.00 0.13 0.00 0.00 0.00 0.00 0.00 0.00 99.87
평균 : 78 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
평균 : 79 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

또한이 명령을 모두 실행하여 모두 온라인 상태인지 확인했습니다.

`seq 01 79`의 COUNT; echo 1> / sys / devices / system / cpu / cpu $ {COUNT} / online; 

HTop 프로그램을 사용하면 스레드 당 CPU 사용량 막대를 시각화 할 수 있으며 64 개의 막대가 채워지고 16 개의 빈 막대가 있습니다 (마지막 16 개).

코어에서 프로세스를 시작하려고하면> 63도 실패합니다.

root @ server : ~ # taskset -c 63 시간
사용법 : 시간 [-apvV] [-f 형식] [-o 파일] [-추가] [-상세]
       [-이동성] [--format = format] [--output = file] [-버전]
       [--quiet] [--help] 명령 [arg ...]
root @ server : ~ # taskset -c 64 시간
taskset : pid 0의 선호도를 설정하지 못했습니다 : 잘못된 인수
root @ server : ~ # taskset -c 65 시간
taskset : pid 0의 선호도를 설정하지 못했습니다 : 잘못된 인수

관련 스레드 : /ubuntu/536541/ubuntu-uses-only-2-out-of-4-processor-cores

편집 : 코어가 즉시 종료되지만 올바르게 시작되지 않는 것으로 나타났습니다. 사용할 수없는 코어에서 실행중인 프로세스가있는 것 같지만 새 프로세스를 시작할 수는 없습니다. dmesg 로그에 따르면 코어는 서로 비활성화되고 빠르게 활성화됩니다. 이 코어를 종료하려는 의도 였으므로이 '기능'을 비활성화했습니다. DMESG 예제 로그 :

[Mon Jan 12 12:42:40 2015] kvm : CPU79에서 가상화 비활성화
[Mon Jan 12 12:42:40 2015] smpboot : CPU 79가 이제 오프라인입니다
....
[Mon Jan 12 12:43:12 2015] smpboot : 부팅 노드 0 프로세서 79 APIC 0xf3
[Mon Jan 12 12:43:12 2015] kvm : CPU79에서 가상화 활성화

다음을 통해 코어를 활성화 / 비활성화합니다.

`seq 64 79`의 COUNT; echo 1> / sys / devices / system / cpu / cpu $ {COUNT} / online; done

일반적으로 위의 명령이 제대로 작동하므로이 명령을 16 개의 사용 불가능한 코어와 연결하지 않았습니다. (우리는 또한 powermanager 비활성화를 시도했지만 도움이되지 않았습니다)


1
왜 당신이나 당신 회사가 일반 PC를 위해 우분투 대신 우분투 서버를 사용하지 않았습니까?
XperianX 2019 년

1
16 개의 코어가 실제로 최대 용량에 사용되고있어 16 개의 가상 코어를 사용할 수있는 여백없이 남겨 두는 것은 불가능하지 않습니다.
anonymous2

1
하나의 물리적 CPU에 8 개의 코어 (16 개의 가상)가 모두 있습니까, 아니면 4 개의 소켓 모두에 분산되어 있습니까? 하나의 물리적 CPU에있는 경우 해당 코어가 실패했을 수 있습니까?
Jibberish51

2
시스템 어딘가에 64 비트의 CPU 선호도 마스크를 나타내는 코드가있어 프로세스가 마지막 16 코어를 사용할 수 없도록하는 코드가 있는지 궁금합니다.
kasperd

80-16 = 64라고 가정하면 사용할 수있는 최대 코어 수에 인공 한계가있는 것처럼 보입니다. 실행중인 소프트웨어가 최대 64 개의 코어로 설정되었거나 64 개 이상의 스레드를 생성 할 수 없습니다.
Clonkex

답변:


1

모든 프로그램이 여러 스레드를 사용할 수있는 것은 아닙니다. php는 예를 들어 하나입니다. 하나의 PHP 프로세스에 많은 CPU가 필요한 경우 1 개의 CPU 만 사용됩니다. 그리고 다른 사람들은 유휴 상태가됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.