У меня простой, но не такой простой вопрос: какого черта протокол 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, как следует (играл с некоторыми из прокомментированных itens)
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";
}
}