專用千兆位上的 DRBD 重新同步速度極慢
我已經在 2 個節點上設置了 DRBD,並且昨天開始使用它。大約一個小時後,它重新同步了 50% 的分區。又過了 12 個小時,它達到了 79%,而且移動非常緩慢。
這是 cat /proc/drbd 顯示的內容:
1: cs:SyncTarget ro:Primary/Secondary ds:Inconsistent/UpToDate C r----- ns:464931976 nr:191087032 dw:656013660 dr:214780588 al:100703 bm:21100 lo:7 pe:0 ua:0 ap:7 ep:1 wo:f oos:92241852 [==============>.....] sync'ed: 79.2% (90076/431396)M finish: 76:13:38 speed: 332 (8,680) want: 19,480 K/sec
我查看了網路流量,我在 1G 介面上使用了 1M 和 20M 之間的流量。在這一切進行的同時嘗試執行 iperf,我得到了 930M 的讀數。嘗試將同步器速率調整為 10M、50M、500M 無濟於事。調整數據包大小也沒有運氣。
現在,從狀態中可以看出,需要注意的是我的主節點不一致。因此,我假設作業系統在進行重新同步時本質上是在使用輔助節點。但鑑於吞吐量如此之低,我不明白為什麼同步不快。
關於下一步我可以嘗試什麼的任何想法?預計完成 76 小時並不是我所期待的 :( 尤其是不知道原因,所以出現了各種中斷,我不知道如何使陣列快速達到一致性。
謝謝!
**編輯:**我在網路部分嘗試了以下設置無濟於事:
sndbuf-size 512k; max-buffers 20480; max-epoch-size 16384; unplug-watermark 20480;
**編輯 2:**在我停止調整所有配置後,沒有明顯的原因,速度躍升至 10~30M。同步率高達 98.8%,然後回落至約 300K。兩台伺服器上的日誌中都沒有消息。巧合的是,我看到 MySQL 數據庫上的 INSERT 活動在這個分區之外執行。有任何想法嗎?
**編輯 3:**版本:8.4.2 (api:1/proto:86-101)
在@Nils 發表評論後,我開始研究磁碟的使用率。並註意到在系統重新配置為 DRBD 之前,我獲得的讀取次數比以前多得多。進一步的研究顯示磁碟使用率接近 100%,並且當時正在執行的批處理程序變慢。修復 MySQL 配置以增加緩衝池大小以消除大部分讀取看起來像修復了問題。
所以問題是驅動器太忙了,以至於它們無法處理 DRBD 想要扔給它們的大量重新同步工作。