โหลดของระบบสูงไปได้เท่าใด


12

ทุกครั้งที่ฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ของฉันผ่าน SSH มันจะกะพริบข้อมูลเซิร์ฟเวอร์เล็กน้อย ที่อยู่ IP ของ IE, การใช้งาน Swap, การใช้งานหน่วยความจำ ฯลฯ อย่างหนึ่งที่ฉันกะพริบคือโหลดระบบ ส่วนใหญ่แล้วจำนวนการโหลดระบบคือ <0.10 แต่บางครั้งฉันก็เคยเห็นมันมากถึง 0.89 (โดยปกติจะเป็นรอบการบู๊ต)

สิ่งนี้ทำให้เกิดคำถามว่าระบบสามารถโหลดได้สูงเท่าใด ยกตัวอย่างเช่นเป็นไปได้ไหมที่จะสูงถึง 2.00 ถึง 100.00?


ส่วนที่เป็นเศษส่วนแสดงถึงการใช้งาน CPU ส่วนทศนิยมของจำนวนกระบวนการที่รอ สิ่งที่ต้องการ100.89จะมีโอกาสมากกว่า100.00
Lekensteyn

เป็นไปได้ที่ซ้ำกันของค่าเฉลี่ยภาระที่ยอมรับได้
Caleb

@Caleb ฉันไม่เห็นด้วยซ้ำ เป็นไปได้ว่าผู้ปฏิบัติการต้องการที่จะถามสิ่งที่คล้ายกันเช่น "ภาระของระบบจะสูงได้อย่างไร (และยังทำงานได้อย่างยอมรับได้)" แต่ตามคำพูดมันไม่ใช่คำถามเดียวกัน
ไซคลอป

@ ไซคลอปส์: ถ้า OP ไม่ได้ตั้งใจถามระดับที่ยอมรับได้บนเซิร์ฟเวอร์และถามคำถามเชิงทฤษฎีอย่างหมดจดเกี่ยวกับวิธีการทำงานของระบบ * nix ว่าจะไม่ปิดหัวข้อที่นี่
Caleb

คำตอบ:


17

สิ่งนี้ทำให้เกิดคำถามว่าระบบสามารถโหลดได้สูงเท่าใด ยกตัวอย่างเช่นเป็นไปได้ไหมที่จะสูงถึง 2.00 ถึง 100.00?

อย่างแน่นอน มองไปที่uptimeหน้าคน:

   System load averages is the average number of processes that are either
   in a runnable or uninterruptable state.  A process in a runnable  state
   is  either  using the CPU or waiting to use the CPU. A process in unin‐
   terruptable state is waiting for some I/O access, eg waiting for  disk.
   The  averages  are  taken over the three time intervals.  Load averages
   are not normalized for the number of CPUs in a system, so a load  aver‐
   age  of 1 means a single CPU system is loaded all the time while on a 4
   CPU system it means it was idle 75% of the time.

ดังนั้นหากคุณมีกระบวนการจำนวนมากที่รอการเรียกใช้ (หรือกระบวนการจำนวนมากปิดกั้นการรอ I / O) คุณจะมีค่าเฉลี่ยการโหลดสูง บทความนี้พูดถึงรายละเอียดเพิ่มเติมและมีลิงก์ที่มีประโยชน์ไปยังแหล่งข้อมูลอื่น

บนระบบที่ไม่โหลดโหลดโดยเฉลี่ยจะอยู่ในช่วง 0 <= load_average <= nโดยที่nคือจำนวนแกนประมวลผลในระบบของคุณ


1
ใช่กำลังรอ I / O เป็นวิธีที่ง่ายในการสร้างจำนวนมากโหลดเมาท์ nfs แชร์เปิดเซิร์ฟเวอร์ nfs เริ่มต้น 10.000 กระบวนการที่พยายามสัมผัสบางอย่างใน nfs share: boom โหลด 10.000
Jens Timmerman

5

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

ระดับที่ยอมรับได้ขึ้นอยู่กับเครื่องจำนวนคอร์ชนิดของตัวจัดตารางงานเคอร์เนลที่ใช้งานอยู่และงานที่คุณคาดว่าจะทำ ฉันมีเครื่องจักรบางอย่างที่ค่อนข้างมีความสุขในช่วง ~ 10 แต่ชะงักลงถ้าพวกเขากด ~ 40-50 บางคนอาจจะล้าหลังอย่างเห็นได้ชัดที่ 2 และจะใช้ไม่ได้ที่ 10

ไม่ใช่เรื่องผิดปกติสำหรับการโหลดที่จะเกิดการบูทสูงเนื่องจากมีหลายสิ่งที่เกิดขึ้นพร้อมกันและเครื่องม้วนขึ้น ฉันจะพิจารณาว่า ~ 1 เป็นภาระปกติในการเข้าสู่การบูทบูตสำหรับเดสก์ท็อป Linux จากนั้นนั่งลงที่ ~ 0.1 ในขณะที่ไม่ทำอะไรเลย


