
我有一台具有以下特徵的伺服器:https://www.soyoustart.com/it/offerte/1801sysgame05.xml
處理器英特爾 i7-4790K
記憶體 32GB DDR3 1333MHz
流量無限 含DDoS防護
磁碟 1x240GB SSD
頻寬 250 Mbps
我已經安裝了Proxmox Linux 發行版,該發行版運行一個基於Ubuntu 伺服器的容器,用於處理用C++ 編寫的即時TCP 遊戲伺服器,目前該伺服器的線上用戶數量約為1000 個,而且我們很快就會將當前人口數量增加一倍。
問題是,一旦線上用戶數量達到約 850 個,我們就會遇到一個奇怪的效能「瓶頸」。一旦恢復到 ~800 或更低,瓶頸就會消失。實際上發生的情況是,玩家必須等待大約 30 秒才能連接到伺服器,而已經連接的玩家沒有遇到任何問題(沒有延遲、沒有凍結等)。這似乎是網路擁塞、上限或類似的情況,拒絕進一步連接到同一進程,並對我們的 CPU 造成壓力(如您從下面的螢幕截圖中看到的)
在這裡,我從我們的 NetData 中收集了一些圖表,我注意到了相同的「模式」。這軟中斷 RCU我覺得特別有意義,但我不知道它到底是什麼意思。
軟中斷 RCU:
CPU使用率/壓力:
中央處理器頻率
中央處理器溫度
我不認為問題出在我們的CPU本身,但正如上面所說,似乎與進程限製或類似的問題有關。
你知道發生了什麼事嗎?
更新:
另一張相關圖
答案1
我透過增加 ulimit 解決了這個問題
在我的具體情況下,問題是 ulimit 必須增加(硬的和軟的)並在主機和 lxc 容器的 /etc/ 資料夾中永久配置。
另外,我將容器更改為特權容器,但我不確定是否真的需要它,對於特權容器也可能有一種方法來修復它,但我無法實現這一點。