
次のような特徴を持つサーバーを所有しています。https://www.soyoustart.com/it/offerte/1801sysgame05.xml
プロセッサ Intel i7-4790K
メモリ 32GB DDR3 1333MHz
トラフィック無制限、DDoS対策付き
ディスク 1x240GB SSD
帯域幅 250 Mbps
私は、C++ で書かれたリアルタイム TCP ゲーム サーバーを処理するために、Ubuntu サーバーに基づくコンテナーを実行する Proxmox Linux ディストリビューションをインストールしました。現時点では、オンライン ユーザーは約 1000 人に達しており、まもなく現在のユーザー数を 2 倍に増やす予定です。
問題は、オンライン ユーザーの数が約 850 に達するとすぐに、奇妙なパフォーマンスの「ボトルネック」が発生することです。約 800 以下に戻ると、ボトルネックは解消されます。実際には、プレーヤーはサーバーに接続するのを約 30 秒待たなければなりませんが、すでに接続しているプレーヤーは問題 (遅延やフリーズなど) を経験していません。ネットワークの輻輳、または上限制限、または同様のものにより、同じプロセスへの接続が拒否され、CPU に負荷がかかるようです (下のスクリーンショットからわかるように)。
ここで私は、同じ「パターン」に気づいたNetDataからいくつかのグラフを集めました。ソフトIRQ RCU特に意味があると思いますが、それが正確に何を意味するのかはわかりません。
ソフトIRQ RCU:
CPU 使用率/負荷:
CPU周波数
CPU温度
問題は CPU 自体にあるとは思いませんが、前述のように、プロセスの制限などに関連する問題のようです。
何が起こっているのか分かりますか?
アップデート:
もう一つの関連グラフ
答え1
私はこの問題をulimitを増やすことで解決しました
私の特定のケースでは、問題は、ulimit を (ハードとソフトの両方で) 増やし、ホストと lxc コンテナーの両方の /etc/ フォルダー内で永続的に構成する必要があることでした。
また、コンテナを特権コンテナに変更しましたが、それが本当に必要かどうかはわかりません。特権コンテナでも修正する方法があるかもしれませんが、それを実現できませんでした。