[DRBD-user] Re: drbd tranfer limitations (random and sequential acccess)

Lars Marowsky-Bree lmb at suse.de
Thu Sep 23 09:42:51 CEST 2004

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


On 2004-09-22T21:33:33,
   Cristiano da Costa <cristiano at develop.com.br> said:

> Hello Lars
> I?m using drbd in a Gigabit network (crossover cable) and when I
> synchronize data (sequential read/write) the tranfer hit to 30~40
> Mb/s, but when I make inserts into database (random read/write) that
> access drbd device via raw, the transfer rate hit only 5~6 Mb/s.
> Exists some way to improve this performance?

Hi Cristiano,

I'd like to ask you to ask your questions on the mailing list instead,
where more people can help you with it.

Now, if I got this right, you are still syncing while the random access
happens? Then the 5-6MB/s is to be expected, because the performance is
divided between syncing and satisfying the application requests.

If this is the performance you see during regular operation (ie, not
syncing), this clearly shows drbd is not the problem if it's giving you
better performance during sequential reads; the network overhead is the
same in either case, but random ops obviously cause more seeking on the
disk itself.

What performance do you get when you access the physical disks directly,
w/o drbd?

If you need more help, Linbit also offers consulting and training around
drbd as well as tuning...

> I increased the sndbuf-size to 256K, but no such effect.
> Maybe sync-nice can help us?
> There is my drbd.conf 
>  [root at SRVSYB02 nagios]# cat /etc/drbd.conf
> # Sybase Master
>        resource drbd0 {
>          protocol=C
>          fsckcmd=/bin/true
>          #skip-wait
>          load-only
>          inittimeout=30
>          disk {
>            do-panic
>            disk-size = 63461
>          }
>          net {
>            skip-sync
>            sync-min    = 599999
>            sync-max    = 600000 # maximal average syncer bandwidth
>            tl-size     = 5000   # transfer log size, ensures strict write ordering
>            timeout     = 60     # 0.1 seconds
>            connect-int = 10     # seconds
>            ping-int    = 10     # seconds
>            sndbuf-size = 262144 #
>          }
>          on SRVSYB01 {
>            device=/dev/nb0
>            disk=/dev/vg01/syb.master
>            address=172.22.2.4
>            port=7789
>          }
>          on SRVSYB02 {
>            device=/dev/nb0
>            disk=/dev/vg01/syb.master
>            address=172.22.2.5
>            port=7789
>          }
>        }
> # Sybase Sybsystemprocs
>        resource drbd1 {
>          protocol=C
>          fsckcmd=/bin/true
>          #skip-wait
>          load-only
>          inittimeout=30
>          disk {
>            do-panic
>            disk-size = 206269
>          }
>          net {
>            skip-sync
>            sync-min    = 599999
>            sync-max    = 600000 # maximal average syncer bandwidth
>            tl-size     = 5000   # transfer log size, ensures strict write ordering
>            timeout     = 60     # 0.1 seconds
>            connect-int = 10     # seconds
>            ping-int    = 10     # seconds
>            sndbuf-size = 262144 #
>          }
>          on SRVSYB01 {
>            device=/dev/nb1
>            disk=/dev/vg01/syb.sybprocs
>            address=172.22.2.4
>            port=7790
>          }
>          on SRVSYB02 {
>            device=/dev/nb1
>            disk=/dev/vg01/syb.sybprocs
>            address=172.22.2.5
>            port=7790
>          }
>        }
> # Sybase Banco01
>        resource drbd2 {
>          protocol=C
>          fsckcmd=/bin/true
>          #skip-wait
>          load-only
>          inittimeout=30
>          disk {
>            do-panic
>            disk-size = 33555244
>          }
>          net {
>            skip-sync
>            sync-min    = 599999
>            sync-max    = 600000 # maximal average syncer bandwidth
>            tl-size     = 5000   # transfer log size, ensures strict write ordering
>            timeout     = 60     # 0.1 seconds
>            connect-int = 10     # seconds
>            ping-int    = 10     # seconds
>            sndbuf-size = 262144 #
>          }
>          on SRVSYB01 {
>            device=/dev/nb2
>            disk=/dev/vg01/syb.bco01
>            address=172.22.2.4
>            port=7791
>          }
>          on SRVSYB02 {
>            device=/dev/nb2
>            disk=/dev/vg01/syb.bco01
>            address=172.22.2.5
>            port=7791
>          }
>        }
> # Sybase Log01
>        resource drbd3 {
>          protocol=C
>          fsckcmd=/bin/true
>          #skip-wait
>          load-only
>          inittimeout=30
>          disk {
>            do-panic
>            disk-size = 8389856
>          }
>          net {
>            skip-sync
>            sync-min    = 599999
>            sync-max    = 600000 # maximal average syncer bandwidth
>            tl-size     = 5000   # transfer log size, ensures strict write ordering
>            timeout     = 60     # 0.1 seconds
>            connect-int = 10     # seconds
>            ping-int    = 10     # seconds
>            sndbuf-size = 262144 #
>          }
>          on SRVSYB01 {
>            device=/dev/nb3
>            disk=/dev/vg01/syb.log01
>            address=172.22.2.4
>            port=7792
>          }
>          on SRVSYB02 {
>            device=/dev/nb3
>            disk=/dev/vg01/syb.log01
>            address=172.22.2.5
>            port=7792
>          }
>        }
> 
> 
> 
> 
> 
> 

Sincerely,
    Lars Marowsky-Brée <lmb at suse.de>

-- 
High Availability & Clustering
SUSE Labs, Research and Development
SUSE LINUX AG - A Novell company




More information about the drbd-user mailing list