16 core tidak digunakan dari 80 core

11

Baru-baru ini saya menemukan bahwa server kami tidak menggunakan semua 80 utas lagi dalam sistem. Sepertinya jika 16 core selalu menganggur, meskipun beban sistem tinggi.

Ini adalah server Dell powerEdge R900, dengan 4 soket, 4 kali Xeon 10-inti. Jadi 40 core, dengan HT 80 thread-nya. (Intel (R) Xeon (R) CPU E7- 4850 @ 2.00GHz). Memori sistem adalah 512GB Menjalankan Ubuntu 14.04.1 LTS. Saya belum me-reboot server, saya berharap untuk menghindari ini.

uname -a
Perakitan Linux 3.13.0-35-generik # 62-Ubuntu SMP Jum 15 Agt 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux

Saya akan memeriksa yang berikut ini:

Suhu diukur dengan i7z: (tidak dapat menampilkan 4 soket

Kecepatan cpu dari cpuinfo 1994.00Mhz
True Frekuensi (tanpa Turbo turbo) 1994 MHz

Socket [0] - [core fisik = 10, core logis = 20, maks online core pernah = 10]
  Pengganda CPU 15x || Frekuensi jam bus (BCLK) 132,93 MHz
  TURBO DIAKTIFKAN pada 10 Cores, Hyper Threading ON
  Frekuensi Maks tanpa mempertimbangkan Turbo 2126,93 MHz (132,93 x [16])
  Pengganda TURBO Maks (jika Diaktifkan) dengan 1/2/3/4/5/6 core adalah 0x / 0x / 0x / 0x / 0x / 0x
  Real Current Frequency 1994,02 MHz (Maks di bawah)
        Inti [inti-id]: Frekuensi Aktual (Mult.) C0% Berhenti (C1)% C3% C6% Temp
        Inti 1 [1]: 1994.01 (15.00x) 100 0 0 0 75
        Inti 2 [5]: 1994.00 (15.00x) 100 0 0 0 77
        Inti 3 [9]: 1994.02 (15.00x) 100 0 0 0 76
        Inti 4 [13]: 1994.00 (15.00x) 100 0 0 0 77
        Inti 5 [17]: 1994.00 (15.00x) 100 0 0 0 77
        Inti 6 [21]: 1994.00 (15.00x) 97.7 0.404 0 1.86 77
        Inti 7 [25]: 1994.00 (15.00x) 94.5 0 1 5.27 77
        Inti 8 [29]: 1994.00 (15.00x) 100 0 0 0 76
        Inti 9 [33]: 1994.00 (15.00x) 99.8 0 1 1 75
        Inti 10 [37]: 1994.00 (15.00x) 100 0 0 0 73
  Frekuensi Maks tanpa mempertimbangkan Turbo 2126,93 MHz (132,93 x [16])
  Pengganda TURBO Maks (jika Diaktifkan) dengan 1/2/3/4/5/6 core adalah 0x / 0x / 0x / 0x / 0x / 0x
  Real Current Frequency 1994,02 MHz (Maks di bawah)
        Inti [inti-id]: Frekuensi Aktual (Mult.) C0% Berhenti (C1)% C3% C6% Temp
        Inti 1 [1]: 1994.02 (15.00x) 100 0 0 0 74
        Inti 2 [5]: 1994.00 (15.00x) 100 0 0 0 76
        Inti 3 [9]: 1994.02 (15.00x) 100 0 0 0 76
        Inti 4 [13]: 1994.00 (15.00x) 100 0 0 0 77
        Inti 5 [17]: 1994.00 (15.00x) 100 0 0 0 76
        Inti 6 [21]: 1994.00 (15.00x) 97 0 1 2.43 77
        Inti 7 [25]: 1994.00 (15.00x) 92.9 0 1 6.81 77
C0 = Prosesor berjalan tanpa halting00x) 100 0 0 0 75
C1 = Prosesor berjalan dengan berhenti (Negara> C0 adalah penghemat daya) 1 1 75
C3 = Cores berjalan dengan PLL dimatikan dan cache inti dimatikan 0 0 73
C6 = Semua yang ada dalam status inti C3 + disimpan ke cache level terakhir
  Nilai di atas dalam tabel dalam persentase selama 1 detik terakhir
[core-id] merujuk ke nomor core-id di / proc / cpuinfo
Pesan 'Nilai Sampah' dicetak ketika nilai sampah dibaca
  Ctrl + C untuk keluar

Idle: 16 core terakhir semuanya idle 100%:

mpstat -p SEMUA 1:
Rata-rata: CPU% usr% bagus% sys% iowait% irq% lunak% mencuri% tamu% gnice% menganggur
Rata-rata: semua 70,69 0,00 0,70 0,00 0,00 0,00 0,00 0,00 28,61
Rata-rata: 0 92,93 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,07
Rata-rata: 1 94,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Rata-rata: 2 100,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Rata-rata: 3 83,33 0,00 2,08 0,00 0,00 0,00 0,00 0,00 14,58
Rata-rata: 4 100,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Rata-rata: 5 100,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
.................................................. ........
Rata-rata: 64 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 65 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 66 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 67 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 68 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 69 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 70 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 71 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 72 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 73 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 74 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 75 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 76 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 77 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 78 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 79 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00

Nomor pemuatan teratas:

