linux – 为什么我看到DRBD会有很大的性能损失?

我看到DRBD的性能比他们的用户手册说的要大得多.我正在使用DRBD 8.3.7(Fedora 13 RPMs).

我已经设置了DRBD测试并测量了没有DRBD的磁盘和网络的吞吐量:

dd if=/dev/zero of=/data.tmp bs=512M count=1 oflag=direct
536870912 bytes (537 MB) copied,4.62985 s,116 MB/s

/是我正在测试的磁盘上的逻辑卷,在没有DRBD的情况下安装

iperf的:

[  4]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec

根据Throughput overhead expectations,瓶颈将是较慢的,网络或磁盘和DRBD应该有3%的开销.在我看来,网络和I / O似乎相当匹配.听起来我应该可以达到100 MB / s左右.

所以,使用原始drbd设备,我得到了

dd if=/dev/zero of=/dev/drbd2 bs=512M count=1 oflag=direct
536870912 bytes (537 MB) copied,6.61362 s,81.2 MB/s

这比我想象的慢.然后,一旦我用ext4格式化设备,我就得到了

dd if=/dev/zero of=/mnt/data.tmp bs=512M count=1 oflag=direct
536870912 bytes (537 MB) copied,9.60918 s,55.9 MB/s

这似乎不对.必须有一些其他因素在我不知道的情况下发挥作用.

global_common.conf

global {
usage-count yes;
}

common {
protocol C;
}

syncer {
al-extents 1801;
rate 33M;
}

data_mirror.res

resource data_mirror {
    device /dev/drbd1;
    disk   /dev/sdb1;

    Meta-disk internal;

    on cluster1 {
       address 192.168.33.10:7789;
    }

    on cluster2 {
       address 192.168.33.12:7789;
    }
}

对于硬件,我有两台相同的机器:

> 6 GB RAM
>四核AMD Phenom 3.2Ghz
>主板SATA控制器
> 7200 RPM 64MB缓存1TB WD硬盘

网络通过交换机连接1Gb.我知道建议直接连接,但这可能会产生很大的影响吗?

编辑

我只是试着监控用来试图看看发生了什么的带宽.当我运行dd测试10次时,我使用了ibmonitor并测量了平均带宽.我有

> avg~450Mbits写入ext4
> avg~800Mbits写入原始设备

看起来像ext4,drbd使用的原始设备使用的带宽大约只有一半,因此存在一个不是网络的瓶颈.

解决方法

你用“rate = 33M”限制带宽为什么?
你使用同步协议“C”为什么?

我通常使用协议“A”和8 MB缓冲区.对于千兆线路和繁忙的流量,我限制为“速率= 90M”.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...