<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Lars Ellenberg wrote:
<blockquote cite="mid:20090202084923.GD9655@barkeeper1-xen.linbit"
 type="cite">
  <pre wrap="">On Fri, Jan 30, 2009 at 11:34:22AM -0800, John Du wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Hi,

I upgraded DRBD 8.2.0 to 8.3.0.  The upgrade went smoothly.  However,  
the upgraded version is very slow and the system load is near 100.   
Before the upgrade the load never exceeded 1. 

The DRBD worker thread runs into "un-interruptible state" very often for  
long time.

iostat shows:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          0.52    0.00    0.57    1.47    0.00   97.44

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sdb              31.02       548.36       668.39   27950963   34068995
drbd1            87.19        99.38       648.63    5065610   33061496

sdb is the underlying storage, a SAN partition of 1.2 TB.

Note that the read speed for sdb is 548 but for drbd1 99.  The write  
speeds for sdb and drbd1 are about the same.  Note the numbers of blocks  
read for sdb and drbd1 are very different. 
    </pre>
  </blockquote>
  <pre wrap=""><!---->
strange.

  </pre>
  <blockquote type="cite">
    <pre wrap="">top shows:

Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.2%sy,  0.0%ni, 98.9%id,  0.7%wa,  0.0%hi,  0.0%si,   
0.0%st
Mem:   8175372k total,  8120248k used,    55124k free,   849224k buffers
Swap:  2031608k total,        0k used,  2031608k free,  4206700k cached

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
5507 root        15   0     0        0       0      D    0  0.0    
0:29.36   drbd1_worker

Here is the background information

OS: Linux 2.6.18-8.1.15.el5 #1 SMP Thu Oct 4 04:06:39 EDT 2007 x86_64  
x86_64 x86_64 GNU/Linux

The primary DRBD is not connected to the secondary.

DRBD configuration:

global {
    usage-count      no;
 }

common {

 net {
    sndbuf-size     512k;
    timeout           60;
    connect-int       10;
    ping-int          10;
    max-buffers     2048;
    max-epoch-size  2048;
 }

resource drbd0 {
 protocol A;

 startup {
   wfc-timeout  30;

   degr-wfc-timeout 120;    # 2 minutes.
 }

on host1 {
   device    /dev/drbd1;
   disk      /dev/sdb1;
   address   10.100.2.232:7789;
   meta-disk  internal;
 }

 on host2 {
   device    /dev/drbd1;
   disk      /dev/sdb1;
   address   10.101.152.36:7789;
   meta-disk  internal;
 }
}


My questions are:

1.. Does DRBD 8.3 re-organize the data on disk after the upgrade
    </pre>
  </blockquote>
  <pre wrap=""><!---->
No.

  </pre>
  <blockquote type="cite">
    <pre wrap="">making  the IO on drbd1 slow now and it will return to normal after it
is done?

2. Can I rollback to 8.2.0 while investigating the cause of the  
slowness?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
yes.

  </pre>
  <blockquote type="cite">
    <pre wrap="">Does 8.3.0 make any changes that 8.2.0 does not rcognize?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
no.

  </pre>
  <blockquote type="cite">
    <pre wrap="">3. What else can I do to improve the performance to a level close to  
what it was before the upgrade?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
I have no idea what goes on there.
It certainly is unexpected behaviour.

  </pre>
</blockquote>
I upgraded the kernel to the latest Red Hat release: 2.6.18-128.el5 and
that did not fix the problem.&nbsp; I installed 8.2.7 and it behaves the
same as 8.3.&nbsp; The system becomes too slow to use.&nbsp; I rolled back to
8.2.0.&nbsp; 8.2.0 works in terms of writing data to the underlying storage
but it is not stable in replicating data to the secondary node.&nbsp;
Unloading the DRBD module of 8.2.0 locks up the host.&nbsp; 8.2.7 and 8.3 do
not log nay errors when they are slow.&nbsp; The DRBD worker thread stays in
state D and other processes are blocked.<br>
<br>
Here is some observation:<br>
<br>
When running 8.2.0, the command "iostat" does not show the DRBD
device.&nbsp; With 8.3.0 or 8.2.7, "iostat" shows the DRBD device as one of
the IO devices.&nbsp; On all our other server where DRBD are used, iostat
does not display the DRBD devices.<br>
<br>
In other words, when iostat shows a DRBD divce (/dev/drbd1 in my case)
as one of the IO devices, the host system becomes very slow.<br>
<br>
<br>
Thanks for your help.<br>
<br>
John<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>