16 คอร์ไม่ได้ถูกใช้งานจาก 80 คอร์


11

เมื่อเร็ว ๆ นี้ฉันค้นพบว่าเซิร์ฟเวอร์ของเราไม่ได้ใช้งาน 80 เธรดอีกต่อไปในระบบ ดูเหมือนว่า 16 คอร์จะไม่ได้ทำงานแม้ว่าจะมีการโหลดระบบสูงก็ตาม

มันเป็นเซิร์ฟเวอร์ Dell powerEdge R900 ที่มีซ็อกเก็ต 4 ตัว, Xeon 10-core 10 เท่า ดังนั้น 40 คอร์โดยมี HT 80 เธรด (Intel (R) Xeon (R) CPU E7- 4850 @ 2.00GHz) หน่วยความจำระบบคือ 512GB ที่รัน Ubuntu 14.04.1 LTS ฉันยังไม่ได้รีบูทเซิร์ฟเวอร์ฉันหวังว่าจะหลีกเลี่ยงปัญหานี้

uname -a
การประกอบ Linux 3.13.0-35-generic # 62-Ubuntu SMP ศุกร์ 15 สิงหาคม 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux

ฉันตรวจสอบสิ่งต่อไปนี้:

อุณหภูมิที่วัดได้ด้วย i7z: (ไม่สามารถแสดง 4 ซ็อกเก็ตได้

ความเร็วซีพียูจาก cpuinfo 1994.00Mhz
ความถี่ที่แท้จริง (ไม่มีบัญชี Turbo) 1994 MHz

ซ็อกเก็ต [0] - [ฟิสิคัลคอร์ = 10, โลจิคัลคอร์ = 20, คอร์ออนไลน์สูงสุดเคย = 10]
  ตัวคูณซีพียู 15x || ความถี่สัญญาณนาฬิกาบัส (BCLK) 132.93 MHz
  TURBO เปิดใช้งานบน 10 คอร์ Hyper Threading ON
  ความถี่สูงสุดโดยไม่พิจารณา Turbo 2126.93 MHz (132.93 x [16])
  ตัวคูณ TURBO สูงสุด (ถ้าเปิดใช้งาน) ที่มี 1/2/3/4/5/6 แกนคือ 0x / 0x / 0x / 0x / 0x / 0x / 0x
  ความถี่ปัจจุบันจริง 1994.02 MHz (สูงสุดด้านล่าง)
        Core [core-id]: Freq ที่แท้จริง (หลาย) C0% หยุด (C1)% C3% C6% Temp
        Core 1 [1]: 1994.01 (15.00x) 100 0 0 0 75
        Core 2 [5]: 1994.00 (15.00x) 100 0 0 0 77
        Core 3 [9]: 1994.02 (15.00x) 100 0 0 0 76
        Core 4 [13]: 1994.00 (15.00x) 100 0 0 0 77
        Core 5 [17]: 1994.00 (15.00x) 100 0 0 0 77
        Core 6 [21]: 1994.00 (15.00x) 97.7 0.404 0 1.86 77
        Core 7 [25]: 1994.00 (15.00x) 94.5 0 1 5.27 77
        Core 8 [29]: 1994.00 (15.00x) 100 0 0 0 76
        Core 9 [33]: 1994.00 (15.00x) 99.8 0 1 1 75
        Core 10 [37]: 1994.00 (15.00x) 100 0 0 0 73
  ความถี่สูงสุดโดยไม่พิจารณา Turbo 2126.93 MHz (132.93 x [16])
  ตัวคูณ TURBO สูงสุด (ถ้าเปิดใช้งาน) ที่มี 1/2/3/4/5/6 แกนคือ 0x / 0x / 0x / 0x / 0x / 0x / 0x
  ความถี่ปัจจุบันจริง 1994.02 MHz (สูงสุดด้านล่าง)
        Core [core-id]: Freq ที่แท้จริง (หลาย) C0% หยุด (C1)% C3% C6% Temp
        Core 1 [1]: 1994.02 (15.00x) 100 0 0 0 74
        Core 2 [5]: 1994.00 (15.00x) 100 0 0 0 76
        Core 3 [9]: 1994.02 (15.00x) 100 0 0 0 76
        Core 4 [13]: 1994.00 (15.00x) 100 0 0 0 77
        Core 5 [17]: 1994.00 (15.00x) 100 0 0 0 76
        Core 6 [21]: 1994.00 (15.00x) 97 0 1 2.43 77
        Core 7 [25]: 1994.00 (15.00x) 92.9 0 1 6.81 77
C0 = โปรเซสเซอร์ทำงานโดยไม่หยุดพัก 00x) 100 0 0 0 75
C1 = ตัวประมวลผลทำงานโดยหยุดการทำงาน (สถานะ> C0 เป็นตัวประหยัดพลังงาน) 1 1 75
C3 = แกนที่ทำงานด้วย PLL ถูกปิดและคอร์แคชปิด 0 0 73
C6 = ทุกอย่างใน C3 + สถานะแกนบันทึกไว้ในแคชระดับสุดท้าย
  ค่าข้างต้นในตารางเป็นเปอร์เซ็นต์ในช่วง 1 วินาทีที่ผ่านมา