3
การแก้ไขเล็กน้อย: ค่าเฉลี่ยการโหลดไม่ได้เป็นการวัดเวลา จำนวนกระบวนการเฉลี่ยที่รออยู่ ไม่มีวิธีที่จะบอกความแตกต่างระหว่าง 1) กระบวนการหนึ่งที่ใช้ซีพียูและอีกกระบวนการหนึ่งที่ไม่เคยได้รับมาก่อนและ 2) กระบวนการสองอย่างนั้นซื้อขายกันอย่างต่อเนื่อง พวกเขาทั้งสองโหลด 1.0
พลูโต

1
ฉันได้เห็นแล้ว 1,500+ ขึ้นไปบนกล่อง linux fubared ที่จริงจัง จากนั้นก็เสียชีวิต
Tom O'Connor

3

บน Linux ค่าเฉลี่ยของโหลดระบบประกอบด้วยกระบวนการในหนึ่งในสามสถานะที่แตกต่างกัน โดยทั่วไปอาจกล่าวได้ว่าค่าเฉลี่ยการโหลดคือจำนวนกระบวนการที่รอเวลา CPU หรือเวลา CPU นาน ค่าสามค่าในภาพรวมค่าเฉลี่ยของการโหลดคือค่าเฉลี่ยของการโหลดในนาทีที่ผ่านมา 5 นาทีสุดท้ายและ 15 นาทีที่ผ่านมา

กระบวนการที่แตกต่างกันสามสถานะที่นับรวมกับค่าเฉลี่ยการโหลดคือ: (1) กระบวนการที่ทำงานบน CPU, (2) กระบวนการที่รอเวลา CPU และกระบวนการ (3) อยู่ในโหมดสลีปที่ไม่สามารถขัดจังหวะได้ หมวดหมู่สุดท้ายในขณะที่ไม่ได้สร้างภาระของ CPU สามารถเพิ่มค่าเฉลี่ยการโหลดระบบได้อย่างมาก

ตัวอย่างเช่นกระบวนการโหลที่รอการอ่านจากดิสก์ที่ไม่ว่างมากหรือไม่สามารถใช้งานได้จะสร้างค่าเฉลี่ยโหลด 12 จากกระบวนการในโหมดสลีปที่ไม่สามารถขัดจังหวะได้ แต่ CPU ของคุณอาจไม่ได้ทำงานอย่างสมบูรณ์ในระหว่างนี้

ดังนั้นใช่ค่าเฉลี่ยการโหลดสามารถขึ้นได้ถึงสองหลัก ความเลวนั้นขึ้นอยู่กับฮาร์ดแวร์ของคุณ หากคุณมี 16 คอร์การมี 16 โพรเซสที่รอเวลา CPU ไม่เลว บนเครื่องแกนเดียวการมี 3 กระบวนการรอเวลา CPU อาจไม่ดีนัก


ฉันคิดว่ามันไม่ดีเฉพาะในกรณีที่เป็นกระบวนการเชื่อมโยงกับ CPU ซึ่งหายาก กระบวนการขนาดใหญ่ส่วนใหญ่เป็น IO-bound หรือ / และ RAM-bound
peterh - Reinstate Monica

3

สร้างกระบวนการ C อย่างง่ายที่รันลูปไม่ จำกัด ใน 10,000 เธรด ให้ความสำคัญต่ำมาก (+20) โหลดของคุณจะเป็น 10,000 ในขณะที่ระบบของคุณจะยังคงใช้งานได้ มันจะใช้ RAM เพียงไม่กี่ตัว (มากที่สุดในบางเมกะไบต์)

แม้ว่าจะเป็นการกำหนดค่าที่ค่อนข้างแปลก แต่ในระบบจริงคุณจะไม่พบสิ่งนี้

โหลดระบบหมายถึงจำนวนเฉลี่ยของกระบวนการที่รอช่วงเวลา cpu ไม่น้อยและไม่มาก นี่คือคำตอบเกี่ยวกับอีกวิธีการที่เหมาะสมในการตีความโหลดระบบ

ในประสบการณ์ประจำวันการโหลดเกิน 30+ หมายถึงปัญหาส่วนใหญ่


2

ไม่กี่วินาทีหลังจากฆ่ากระบวนการที่กินซีพียู 450Mhz เก่า:

ป้อนคำอธิบายรูปภาพที่นี่


1

เมื่อคุณเริ่มกระบวนการที่บล็อกทันทีการโหลดจะสูงเท่ากับจำนวนกระบวนการที่คุณจัดการเพื่อเริ่ม สมมติว่าคุณมี RAM เพียงพอที่ระบบไม่ได้แลกเปลี่ยนระบบจะตอบสนองต่อการโหลดเนื่องจากกระบวนการบล็อกไม่เป็นอันตรายจริงๆ


1

ฉันเห็นเซิร์ฟเวอร์ทำงานที่โหลดมากกว่า 200 ครั้ง

ฉันจะทดสอบความเครียดและดู

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