Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
See
http://www.drbd.org/users-guide/re-drbdconf.html
http://fghaas.wordpress.com/2007/06/22/performance-tuning-drbd-setups/
and comments below:
Good luck
Cristian Mammoli - Apra Sistemi wrote:
> I have 2 drbd resources shared between 2 IBM x3500 M2 servers.
> Storage is composed by 6x146GB 15k RPM SAS driver connected to a
> Serveraid MR10i (with BBU and writeback enabled)
> Each resource has a dedicated dual gigabit bonding (balance-rr).
>
> Testing the network speed with iperf I have ~ 1.9 Gbit/s on both links
> Testing the drbd resources in disconnected mode I have:
>
> [root at srvha01 ~]# dd if=/dev/zero of=/datastore1/test bs=1024k
> count=1000 oflag=direct
> 1000+0 records in
> 1000+0 records out
> 1048576000 bytes (1.0 GB) copied, 3.6059 seconds, 291 MB/s
>
> Doing the same with the drbd device connected I hardly reach 100 MB/s
>
> So where's the bottleneck?
>
> OS is CentOS 5.3 x86_64 and drbd version is 8.2
>
> drbd.conf follows:
> global {
> usage-count no;
> }
>
> common {
> syncer {
> rate 700000K;
Try setting ^^ to something a little lower, for starters, just to see,
try 150M and work your way up. This can also be adjusted "on-the-fly"
with: drbdsetup /dev/drbd1 syncer -r 150M
> al-extents 257;
Try increasing ^^ to something higher, a prime number. 1801 is a good
starting point.
> verify-alg md5;
> }
>
> protocol C;
>
> handlers {
> pri-on-incon-degr "echo b > /proc/sysrq-trigger ; reboot -f";
> pri-lost-after-sb "echo b > /proc/sysrq-trigger ; reboot -f";
> pri-lost "echo b > /proc/sysrq-trigger ; reboot -f";
> local-io-error "echo b > /proc/sysrq-trigger ; reboot -f";
> outdate-peer "/usr/lib64/heartbeat/drbd-peer-outdater -t 5";
> }
>
> startup {
> # wfc-timeout 0;
> degr-wfc-timeout 120; # 2 minutes.
> # wait-after-sb;
> # become-primary-on both;
> }
>
> disk {
> on-io-error detach;
> fencing resource-only;
> no-disk-flushes;
> no-md-flushes;
> }
>
> net {
> # max-buffers 20480;
> # max-epoch-size 16384;
> # unplug-watermark 128;
Depending on your RAID controller, try going to both extremes: high/low.
> sndbuf-size 1M;
> after-sb-0pri discard-zero-changes;
> after-sb-1pri discard-secondary;
> after-sb-2pri call-pri-lost-after-sb;
> rr-conflict call-pri-lost;
{cut...}