
Ich habe einen Server mit folgenden Eigenschaften:https://www.soyoustart.com/it/offerte/1801sysgame05.xml
Prozessor Intel i7-4790K
Arbeitsspeicher: 32 GB DDR3 1333 MHz
Unbegrenzter Datenverkehr Anti-DDoS inklusive
Festplatten: 1 x 240 GB SSD
Bandbreite 250 Mbit/s
Ich habe die Proxmox-Linux-Distribution installiert, auf der ein auf einem Ubuntu-Server basierender Container läuft, um einen in C++ geschriebenen Echtzeit-TCP-Spieleserver zu verwalten, der derzeit etwa 1.000 Online-Benutzer erreicht, und wir werden die aktuelle Population bald verdoppeln.
Das Problem ist, dass wir auf einen seltsamen Leistungsengpass stoßen, sobald die Anzahl der Online-Benutzer ~850 erreicht. Sobald sie auf ~800 oder weniger zurückgeht, verschwindet der Engpass. Was praktisch passiert, ist, dass Spieler etwa 30 Sekunden warten müssen, um mit dem Server verbunden zu werden, während die bereits verbundenen Spieler keine Probleme haben (keine Latenz, keine Einfrierungen usw.). Es scheint eine Netzwerküberlastung oder ein Cap-Limit oder etwas Ähnliches zu sein, das weitere Verbindungen zum gleichen Prozess verweigert und unsere CPU unter Druck setzt (wie Sie auf den Screenshots unten sehen können).
Hier habe ich einige Grafiken aus unseren NetData zusammengestellt, bei denen mir das gleiche "Muster" aufgefallen ist. DieSoftirqs RCUist besonders bedeutsam, denke ich, aber ich weiß nicht, was es genau bedeutet.
Softirqs-RCU:
CPU-Auslastung/-Belastung:
CPU-Frequenz
CPU-Temperatur
Ich glaube nicht, dass der Fehler bei unserer CPU selbst liegt, aber wie oben gesagt scheint es etwas mit einer Prozessbeschränkung oder etwas Ähnlichem zu sein.
Haben Sie eine Ahnung, was los ist?
AKTUALISIEREN:
ein weiteres zugehöriges Diagramm
Antwort1
Ich habe dieses Problem gelöst, indem ich das ulimit erhöht habe
In meinem speziellen Fall bestand das Problem darin, dass ulimit (sowohl hart als auch weich) erhöht und im Ordner /etc/ sowohl für den Host als auch für den lxc-Container dauerhaft konfiguriert werden musste.
Außerdem habe ich meinen Container in einen privilegierten geändert, bin mir aber nicht sicher, ob das wirklich nötig ist. Es könnte eine Möglichkeit geben, das Problem auch für einen privilegierten Container zu beheben, aber das habe ich nicht erreicht.