目錄
- 參數作用
- 查看與修改
- 調優建議
- 相關警告
net.core.flow_limit_table_len
是 Linux 內核中的一個網絡參數,用于控制**流限制表(Flow Limit Table)**的大小。這個表主要用于限制網絡流量中單個"流"(通常指來自同一源IP、端口到目標IP、端口的數據包序列)的資源占用,防止個別連接耗盡系統資源。
參數作用
- 流限制表:是一個哈希表,用于跟蹤和限制每個網絡流的資源使用(如發送隊列長度、緩沖區分配等)。
- table_len:指定哈希表的大小(條目數量)。較大的值允許系統跟蹤更多獨立的流,適合處理大量并發連接的場景(如服務器或路由器)。
查看與修改
- 查看當前值
sysctl net.core.flow_limit_table_len
# 輸出示例: net.core.flow_limit_table_len = 4096
- 臨時修改(運行時生效)
sysctl -w net.core.flow_limit_table_len=8192
- 永久修改(重啟后保留)
echo "net.core.flow_limit_table_len = 8192" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p # 立即生效
調優建議
- 默認值:通常為 4096,適合大多數場景。
- 高并發環境(如 Web 服務器、負載均衡器):可增大至 8192 或更高,減少哈希沖突,提高流識別準確性。
- 內存考慮:每個表項占用少量內存(約 64-128 字節),增大表長會增加內存開銷。
- 結合其他參數:調整時需配合
net.core.flow_limit_max_tries
(流限制嘗試次數)和net.core.flow_limit_interval
(流限制檢查間隔)使用。
相關警告
- 過大的表長可能導致系統調用延遲增加,需根據實際負載測試確定最優值。
- 如果遇到大量短連接(如 HTTP/1.1 場景),可能需要更高的表長值。
如果需要針對特定場景(如 DDoS 防護、高并發 Web 服務)進一步優化,可以提供具體網絡環境信息,我會給出更精準的建議。