Linux

Ubuntu 上的低延遲 TCP 設置

  • June 22, 2018

在我的實驗室裡,有一個在 Ubuntu 上執行的測量伺服器。還有一個C程序,通過TCP連接接收數據,應該盡快回复。

配置

  • CPU:2 個處理器 x 4 核 - Intel(R) Xeon(R) CPU E5345 @ 2.33GHz
  • 記憶體:12 GB
  • 網卡:Intel Corporation 80003ES2LAN 千兆乙太網控制器/82546EB 千兆乙太網控制器
  • 網路交換機:Cisco Catalyst 2960
  • 數據資訊:數據塊來約。每 10 毫秒。數據塊大小約為。1000 字節。

接收數據包時的網路延遲非常關鍵(幾十微秒很重要)。我將程序優化到最大,但我沒有調整 Ubuntu 的經驗。

在 Ubuntu 中可以配置什麼來減少處理/發送數據包的本地延遲?

老實說,我不會為此使用 Ubuntu ……但是有一些選項可以應用於任何 Linux 變體。

您需要創建網路堆棧緩衝區:

net.core.rmem_default = 10000000
net.core.wmem_default = 10000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

如果應用程序正在寫入磁碟,則可能需要更改調度程序/電梯(例如deadline電梯)。

在伺服器級別,您可以修改 CPU 調控器以及電源和 CPU 頻率管理(P-States、C-States)。

在作業系統級別,您可以更改應用程序的實時優先級 ( chrt)、優化以減少中斷、將其固定到一個 CPU 或一組 CPU ( taskset),並停止任何不必要的服務或守護程序。

您還可以在以下位置查看一些建議:如何解決 2 個 linux 主機之間的延遲問題

如果不了解所涉及的硬體或網路設備,很難獲得更具體的資訊。

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