[core-id] หมายถึงหมายเลข core-id ใน / proc / cpuinfo
ข้อความ 'ค่าขยะ' ถูกพิมพ์เมื่ออ่านค่าขยะ
  Ctrl + C เพื่อออก

ว่าง: 16 คอร์ล่าสุดไม่มีการใช้งาน 100%:

mpstat -p ALL 1:
ค่าเฉลี่ย: CPU% usr% ดี% sys% iowait% irq% soft% ขโมย% แขก% gnice% ว่าง
ค่าเฉลี่ย: ทั้งหมด 70.69 0.00 0.70 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.007
ค่าเฉลี่ย: 1 94.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
ค่าเฉลี่ย: 2 100.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 14.58
ค่าเฉลี่ย: 4 100.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
.................................................. ........
ค่าเฉลี่ย: 64 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 100.00
ค่าเฉลี่ย: 66 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 100.00
ค่าเฉลี่ย: 68 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 100.00
ค่าเฉลี่ย: 70 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 100.00
ค่าเฉลี่ย: 72 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 100.00
ค่าเฉลี่ย: 74 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 100.00
ค่าเฉลี่ย: 76 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 100.00
ค่าเฉลี่ย: 78 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 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
KiB Mem: 52837942 + ยอดรวม 52553190 + ใช้แล้วฟรี 2847524 บัฟเฟอร์ 535660
การแลกเปลี่ยน KiB: รวม 78124032, ใช้ 2105608, ฟรี 76018416 40637328 + หน่วยความจำแคช

บางครั้ง% ที่ไม่ได้ใช้งานจะไม่ 100 อีกต่อไป แต่จะน้อยกว่านี้ตามที่คุณเห็นที่นี่ แต่ส่วนใหญ่จะอยู่ที่ไม่ได้ใช้งาน 100%

ค่าเฉลี่ย: CPU% usr% ดี% sys% iowait% irq% soft% ขโมย% แขก% gnice% ว่าง
ค่าเฉลี่ย: ทั้งหมด 70.69 0.00 0.70 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 99.87
ค่าเฉลี่ย: 65 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 97.37
ค่าเฉลี่ย: 67 0.00 0.00 0.13 0.13 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 100.00
ค่าเฉลี่ย: 69 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 100.00
ค่าเฉลี่ย: 71 0.00 0.00 0.12 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 100.00
ค่าเฉลี่ย: 73 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 100.00
ค่าเฉลี่ย: 75 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 100.00
ค่าเฉลี่ย: 77 0.00 0.00 0.13 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 100.00
ค่าเฉลี่ย: 79 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

ฉันยังใช้คำสั่งนี้เพื่อให้แน่ใจว่าพวกเขาออนไลน์ทั้งหมด:

สำหรับ COUNT ใน `seq 01 79`; ทำ echo 1> / sys / อุปกรณ์ / ระบบ / cpu / cpu $ {COUNT} / ออนไลน์; 

ด้วยโปรแกรม HTop ฉันสามารถเห็นแถบการใช้งาน cpu ต่อเธรดและดูการเติม 64 บาร์และ 16 อันว่างเปล่า (16 อันสุดท้าย)

เมื่อฉันพยายามเริ่มต้นกระบวนการที่แกนกลาง> 63 ก็ล้มเหลวเช่นกัน:

root @ server: ~ # tasket -c 63 ครั้ง
การใช้งาน: เวลา [-apvV] [-f รูปแบบ] [ไฟล์ -o] [- ผนวก] [- verbose]
       [- แบบพกพา] [- รูปแบบ = รูปแบบ] [- ไฟล์ = ไฟล์] [- รุ่น]
       [- เงียบ] [- ช่วย] คำสั่ง [หาเรื่อง ... ]
