Score:4

เซิร์ฟเวอร์นี้โอเวอร์โหลดหรือไม่ (ภาพหน้าจอ htop)

ธง bd

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

jp flag
ใช่ มันโอเวอร์โหลด ค่าเฉลี่ยโหลดสูงเกินไปสำหรับ CPU สองตัว
Jack0220 avatar
bd flag
ขอบคุณ. คุณควรตอบคำถามนั้นเพื่อรับเครดิต @อเล็กซ์
Criggie avatar
in flag
@ Jack0220 นี่เป็นเครื่องจริงหรือเครื่องเสมือน ฉันถามเพราะเครื่องจริง 2 คอร์น่าจะเริ่มเก่าไปหน่อยแล้ว (ดังนั้นการเปลี่ยนจึงสำคัญกว่า) ในขณะที่เวอร์ชวลมักจะถูกอัพไซส์โดยไม่มีอะไรมากไปกว่าการรีบูต (และอาจสูงกว่านั้นทุกเดือนหากคุณอยู่ใน AWS หรือที่คล้ายกัน)
Craig Estey avatar
kr flag
คุณมีเธรด/กระบวนการจำนวนมาก _ถ้า_ คุณสามารถปรับโครงสร้างแอป/เซิร์ฟเวอร์ใหม่ได้ และคำขอแต่ละรายการเป็นแบบ "เบา" คุณอาจใช้ "เธรดพูล" ได้ นั่นคือ ค่าใช้จ่ายในการสร้าง/เข้าร่วมเธรดสูงกว่าการประมวลผล เซิร์ฟเวอร์กำหนดพูลของเธรด N (เช่น โดยที่ N คือจำนวนคอร์ * 2) เซิร์ฟเวอร์เริ่มเธรด สามารถจัดคิวการร้องขอไปยังคิวทั่วไป แต่ละเธรดจะรับคำขอจากคิว ประมวลผล แล้ววนซ้ำ/พักในคิว รอการทำงานเพิ่มเติม มิฉะนั้นเพียงแค่ "ใช้เงิน" ;-)
James avatar
in flag
"*เซิร์ฟเวอร์* นี้โอเวอร์โหลด" หรือไม่ ไม่สามารถบอกได้จากข้อมูลที่ให้มา ซอฟต์แวร์ใดกำลังทำงานและขึ้นอยู่กับ CPU เป็นอย่างมาก ฯลฯ เป็นต้น สิ่งต่าง ๆ ทำงานช้าหรือคุณโอเคที่จุดสูงสุดหรือไม่? ทรัพยากรที่จำเป็นก็เพียงพอแล้ว แม้ว่าทรัพยากรที่มีอยู่จะถึงขีดสุดก็ตาม อย่างหลังนั้น "โดยทั่วไป" ไม่ดีอย่างที่คุณควรจะมีค่าใช้จ่ายเมื่อบางสิ่งต้องการมากกว่าที่วางแผนไว้หรือมักจะต้องการ ฯลฯ "นี่ *CPU* โอเวอร์โหลด" ไม่ใช่ มันคือการใช้งานสูงสุด
Score:12
ธง jp

เซิร์ฟเวอร์ของคุณมีเพียงสอง CPU และ LA (โหลดเฉลี่ย) ในช่วง 10-15 ซึ่งหมายความว่ากระบวนการที่กำลังทำงานอยู่นั้นต้องการเวลาของ CPU มากกว่าที่ CPU จะสามารถรองรับได้ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ LA ได้ใน บทความนี้ โดย เบรนแดน เกร็กก์.

โปรดทราบว่า LA เป็นเพียงเมตริกเดียว และแม้ว่าระบบของคุณจะไม่ได้รับเวลา CPU ทั้งหมดที่ต้องการ แต่ก็ยังเป็นไปได้ที่ระบบจะได้รับเวลา CPU เพียงพอที่จะตอบสนองคำขอของผู้ใช้ปลายทางได้ดีพอสมควร คุณต้องตรวจสอบเมตริกอื่นๆ ของคุณก่อนที่จะตัดสินใจใดๆ เกี่ยวกับเซิร์ฟเวอร์นี้ แต่ถ้าผู้ใช้ของคุณบ่นอยู่แล้ว วิธีแก้ปัญหาก็ชัดเจน - รับอินสแตนซ์ที่มี CPU มากขึ้น

