IPvs-sysctl

/proc/sys/net/ipv4/vs/* 變數:

am_droprate - 整數

預設值 10

它設定始終模式丟包率,用於丟包率防禦的模式3中。

amemthresh - 整數

預設值 1024

它設定可用記憶體閾值(以頁為單位),用於自動防禦模式中。當沒有足夠的可用記憶體時,將啟用相應的策略,並將變數自動設定為2,否則停用該策略,並將變數設定為1。

backup_only - 布林值
  • 0 - 停用(預設)

  • 非0 - 啟用

如果設定,則在伺服器處於備份模式時停用 director 功能,以避免 DR/TUN 方法的包迴圈。

conn_reuse_mode - 整數

1 - 預設

控制 ipvs 如何處理檢測到埠重用的連線。它是一個位圖,值為:

0:停用對埠重用的任何特殊處理。新連線將傳遞到為先前連線提供服務的同一真實伺服器。

位 1:在安全時啟用新連線的重新排程。也就是說,只要 expire_nodest_conn 和對於 TCP 套接字,當連線處於 TIME_WAIT 狀態時(僅在使用 NAT 模式時才有可能)。

位 2:是位 1 加上,對於 TCP 連線,當連線處於 FIN_WAIT 狀態時,因為這是負載均衡器在直接路由模式下看到的最後一個狀態。此位有助於向非常繁忙的叢集新增新的真實伺服器。

conntrack - 布林值
  • 0 - 停用(預設)

  • 非0 - 啟用

如果設定,則為 IPVS 處理的連線維護連線跟蹤條目。

如果要由有狀態防火牆規則處理 IPVS 處理的連線,則應啟用此設定。也就是說,使用連線跟蹤的 iptables 規則。否則,停用此設定是一種效能最佳化。

無論此設定如何,由 IPVS FTP 應用程式模組處理的連線都將具有連線跟蹤條目。

僅當 IPVS 使用 CONFIG_IP_VS_NFCT 編譯時可用。

cache_bypass - 布林值
  • 0 - 停用(預設)

  • 非0 - 啟用

如果啟用,則當沒有可用的快取伺服器且目標地址不是本地地址時(iph->daddr 是 RTN_UNICAST),將資料包直接轉發到原始目標。它主要用於透明 Web 快取叢集。

debug_level - 整數
  • 0 - 傳輸錯誤訊息(預設)

  • 1 - 非致命錯誤訊息

  • 2 - 配置

  • 3 - 目標垃圾

  • 4 - 丟棄條目

  • 5 - 服務查詢

  • 6 - 排程

  • 7 - 連線新建/過期、查詢和同步

  • 8 - 狀態轉換

  • 9 - 繫結目標、模板檢查和應用程式

  • 10 - IPVS 資料包傳輸

  • 11 - IPVS 資料包處理 (ip_vs_in/ip_vs_out)

  • 12 或更多 - 資料包遍歷

僅當 IPVS 使用 CONFIG_IP_VS_DEBUG 編譯時可用。

更高的除錯級別包括較低除錯級別的訊息,因此設定除錯級別 2 包括級別 0、1 和 2 的訊息。因此,級別越高,日誌記錄越詳細。

drop_entry - 整數
  • 0 - 停用(預設)

drop_entry 防禦是為了隨機丟棄連線雜湊表中的條目,只是為了為新連線收集一些記憶體。在當前程式碼中,可以每秒啟用一次 drop_entry 過程,然後它隨機掃描整個雜湊表的 1/32,並丟棄處於 SYN-RECV/SYNACK 狀態的條目,這應該對 syn-flooding 攻擊有效。

drop_entry 的有效值是從 0 到 3,其中 0 表示此策略始終停用,1 和 2 表示自動模式(當沒有足夠的可用記憶體時,啟用該策略,並將變數自動設定為 2,否則停用該策略,並將變數設定為 1),3 表示該策略始終啟用。

drop_packet - 整數
  • 0 - 停用(預設)

drop_packet 防禦旨在轉發到真實伺服器之前丟棄 1/rate 個數據包。如果速率為 1,則丟棄所有傳入資料包。

值的定義與 drop_entry 的定義相同。在自動模式下,速率由以下公式確定:當可用記憶體小於可用記憶體閾值時,速率 = amemthresh / (amemthresh - available_memory)。當設定模式 3 時,始終模式丟包率由 /proc/sys/net/ipv4/vs/am_droprate 控制。

est_cpulist - CPULIST

允許用於估計 kthread 的 CPU

語法:標準 cpulist 格式 空列表 - 停止 kthread 任務和估計 預設 - 系統用於 kthread 的 housekeeping CPU

示例:“all”:所有可能的 CPU “0-N”:所有可能的 CPU,N 表示最後一個 CPU 編號 “0,1-N:1/2”:第一個和所有具有奇數的 CPU ““:空列表

est_nice - 整數

預設值 0 有效範圍:-20(更有利).. 19(更不利)

用於估計 kthread 的 Nice 值(排程優先順序)

expire_nodest_conn - 布林值
  • 0 - 停用(預設)

  • 非0 - 啟用

預設值為 0,當其目標伺服器不可用時,負載均衡器將靜默丟棄資料包。當用戶空間監控程式刪除目標伺服器(由於伺服器過載或錯誤檢測)並在以後添加回伺服器時,這可能很有用,並且與伺服器的連線可以繼續。

如果啟用此功能,則當資料包到達且其目標伺服器不可用時,負載均衡器將立即使連線過期,然後客戶端程式將收到連線已關閉的通知。這相當於某些人要求的在其目標不可用時重新整理連線的功能。

expire_quiescent_template - 布林值
  • 0 - 停用(預設)

  • 非0 - 啟用

當設定為非零值時,當目標伺服器處於靜默狀態時,負載均衡器將使永續性模板過期。當用戶透過將其權重設定為 0 來使目標伺服器靜默,並且希望將後續持久連線傳送到不同的目標伺服器時,這可能很有用。預設情況下,允許新的持久連線連線到靜默目標伺服器。

如果啟用此功能,則當要使用永續性模板來排程新連線並且目標伺服器處於靜默狀態時,負載均衡器將使永續性模板過期。

ignore_tunneled - 布林值
  • 0 - 停用(預設)

  • 非0 - 啟用

如果設定,ipvs 將在所有無法識別協議的資料包上設定 ipvs_property。這可以防止我們路由隧道協議(如 ipip),這有助於防止重新排程已隧道傳輸到 ipvs 主機的資料包(即,防止 ipvs 在 ipvs 也充當真實伺服器時進行路由迴圈)。

nat_icmp_send - 布林值
  • 0 - 停用(預設)

  • 非0 - 啟用

當負載均衡器從真實伺服器接收資料包,但連線條目不存在時,它控制為 VS/NAT 傳送 icmp 錯誤訊息 (ICMP_DEST_UNREACH)。

pmtu_disc - 布林值
  • 0 - 停用

  • 非 0 - 啟用(預設)

預設情況下,拒絕所有超過 PMTU 的 DF 資料包,並顯示 FRAG_NEEDED,而與轉發方法無關。對於 TUN 方法,可以停用該標誌以對這些資料包進行分片。

secure_tcp - 整數
  • 0 - 停用(預設)

secure_tcp 防禦是使用更復雜的 TCP 狀態轉換表。對於 VS/NAT,它還會延遲進入 TCP ESTABLISHED 狀態,直到完成三次握手。

值的定義與 drop_entry 和 drop_packet 的定義相同。

sync_threshold - 2 個整數的向量:sync_threshold、sync_period

預設值 3 50

它設定同步閾值,這是連線在同步之前需要接收的最小傳入資料包數。每次其傳入資料包數對 sync_period 取模等於閾值時,都會同步連線。閾值的範圍為 0 到 sync_period。

當 sync_period 和 sync_refresh_period 為 0 時,僅為狀態更改傳送同步,或者僅當 pkts 匹配 sync_threshold 時傳送一次同步

sync_refresh_period - 無符號整數

預設值 0

以秒為單位,報告的連線計時器中的差異會觸發新的同步訊息。如果自上次同步以來連線狀態未更改,則可以使用它來避免指定週期(或連線超時的一半,如果較短)的同步訊息。

這對於具有高流量的正常連線很有用,可以降低同步速率。此外,以 sync_refresh_period/8 的週期重試 sync_retries 次。

sync_retries - 整數

預設值 0

定義以 sync_refresh_period/8 為週期的同步重試次數。有助於防止同步訊息丟失。sync_retries 的範圍為 0 到 3。

sync_qlen_max - 無符號長整型

尚未傳送的排隊同步訊息的硬性限制。它預設為記憶體頁面的 1/32,但實際上表示訊息數。當傳送速率低於排隊速率時,它可以保護我們免於分配大量記憶體。

sync_sock_size - 整數

預設值 0

SNDBUF(主伺服器)或 RCVBUF(從伺服器)套接字限制的配置。預設值為 0(保留系統預設值)。

sync_ports - 整數

預設值 1

主伺服器和備份伺服器可用於同步流量的執行緒數。每個執行緒將使用單個 UDP 埠,執行緒 0 將使用預設埠 8848,而最後一個執行緒將使用埠 8848+sync_ports-1。

snat_reroute - 布林值
  • 0 - 停用

  • 非 0 - 啟用(預設)

如果啟用,則重新計算來自真實伺服器的 SNAT 資料包的路由,以便像資料包來自 director 一樣進行路由。否則,它們將像由 director 轉發一樣進行路由。

如果策略路由生效,則來自 director 的資料包的路由可能與由 director 轉發的資料包的路由不同。

如果策略路由未生效,則重新計算的路由將始終與原始路由相同,因此停用 snat_reroute 並避免重新計算是一種最佳化。

sync_persist_mode - 整數

預設值 0

在使用永續性時控制連線的同步

0:所有型別的連線都已同步

1:嘗試根據連線型別減少同步流量。對於持久服務,避免同步正常連線,僅對永續性模板進行同步。在這種情況下,對於 TCP 和 SCTP,可能需要在備份伺服器上啟用 sloppy_tcp 和 sloppy_sctp 標誌。對於非持久服務,不應用此類最佳化,假定為模式 0。

sync_version - 整數

預設值 1

傳送同步訊息時使用的同步協議的版本。

0 選擇原始同步協議(版本 0)。應在向僅瞭解原始同步協議的舊系統傳送同步訊息時使用此協議。

1 選擇當前同步協議(版本 1)。應儘可能使用此協議。

具有此 sync_version 條目的核心能夠接收同步協議版本 1 和版本 2 的訊息。

run_estimation - 布林值

0 - 停用 非 0 - 啟用(預設)

如果停用,則將暫停估計,並停止 kthread 任務。

您始終可以透過將此值設定為 1 來重新啟用估計。但請注意,重新啟用後的第一次估計並不準確。