เมื่อคุณพูดถึงประสิทธิภาพการทำงานบนเซิร์ฟเวอร์มีหลายวิธีในการดู มีเวลาตอบสนองที่ชัดเจน (คล้ายกับเวลาแฝงเครือข่าย) และปริมาณงาน (คล้ายกับแบนด์วิดท์เครือข่าย)
Windows Server บางรุ่นมาพร้อมกับการตั้งค่าพลังงานขั้นสูงที่เปิดใช้งานโดยค่าเริ่มต้น อย่างที่เจฟฟ์ชี้ให้เห็น Windows 2008 R2 เป็นหนึ่งในนั้น ซีพียูน้อยมากในวันนี้คือแกนเดียวดังนั้นคำอธิบายนี้ใช้กับเซิร์ฟเวอร์ Windows เกือบทุกตัวที่คุณจะพบยกเว้น VM แบบ single-core (เพิ่มเติมในภายหลัง)
เมื่อแผนการใช้พลังงานแบบสมดุลใช้งาน CPU จะพยายามเค้นปริมาณพลังงานที่ใช้ไป วิธีนี้ทำได้โดยการปิดการใช้งานซีพียูครึ่งแกนในกระบวนการที่เรียกว่า "ที่จอดรถ" ซีพียูเพียงครึ่งเดียวเท่านั้นที่จะสามารถใช้งานได้ในแต่ละครั้งดังนั้นจึงใช้พลังงานน้อยลงในช่วงที่มีการรับส่งข้อมูลน้อย นี่ไม่ใช่ปัญหาในตัวมันเอง
สิ่งที่เป็นปัญหาคือความจริงที่ว่าเมื่อ CPU ไม่ได้อยู่ในระบบคุณได้เพิ่มรอบของ CPU ที่มีอยู่เป็นสองเท่าในระบบและทำให้การโหลดบนระบบนั้นไม่สมดุลทำให้เกิดการใช้งานจาก 70% เป็น 35% ระบบจะมองที่และหลังจากที่มีการประมวลผลปริมาณการใช้งานแล้วมันก็คิดว่า "เฮ้ฉันควรหมุนกลับเล็กน้อยเพื่อประหยัดพลังงาน" และมันก็เป็นเช่นนั้น
นี่คือส่วนที่ไม่ดี เพื่อป้องกันการกระจายความร้อนและพลังงานที่ไม่สม่ำเสมอภายในแกนประมวลผล CPU มีแนวโน้มที่จะจอด CPU ที่ไม่ได้จอดไว้เมื่อเร็ว ๆ นี้ และเพื่อให้การทำงานอย่างถูกต้อง CPU ต้องล้างข้อมูลทุกอย่างจากการลงทะเบียน CPU (แคช L1, L2 & L3) ไปยังตำแหน่งอื่น (หน่วยความจำหลักหลัก)
ตัวอย่างสมมุติว่าคุณมีซีพียู 8 คอร์ที่มี C1-C8
- ใช้งานอยู่: C1, C3, C5, C7
- ที่พัก: C2, C4, C6, C8
เมื่อสิ่งนี้เกิดขึ้นพวกเขาทั้งหมดจะเริ่มทำงานในช่วงระยะเวลาหนึ่งแล้วระบบจะจอดดังนี้:
- ใช้งานอยู่: C2, C4, C6, C8
- จอดอยู่: C1, C3, C5, C7
แต่ในการทำเช่นนั้นมีค่าใช้จ่ายจำนวนมากที่เกี่ยวข้องกับการล้างข้อมูลทั้งหมดจากแคช L1-L3 เพื่อให้เกิดขึ้นเพื่อให้ข้อผิดพลาดแปลก ๆ ไม่ได้เกิดขึ้นกับโปรแกรมที่ถูกล้างออกจากไปป์ของ CPU
อาจมีชื่ออย่างเป็นทางการสำหรับมัน แต่ฉันชอบที่จะอธิบายว่าเ โดยทั่วไปโปรเซสเซอร์จะใช้เวลามากขึ้นในการทำงานที่ยุ่งไม่ว่าจะเป็นการย้ายข้อมูลไปรอบ ๆ ภายในหรือไม่
หากคุณมีแอปพลิเคชันประเภทใดที่ต้องการเวลาแฝงต่ำสำหรับการร้องขอคุณต้องปิดใช้งานการตั้งค่าพลังงานสมดุล หากคุณไม่แน่ใจว่านี่เป็นปัญหาหรือไม่ให้ทำดังนี้:
- เปิด "ตัวจัดการงาน"
- คลิกแท็บ "ประสิทธิภาพ"
- คลิก "ตรวจสอบทรัพยากรเปิด"
- เลือกแท็บ "CPU"
- ดูที่ด้านขวาของหน้าต่างที่ CPU ต่างๆ
หากคุณเห็นพวกเขาคนใดคนหนึ่งจอดอยู่คุณจะสังเกตเห็นว่าครึ่งหนึ่งของพวกเขาจอดอยู่ตามเวลาที่กำหนดพวกเขาทั้งหมดจะจุดไฟแล้วอีกครึ่งหนึ่งก็จะจอด มันสลับไปมา ดังนั้น CPU ของระบบจึงน่าทึ่ง
เครื่องเสมือน: ปัญหานี้ยิ่งแย่ลงเมื่อคุณเรียกใช้เครื่องเสมือนเนื่องจากมีไฮเปอร์ไวเซอร์เพิ่มเติม โดยทั่วไปการพูดเพื่อให้ VM สามารถทำงานได้ฮาร์ดแวร์จำเป็นต้องมีช่วงเวลาที่พร้อมใช้งานสำหรับแต่ละคอร์ในแต่ละช่วงเวลา
หากคุณมีฮาร์ดแวร์หลัก 16 ชิ้นคุณสามารถเรียกใช้ VM โดยใช้แกนประมวลผลรวมมากกว่า 16 แกน แต่สำหรับแต่ละช่วงเวลาเฉพาะซีพียูเสมือนสูงสุด 16 ตัวเท่านั้นที่จะมีสิทธิ์ได้รับชิ้นส่วนนั้นในเวลานั้นและไฮเปอร์ไวเซอร์ต้องพอดีกับแกนทั้งหมดสำหรับ VM ในเวลานั้น ไม่สามารถแพร่กระจายได้หลายครั้ง (ไทม์สเป็นชุดของรอบ X CPU โดยอาจเป็น 1,000 หรืออาจเป็น 100k รอบ)
เช่นฮาร์ดแวร์ 16 คอร์ที่มี 8 VM 6 มี 4 CPU เสมือน (4C) และ 2 มี 8 CPU เสมือน (8C)
ไทม์ลิซ 1: 4x4C ไทม์ลิซ 2: 2x8C ไทม์ลิซ 3: 2x4C + 1x8C ไทม์ลิซ 4: 1x8C + 2x4C
สิ่งที่ไฮเปอร์ไวเซอร์ไม่สามารถทำได้คือแบ่งครึ่งของการจัดสรรสำหรับ timeslice ให้กับ 4 CPU แรกของ 8 vCPU VM และจากนั้นใน timeslice ถัดไปให้เหลือ 4 vCPU ของ VM นั้น มันคือทั้งหมดหรือไม่มีอะไรภายในเวลาที่ดี
หากคุณใช้ Hyper-V ของ Microsoft การตั้งค่าการควบคุมพลังงานสามารถเปิดใช้งานในโฮสต์ระบบปฏิบัติการซึ่งหมายความว่ามันจะแพร่กระจายไปยังระบบไคลเอนต์ซึ่งส่งผลกระทบต่อพวกเขาเช่นกัน
เมื่อคุณเห็นวิธีการทำงานมันเป็นเรื่องง่ายที่จะดูว่าการใช้การตั้งค่าการควบคุมพลังงานแบบสมดุลทำให้เกิดปัญหาประสิทธิภาพและเซิร์ฟเวอร์ที่ซบเซา หนึ่งในปัญหาพื้นฐานคือการร้องขอขาเข้าต้องรอให้ CPU ที่จอดรถ / กระบวนการ unparking เสร็จสมบูรณ์ก่อนที่เซิร์ฟเวอร์จะสามารถตอบสนองต่อการร้องขอที่เข้ามาไม่ว่าจะเป็นแบบสอบถามฐานข้อมูลคำขอของเว็บเซิร์ฟเวอร์หรือสิ่งอื่นใด .
บางครั้งระบบจะจอดหรือไม่รับซีพียูในระหว่างการร้องขอ ในกรณีเหล่านี้คำขอจะเริ่มลงในไพพ์ไลน์ของ CPU ทิ้งลงไปจากนั้นแกน CPU อื่นจะรับกระบวนการจากที่นั่น หากเป็นคำขอที่หนักหน่วงอาจเกิดขึ้นหลายครั้งตลอดระยะเวลาของคำขอเปลี่ยนสิ่งที่ควรเป็นแบบสอบถามฐานข้อมูล 5 วินาทีเป็นคิวรีฐานข้อมูล 15 วินาที
สิ่งที่ยิ่งใหญ่ที่สุดที่คุณจะเห็นจากการใช้ Balanced Power คือระบบจะรู้สึกช้าลงเพื่อตอบสนองทุกคำขอที่คุณทำ