Jack0220 avatar
bd flag
ฉันขอขอบคุณที่. ระบบยังคงจุดสูงสุด โดยรวมก็รับภาระได้แต่ไม่ทันท่วงที เซิร์ฟเวอร์มักไม่ตอบสนองหรือตอบสนองช้าเกินไป คุณยืนยันความสงสัยของฉัน
marcelm avatar
ng flag
_"เซิร์ฟเวอร์ของคุณมี CPU เพียงสองตัวและ LA (โหลดเฉลี่ย) ในช่วง 10-15"_ - แต่ถึงกระนั้น ภาพหน้าจอ 2 ใน 3 แสดงให้เห็นว่าการใช้งาน CPU อยู่ที่ประมาณ 60% ฉันจะไม่ด่วนตัดสินว่าเซิร์ฟเวอร์มี CPU-bound อาจเป็น I/O-bound ฉันยังเห็นความกดดันของหน่วยความจำค่อนข้างสูง ซึ่งอาจช่วยไม่ได้กับสถานการณ์ I/O และไม่ว่าจะด้วยวิธีใด โหลดสูงไม่ได้หมายความว่าระบบจะโอเวอร์โหลดต่อครั้ง เซิร์ฟเวอร์ที่ไม่ไวต่อเวลาแฝงที่ใช้งานได้ดี (เช่น เมล) สามารถใช้งานได้ดีเมื่อโหลดสูง ขึ้นอยู่กับสถานการณ์
Guntram Blohm avatar
in flag
แม้ว่าจะไม่มีกระบวนการเดียวในโหมด D และ (ส่วนหนึ่งของ) redis ดูเหมือนว่าจะใช้ CPU 100% (ซึ่งหมายความว่าเป็นเธรดเดี่ยวหรือสูงกว่า 100%) ซึ่งอาจหมายความว่าทุกอย่างกำลังรอ redis (ค่อนข้างทำงานหนักเกินไป) และการเพิ่มแกนจะไม่ช่วยอะไรมากที่นี่ ฉันจะตรวจสอบการกำหนดค่า redis และไฟล์บันทึกก่อนที่จะโยนคอร์เพิ่มเติมไปที่ปัญหา
jp flag
@marcelm ฉันยอมรับว่าอาจมีการโหลด I/O ที่สำคัญเนื่องจากการรัน `redis-rdb-bgsave` แต่เป็นการยากที่จะบอกได้เนื่องจากไม่มี iowait stat และไม่มีกระบวนการที่มีสถานะ 'D' โปรดทราบว่าในแต่ละภาพหน้าจอ LA 1 นาทีต่ำกว่า 15 นาที LA ดังนั้นมันจึงยาวเกินไปสำหรับสแน็ปช็อต 2 GBนอกจากนี้ เวลาส่วนใหญ่ของ CPU ยังใช้ในกระบวนการ `chirpstack-network-server`
jp flag
เนื่องจากระบบกำลังทำงานบน AWS ฉันขอแนะนำให้ย้าย 'redis' ไปยังอินสแตนซ์ ElastiCache Redis ที่มีการจัดการ แต่การดำเนินการนี้จะทำให้เกิดความล่าช้าของเครือข่ายเพิ่มเติมที่อาจส่งผลต่อประสิทธิภาพของระบบ
Jack0220 avatar
bd flag
ขอบคุณทุกท่านสำหรับข้อมูลเพิ่มเติม นี่คือเซิร์ฟเวอร์เครือข่าย LoRa และไวต่อเวลาแฝง มีดาวน์ลิงก์เพื่อตอบสนองต่ออัปลิงก์ที่ต้องส่งอย่างรวดเร็ว และสิ่งที่ฉันเห็นคือมักจะมาช้าเกินไปและบางครั้งก็ไม่มาเลย อัปลิงค์นั้นเป็นระยะ ๆ ดังนั้นมันจึงเป็นไปได้ที่หลาย ๆ อันจะเกิดขึ้นพร้อม ๆ กันซึ่งจะทำให้ระบบสูงสุด @marcelm guntram blohm
Score:10
ธง mx

กำหนด âโอเวอร์โหลดâ

หากคุณแค่โหลดตามค่าเฉลี่ย แสดงว่าใช่ มันโอเวอร์โหลด (ประมาณ 5-7.5 เท่า) อย่างไรก็ตาม ค่าเฉลี่ยของโหลดเป็นเพียงเมตริกที่เหมาะสมที่จะใช้หากปริมาณงานของคุณขนานกันอย่างมากและผูกกับ CPU เป็นหลัก ค่าเฉลี่ยการโหลดจะติดตามจำนวนเฉลี่ยของกระบวนการที่เป็นหลัก สามารถ วิ่งผ่าน 1/5/15 นาทีที่ผ่านมา

