我有一个简单的问题,但又不那么简单:为什么在我的设置中协议 A 比协议 B 和 C 慢?我的意思是,我已经被这个问题困扰了一个多星期,尝试了“所有”配置,尝试了 max-buffers max-epoch-size、sndbuf-size、rcvbuf-size 等等。
我理解协议 A 根本不需要等待数据到达另一个节点,协议 B 认为写入在到达该节点后立即完成,而协议 C 仅当写入第二个节点时才完成。所以,基本上,从速度上看应该是这样的:A > B > C,对吧?
此外,我了解缓冲区/缓存问题,即在某个时候,协议 B(主要是协议 A)会由于完全使用缓存而失去性能,因此“堆栈”会变得拥挤。因此,大量的写入(主要是较大的写入)应该会使它变慢。我进行了大量测试,使用 hdparm、dd、bonnie++、iozone(一大堆工作表,几天的工作)对其进行了基准测试,但它仍然没有意义;即使是小文件/写入也会因协议 A 和 B 而变慢。
有人可以帮助我让它按预期进行吗?
谢谢你们。
两台服务器均全新安装了 Debian 9。DRBD 与 LVM 协同工作。global_common.conf 如下(使用了一些注释项)
global {
usage-count no;
# minor-count dialog-refresh disable-ip-verification
# cmd-timeout-short 5; cmd-timeout-medium 121; cmd-timeout-long 600;
}
common {
syncer {
#rate 10M;
# "hot area" aumenta o tiempo de resync pmas diminui os updates nos metadados
# area pequena synca mais rapido mas a replicação fica mais lenta
#al-extents 65533; #maximo
}
handlers {
#Cria snapshot automaticamente assim que uma sincronização é iniciada
#before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh";
#remove o snapshot em caso de sucesso na resync
#after-resync-target "/usr/lib/drbd/unsnapshot-resync-target-lvm.sh";
# a reversão é um snapshot comum: lvconvert -M
}
startup {
#wfc-timeout 0;
#degr-wfc-timeout 15;
}
options {
}
disk {
#on-io-error detach;
}
net {
protocol C;
#sndbuf-size 8000k;
#rcvbuf-size 8000k;
#timeout 60;
#connect-int 10;
#ping-int 10;
#ping-timeout 5;
#max-buffers 20000;
#max-epoch-size 20000;
#cram-hmac-alg "sha1";
#shared-secret "appname-drbd";
}
}