专用千兆位上的 DRBD 重新同步速度极慢

Ser*_*gey 7 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
Run Code Online (Sandbox Code Playgroud)

我查看了网络流量,我在 1G 接口上使用了 1M 到 20M 之间的流量。在这一切进行时尝试运行 iperf,我得到了 930M 的读数。尝试将同步器速率调整为 10M、50M、500M 无济于事。没有运气也调整了数据包大小。

现在,正如您从状态中看到的那样,需要注意的是,我的主节点不一致。所以我假设在重新同步进行时,操作系统本质上是在使用辅助节点。但鉴于吞吐量如此之低,我不明白为什么同步速度不快。

关于我接下来可以尝试什么的任何想法?预计 76 小时的完成时间并不是我所期待的 :( 特别是不知道原因,所以出现各种中断,我不知道如何快速使数组保持一致性。

谢谢!

编辑:我在网络部分尝试了以下设置无济于事:

sndbuf-size       512k;
max-buffers      20480;
max-epoch-size   16384;
unplug-watermark 20480;
Run Code Online (Sandbox Code Playgroud)

编辑 2:在我停止调整所有配置后,无缘无故地,速度跃升至 10~30M。同步率高达 98.8%,然后回落到 ~300K。两台服务器上的日志中都没有消息。巧合的是,我看到运行在该分区之外的 MySQL 数据库上的 INSERT 活动激增。有任何想法吗?

编辑 3:版本:8.4.2 (api:1/proto:86-101)

Ser*_*gey 4

在 @Nils 评论之后,我开始研究磁盘的利用率。并注意到我获得的读取量比系统重新配置为 DRBD 之前要多得多。进一步的研究显示磁盘利用率接近 100%,并且当时运行的批处理进程速度减慢。修复 MySQL 配置以增加缓冲池大小以消除大部分读取似乎解决了问题。

因此,问题在于驱动器非常繁忙,以至于它们无法处理 DRBD 想要交给它们的大量重新同步工作。