อย่างไรก็ตามจากภาพหน้าจอสองภาพของคุณ การใช้งาน CPU ทันทีของคุณไม่ได้เต็ม 100% ของความสามารถที่ระบบสามารถทำได้ตลอดเวลา เมื่อรวมกับค่าเฉลี่ยการโหลดที่สูง หมายความว่ากระบวนการจำนวนมากจำเป็นต้องเรียกใช้ แต่จะดำเนินการอย่างรวดเร็วและเสร็จสิ้น นั่นเป็นเรื่องปกติสำหรับระบบที่ให้บริการเครือข่าย เนื่องจากบริการเครือข่ายส่วนใหญ่เป็นเช่นนั้น ไม่ CPU-bound แต่ IO-bound แทน ซึ่งหมายความว่าค่าเฉลี่ยของโหลดไม่ใช่ตัวชี้วัดที่ดีสำหรับการพิจารณาการใช้ทรัพยากรในระบบ

สิ่งที่คุณควรจะดูที่นี่ (และจริงๆ แล้ว สิ่งที่คุณควรจะดูในตอนแรกสำหรับ ใดๆ บริการเครือข่าย) เป็นเมตริกประสิทธิภาพของบริการเองในกรณีส่วนใหญ่ สิ่งที่เกี่ยวข้องคือการวัดเวลาแฝงสำหรับประเภทคำขอต่างๆ ที่บริการให้บริการ (และโดยเฉพาะอย่างยิ่ง คุณมักจะต้องการดูแลเกี่ยวกับเวลาแฝงโดยเฉลี่ยและหนึ่งในเปอร์เซ็นไทล์ที่ 95 หรือ 99 หรือเวลาแฝงสูงสุด) ท็อป ไม่สามารถติดตามสิ่งนี้ให้คุณได้ คุณต้องดูเครื่องมืออื่นเช่น ข้อมูลสุทธิ (ข้อจำกัดความรับผิดชอบ ฉันทำงานให้กับ Netdata) หรือ โพร.

ดีกว่านั้น: ผู้ใช้รายงานปัญหาหรือไม่ หากคำตอบคือไม่ แสดงว่าไม่มีปัญหาใด ๆ ที่รายงานมา ก็ไม่เกี่ยวข้องกับเซิร์ฟเวอร์ว่า “โอเวอร์โหลด” หรือไม่ เนื่องจากทุกอย่างทำงานได้ดีพอ

jp flag
กระบวนการที่เชื่อมโยงกับเครือข่ายไม่ส่งผลกระทบต่อ `LA` ดังนั้นคุณจะไม่ได้รับ `LA` > `จำนวนของ CPUs` บนระบบที่เชื่อมโยงกับเครือข่าย IO เมื่อ `LA` > `n CPUs` หมายความว่ามีกระบวนการจำนวนมากที่รอ CPU แต่ไม่สามารถรันได้ ไม่ใช่ว่า "พวกมันทำงานอย่างรวดเร็วแล้วก็เสร็จ" (ในกรณีนี้ คุณจะได้ LA ในจำนวน CPU เท่าๆ กันโดยประมาณ) . LA สูงหมายความว่าระบบ **เป็น** CPU-bound หรือดิสก์ IO-bound "CPU ชั่วขณะไม่คงที่ 100%" หมายความว่าระบบผ่านจุดสูงสุดของการโหลด คุณสามารถดูได้จาก 1m LA น้อยกว่า 5 และ 10 นาที LA
Jack0220 avatar
bd flag
ใช่ มีปัญหากับบริการปลายทาง เซิร์ฟเวอร์ไม่ตอบสนองเร็วพอเสมอไป มีอัปลิงค์เข้ามาและบางส่วนต้องการดาวน์ลิงค์ในการตอบสนอง เวลาแฝงของดาวน์ลิงก์บางครั้งเกิน 5 วินาที ซึ่งช้าเกินไป (นี่คือระบบ LoRa) ฉันจะดูที่ netdata มันดูดี ปัญหาคือผู้ที่รับผิดชอบเซิร์ฟเวอร์นี้ทำให้ทุกเซิร์ฟเวอร์อยู่ในอินสแตนซ์เดียวกันแทนที่จะกระจายออกไป ในตอนแรกอาจใช้งานได้ แต่เมื่อระบบเติบโตขึ้น สิ่งนี้จะไม่ยั่งยืน ขอบคุณมากสำหรับทุกคนสำหรับความคิดที่ดี!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา