เมื่อเร็ว ๆ นี้ฉันค้นพบว่าเซิร์ฟเวอร์ของเราไม่ได้ใช้งาน 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 แต่สิ่งนี้ไม่ได้ช่วย)