Tcp

使用 proxmox 容器上的 NetData 監控 softirqs RCU 上的峰值

  • October 27, 2021

我有一個具有以下特點的伺服器:https ://www.soyoustart.com/it/offerte/1801sysgame05.xml

處理器 Intel i7-4790K

記憶體 32GB DDR3 1333MHz

包括流量無限的Anti-DDoS

磁碟 1x240GB SSD

頻寬 250 Mbps

我已經安裝了 Proxmox Linux 發行版,它執行基於 Ubuntu 伺服器的容器來處理用 C++ 編寫的實時 TCP 遊戲伺服器,目前該伺服器擁有大約 1000 名線上使用者,我們將很快將目前人口翻一番.

問題是,一旦線上使用者數量達到約 850,我們就會遇到一個奇怪的性能“瓶頸”。一旦它回到約 800 或更少,瓶頸就會消失。實際上發生的情況是玩家必須等待大約 30 秒才能連接到伺服器,而已經連接的玩家沒有遇到任何問題(沒有延遲、沒有凍結等)。似乎網路擁塞、上限或類似情況會拒絕與同一程序的進一步連接並對我們的 CPU 造成壓力(從下面的螢幕截圖中可以看到)

在這裡,我從我們的 NetData 中收集了一些圖表,其中我注意到了相同的“模式”。我猜softirqs RCU特別有意義,但我不知道它到底是什麼意思。

RCU 軟中斷: 圖片

cpu使用/壓力: 圖片

處理器頻率 圖片

處理器溫度

圖片

我不認為問題出在我們的 CPU 本身,但如上所述,似乎與程序限製或類似問題有關。

你知道發生了什麼嗎?

更新:

另一個相關圖表

圖片

我通過增加 ulimit 解決了這個問題

在我的具體情況下,問題是必須增加 ulimit(硬和軟)並在主機和 lxc 容器的 /etc/ 文件夾中永久配置。

此外,我將我的容器更改為特權容器,但我不確定它是否真的需要,可能有一種方法可以為特權容器修復它,但我無法實現。

引用自:https://serverfault.com/questions/1078398