root @ server: ~ # tasket -c 64 ครั้ง
tasket: ล้มเหลวในการตั้งค่าความสัมพันธ์ของ pid 0: อาร์กิวเมนต์ไม่ถูกต้อง
root @ server: ~ # tasket -c 65 เวลา
tasket: ล้มเหลวในการตั้งค่าความสัมพันธ์ของ pid 0: อาร์กิวเมนต์ไม่ถูกต้อง

หัวข้อที่เกี่ยวข้อง: /ubuntu/536541/ubuntu-uses-only-2-out-of-4-processor-cores

แก้ไข: ปรากฎว่าแกนถูกปิดทันที แต่ไม่เริ่มต้นอย่างถูกต้อง ดูเหมือนว่ามีกระบวนการที่ทำงานบนคอร์ที่ใช้งานไม่ได้เหล่านี้ แต่มันเป็นไปไม่ได้ที่จะเริ่มกระบวนการใหม่ใด ๆ ตามบันทึกของ dmesg แกนจะถูกปิดใช้งานและเปิดใช้งานอย่างรวดเร็วหลังจากกัน ฉันต้องบอกว่ามันเป็นความตั้งใจที่จะปิดคอร์เหล่านี้ดังนั้นเราจึงปิดการใช้งานฟีเจอร์นี้ ตัวอย่างบันทึก DMESG:

[จันทร์ 12 มกราคม, 12:42:40 2015] kvm: ปิดใช้งานการจำลองเสมือนบน CPU79
[จันทร์ 12 มกราคม 12:42:40 2015] smpboot: CPU 79 ออฟไลน์อยู่
....
[จันทร์ 12 มกราคม, 12:43:12 น.] smpboot: การบูตโหนด 0 โปรเซสเซอร์ 79 APIC 0xf3
[จันทร์ 12 มกราคม, 12:43:12 2015] kvm: เปิดใช้งานการจำลองเสมือนบน CPU79

เราเปิด / ปิดการใช้งานแกนผ่าน:

สำหรับ COUNT ใน `seq 64 79`; ทำ echo 1> / sys / อุปกรณ์ / ระบบ / cpu / cpu $ {COUNT} / ออนไลน์เสร็จแล้ว

เราไม่เคยเชื่อมโยงคำสั่งนี้กับคอร์ที่ใช้งานไม่ได้ 16 คอร์เนื่องจากปกติคำสั่งดังกล่าวจะทำงานได้อย่างถูกต้อง (เราพยายามปิดการใช้ powermanager แต่สิ่งนี้ไม่ได้ช่วย)


1
ทำไมคุณหรือ บริษัท ของคุณไม่ได้ไปกับเซิร์ฟเวอร์ Ubuntu แทนที่จะเป็น Ubuntu สำหรับพีซีทั่วไป
XperianX

1
เป็นไปไม่ได้ที่ 16 คอร์ของคุณจะใช้ความจุสูงสุดจริง ๆ แล้วปล่อย 16 คอร์เสมือนโดยไม่มีระยะขอบที่ใช้งานได้
anonymous2

1
8 คอร์ (16 เวอร์ชวล) ทั้งหมดบนซีพียูตัวเดียวหรือกระจายออกไปทั่วทั้ง 4 ซ็อกเก็ตหรือไม่? หากพวกเขาอยู่บน CPU จริงหนึ่งอาจเป็นไปได้ว่าแกนเหล่านั้นล้มเหลว?
Jibberish51

2
ฉันสงสัยว่ามีบางอย่างในระบบที่มีรหัสซึ่งแสดงถึง CPU affinity mask ที่มีเพียง 64 บิตทำให้ไม่สามารถอนุญาตให้กระบวนการใช้ 16 คอร์ล่าสุดได้
kasperd

ระบุว่า 80-16 = 64 ดูเหมือนว่าฉันจะมีข้อ จำกัด บางอย่างในจำนวนคอร์สูงสุดที่จะใช้ อาจเป็นไปได้ว่าซอฟต์แวร์ใดก็ตามที่คุณใช้งานถูกตั้งค่าไว้ที่ 64 คอร์หรืออาจไม่สามารถสร้างเธรดได้มากกว่า 64 เธรด
Clonkex

คำตอบ:


1

ไม่ใช่ทุกโปรแกรมที่สามารถใช้หลายเธรด php เป็นหนึ่งตัวอย่าง หากกระบวนการ php หนึ่งต้องการ CPU จำนวนมากจะมีเพียง 1 CPU เท่านั้นที่จะทำงานได้สูงสุด และคนอื่น ๆ จะว่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.