<div dir="ltr">Hi,<br><br>With the async congestion mode, local disk I/O performance is too slow than sync replication mode.<br><br><br>1.version<div>  -  V9.0.1-1, GIT-hash: f57acfc22d29a95697e683fb6bbacd9a1ad4348e <br>  - VM: CentOS 7</div><div><br>2. conf</div><div>    protocol A;<br>    sndbuf-size 256K;<br>    on-congestion pull-ahead;<br>    congestion-fill 128K;<div><br></div><div>3. test</div>    [root@drbd9-01 drbd.d]# time cp /3GB.data  /mnt<div><br></div><div>4. result</div><div><br></div><div>1) Async(congestion mode)<br></div><div><br></div><div>(1) test1</div><div>real    2m50.570s<br>user    0m0.015s<br>sys    0m10.086s<div><br>(2) test2<br>real    2m24.809s<br>user    0m0.022s<br>sys    0m10.415s<br></div><div><br><br>2) Sync</div><div><br></div><div>(1) test1<br>real    0m46.559s<br>user    0m0.026s<br>sys    0m9.863s<br><br>(2) test2<br>real    0m58.031s<br>user    0m0.035s<br>sys    0m10.451s<br><br></div><div><br></div><div>I think there seems to be a problem in the following areas:<br> - Before congestion, completion for local disk I/O is treated at complete_master_bio function in drbd_sender thread.<br> - But even if the congestion occured, I think, it may be treated at the same position.<br> - In other words although local disk write it is already finished, the copy application is not receiving this completion signal and pending.</div><div> - This application waits for this completion until got_BarrierAck receives just requested-block from the peer. </div><div> - I think the local I/O completion should be done as soon as detecting congestion without waiting peer ack.</div><div><br></div><div>Is there any my misunderstand about drbd congestion mechanism?</div><div><br></div><div>Thanks.</div><div><div><div dir="ltr"><div dir="ltr"><p style="margin:0cm 0cm 0pt"><br></p></div></div></div>
</div></div></div></div>