ฉันมีเซิร์ฟเวอร์ที่มีคุณสมบัติดังต่อไปนี้: https://www.soyoustart.com/it/offerte/1801sysgame05.xml
โปรเซสเซอร์
อินเทล i7-4790K
แกะ
32GB DDR3 1333MHz
การจราจร
ไม่ จำกัด
ต่อต้าน DDoS
รวมอยู่ด้วย
ดิสก์
1x240GB SSD
แบนด์วิธ
250 Mbps
ฉันได้ติดตั้งการกระจาย Proxmox Linux ที่เรียกใช้คอนเทนเนอร์ตามเซิร์ฟเวอร์ Ubuntu เพื่อจัดการเซิร์ฟเวอร์เกม TCP แบบเรียลไทม์ที่เขียนด้วย C++ ซึ่งขณะนี้เข้าถึงผู้ใช้ออนไลน์ประมาณ 1,000 ราย และเรากำลังจะเพิ่มประชากรปัจจุบันเป็นสองเท่าในไม่ช้า .
ปัญหาคือเรากำลังพบกับ "คอขวด" ประสิทธิภาพที่แปลกประหลาด ทันทีที่จำนวนผู้ใช้ออนไลน์ถึง ~850 คน ทันทีที่กลับสู่ ~800 หรือน้อยกว่า คอขวดจะหายไป สิ่งที่เกิดขึ้นจริงคือผู้เล่นต้องรอประมาณ 30 วินาทีจึงจะเชื่อมต่อกับเซิร์ฟเวอร์ได้ ในขณะที่ผู้เล่นที่เชื่อมต่ออยู่แล้วจะไม่พบปัญหาใด ๆ (ไม่มีความหน่วง ไม่มีการค้าง เป็นต้น) ดูเหมือนว่าความแออัดของเครือข่ายหรือขีด จำกัด หรือสิ่งที่คล้ายกันที่ปฏิเสธการเชื่อมต่อกับกระบวนการเดียวกันและสร้างแรงกดดันต่อ CPU ของเรา (ดังที่คุณเห็นจากภาพหน้าจอด้านล่าง)
ที่นี่ ฉันได้รวบรวมกราฟบางส่วนจาก NetData ของเรา ซึ่งฉันสังเกตเห็น "รูปแบบ" เดียวกัน เดอะ softirqs RCU มีความหมายโดยเฉพาะอย่างยิ่ง ฉันเดา แต่ฉันไม่รู้ว่ามันหมายถึงอะไรกันแน่
Softirqs RCU:
การใช้ซีพียู / แรงดัน:
ความถี่ของซีพียู
อุณหภูมิของซีพียู
ฉันไม่เชื่อว่าความผิดพลาดเกิดจาก CPU ของเรา แต่อย่างที่กล่าวไว้ข้างต้น ดูเหมือนว่ามีบางอย่างที่เกี่ยวข้องกับข้อจำกัดของกระบวนการหรือสิ่งที่คล้ายกัน
คุณมีความคิดว่าเกิดอะไรขึ้น?
อัปเดต:
กราฟอื่นที่เกี่ยวข้อง