DRBD - Protocolo A mais lento que B e C

1

Eu tenho uma pergunta simples, não tão simples: por que diabos é o protocolo A mais lento que B e C na minha configuração? Quero dizer, eu tenho estado preso nisso por mais de uma semana agora, tentei "todas" as configurações, jogadas com max-buffers max-epoch-size, sndbuf-size, tamanho rcvbuf, etc etc.

Eu entendo que o Protocolo A não precisa esperar que os dados cheguem ao outro nó, o Protocolo B considera a gravação feita assim que ela é alcançada, e o C somente quando está escrito no segundo nó. Então, basicamente, é suposto ir assim em termos de velocidade: A > B > C, certo?

Também entendo a questão do buffer / cache, que em algum momento, o protocolo B, e principalmente A, perde o desempenho devido ao uso total do cache, para que a "pilha" fique congestionada. Portanto, uma grande quantidade de gravações (maiores, principalmente) deve torná-lo mais lento. Eu corri uma quantia séria de testes, benchmarked isto com hdparm, dd, bonnie ++, iozone (um grupo inteiro de folhas, dias de trabalho) e ainda não faz sentido; até mesmo os arquivos / gravações pequenos ficam mais lentos com o Protocolo A e B.

Alguém pode me ajudar a fazer isso como deveria?

Obrigado a todos.

Ambos os servidores com o Debian 9 instalado recentemente. DRBD trabalhando com LVM. global_common.conf como segue (reproduzido com alguns dos itens comentados)

  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";

    }
}
    
por Jhonatan Cruz 11.06.2018 / 22:02

0 respostas