Linux

Linux中FPS遊戲的更高流量優先級

  • September 3, 2010

目標:在 Linux 中執行 FPS 遊戲時,自動為其網路流量設置更高的優先級

我知道這些任務通常是通過 iptables(標記 IP 數據包符合特定標準)和 tc(優先考慮這些 IP 數據包)的組合來完成的。

問題:

  • 早期版本的 iptables 有一個 –pid-owner 選項,並在手冊頁中警告說這在 SMP 核心上已損壞。我最近版本的 iptables (1.4.7) 根本沒有在手冊頁中提到這個選項
  • 可能我不能使用單個目標埠來匹配流量,因為遊戲伺服器在不同的埠上執行

我的目標是一個包裝外殼腳本,它將:

  • 執行遊戲執行檔
  • 找到它的名字/pid
  • 基於此將增加此程序的網路流量的優先級
  • 當我退出遊戲時,會將所有內容恢復為預設值

這可能嗎?如果有任何可以幫助的話,我願意去處理自定義的 netfilter 模組。

我認為您不想在客戶端上弄亂 QoS;也許在你的路由器上,但​​在客戶端機器上,你只是引入了額外的數據包處理,這實際上會減慢速度。在路由器上,您將這些數據包優先於其他數據包(例如其他 http 連接或其他流量也通過路由器),所以這是一個勝利,但在客戶端上,您正在執行額外的過濾,而不是直接處理數據包到過程。

不過,您可能希望使用它nice來調整您的客戶端程序優先級,因此它可以比在同一台機器上執行的後台程序更快地訪問 CPU。

您可能希望調整網路接收/發送緩衝區大小以幫助最大程度地減少重傳。

如果您試圖控制電腦生成的實際頻寬,那麼您將需要更多關於FPS 流量到底是什麼以及它與您想要取消優先級的“其他”流量的接近程度的數據。如果您的 FPS 使用 UDP 並且您的其他流量都是 TCP,那麼您可能能夠擺脫像“優先考慮 UDP 而非 TCP”這樣簡單的事情。或者它可能更複雜。但是,一旦您知道如何表徵每組流量,那麼您將需要查看其他 答案以獲取詳細資訊

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