top - 17:41:48 hingga 35 hari, 6:28, 15 pengguna, rata-rata memuat: 77,69, 70,48, 62,73
Tugas: total 1327, 44 lari, 1281 tidur, 2 berhenti, 0 zombie
% Cpu (s): 63,7 us, 13,6 sy, 0,0 ni, 22,3 id, 0,2 wa, 0,0 hai, 0,2 si, 0,0 st
KiB Mem: 52837942 + total, 52553190 + digunakan, 2847524 gratis, 535660 buffer
KiB Swap: 78124032 total, 2105608 digunakan, 76018416 gratis. 40637328 + Memori cache

Kadang-kadang% menganggur tidak 100 lagi, tetapi sedikit lebih sedikit, seperti yang Anda lihat di sini, tetapi sebagian besar tetap pada 100% menganggur.

Rata-rata: CPU% usr% bagus% sys% iowait% irq% lunak% mencuri% tamu% gnice% menganggur
Rata-rata: semua 70,69 0,00 0,70 0,00 0,00 0,00 0,00 0,00 28,61
Rata-rata: 64 0,13 0,00 0,00 0,00 0,00 0,00 0,00 0,00 99,87
Rata-rata: 65 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 66 0,00 0,00 2,63 0,00 0,00 0,00 0,00 0,00 97,37
Rata-rata: 67 0,00 0,00 0,13 0,13 0,00 0,00 0,00 0,00 99,75
Rata-rata: 68 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 69 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 70 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 71 0,00 0,00 0,12 0,00 0,00 0,00 0,00 0,00 99,88
Rata-rata: 72 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 73 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 74 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 75 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 76 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 77 0,00 0,00 0,13 0,00 0,00 0,00 0,00 0,00 99,87
Rata-rata: 78 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Rata-rata: 79 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00

Saya juga menjalankan perintah ini untuk memastikan semuanya online:

untuk COUNT di `seq 01 79`; lakukan gema 1> / sys / devices / system / cpu / cpu $ {COUNT} / online; 

Dengan program HTop saya dapat memvisualisasikan bar penggunaan cpu per utas, dan melihat 64 bar terisi dan 16 yang kosong (16 terakhir).

Ketika saya mencoba memulai suatu proses pada sebuah inti> 63 juga gagal melakukannya:

root @ server: ~ # tasket -c 63 waktu
Penggunaan: waktu [-apvV] [-f format] [-o file] [--append] [--verbose]
       [--portabilitas] [--format = format] [--output = file] [--version]
       [--quiet] [--help] command [arg ...]
root @ server: ~ # tasket -c 64 waktu
tasket: gagal mengatur afinitas pid 0: Argumen tidak valid
root @ server: ~ # tasket -c 65 kali
tasket: gagal mengatur afinitas pid 0: Argumen tidak valid

Utas terkait: /ubuntu/536541/ubuntu-uses-only-2-out-of-4-processor-cores

EDIT: Ternyata inti itu mati dengan cepat, tetapi jangan memulai dengan benar. Tampaknya ada proses yang berjalan pada core yang tidak tersedia ini, tetapi tidak mungkin untuk memulai proses baru pada mereka. Menurut log dmesg, core dinonaktifkan dan diaktifkan dengan cepat satu sama lain. Saya harus mengatakan bahwa itu adalah niat untuk mematikan core ini, jadi kami menonaktifkan 'fitur' ini. Contoh log DMESG:

[Senin 12 Jan 12:42:40 2015] kvm: menonaktifkan virtualisasi di CPU79
[Senin 12 Jan 12:42:40 2015] smpboot: CPU 79 sekarang offline
....
[Senin 12 Jan 12:43:12 2015] smpboot: Booting Node 0 Processor 79 APIC 0xf3
[Senin 12 Jan 12:43:12 2015] kvm: mengaktifkan virtualisasi pada CPU79

Kami mengaktifkan / menonaktifkan inti melalui:

untuk COUNT di `seq 64 79`; lakukan gema 1> / sys / devices / system / cpu / cpu $ {COUNT} / online; selesai

Kami tidak pernah menautkan perintah ini dengan 16 inti kami yang tidak tersedia, karena biasanya perintah di atas berfungsi dengan baik. (kami juga mencoba menonaktifkan powermanager, tetapi ini tidak membantu)

HenrivdGeest
sumber
1
Mengapa Anda atau perusahaan Anda tidak menggunakan server Ubuntu daripada Ubuntu untuk PC normal?
XperianX
1
Bukan tidak mungkin 16 core Anda benar-benar digunakan untuk kapasitas MAX, meninggalkan 16 core virtual tanpa margin yang dapat digunakan.
anonymous2
1
Apakah semua 8 core (16 virtual) pada satu CPU fisik, atau mereka tersebar di seluruh 4 soket? Jika mereka berada pada satu CPU fisik, mungkinkah core tersebut gagal?
Jibberish51
2
Saya bertanya-tanya apakah di suatu tempat dalam sistem ada kode yang mewakili topeng afinitas CPU dengan hanya 64 bit mencegah dari memungkinkan proses untuk menggunakan 16 core terakhir.
kasperd
Mengingat bahwa 80-16 = 64, bagi saya sepertinya ada beberapa batasan buatan di suatu tempat pada jumlah maksimum inti yang akan digunakan. Mungkin perangkat lunak apa pun yang Anda jalankan diatur ke maksimum 64 core, atau mungkin tidak dapat menghasilkan lebih dari 64 utas.
Clonkex

Jawaban:

1

Tidak semua program dapat menggunakan banyak utas. php adalah salah satu contohnya. Jika satu proses php membutuhkan banyak CPU, hanya 1 CPU yang akan keluar maksimal. Dan yang lainnya akan menganggur.

Carl
sumber