Назад | Перейти на главную страницу

Почему я вижу большое снижение производительности с помощью DRBD?

Я вижу, что DRBD дает гораздо большее снижение производительности, чем должно быть в их руководстве пользователя. Я использую DRBD 8.3.7 (Fedora 13 RPM).

Я установил тест 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

В соответствии с Ожидаемые накладные расходы по пропускной способностиузкое место будет в зависимости от того, что медленнее, сеть или диск и DRBD должны иметь накладные расходы в размере 3%. В моем случае сеть и ввод / вывод кажутся довольно одинаковыми. Похоже, я смогу получить около 100 МБ / с.

Итак, с устройством raw 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;
    }
}

По железу у меня две одинаковые машины:

Сеть 1Гб подключена через свитч. Я знаю, что рекомендуется прямое соединение, но может ли это иметь такое большое значение?

Отредактировано

Я просто попытался отслеживать используемую полосу пропускания, чтобы понять, что происходит. я использовал ibmonitor и измерил среднюю пропускную способность, пока я запускал тест dd 10 раз. Я получил:

Похоже, что с ext4 drbd использует примерно половину полосы пропускания, которую он использует с необработанным устройством, поэтому узким местом является не сеть.

Почему вы ограничиваете полосу пропускания «rate = 33M»? Почему вы используете синхронный протокол "C"?

Обычно я использую протокол «А» и буфер размером 8 МБ. Для гигабитной линии и интенсивного трафика я ограничиваю "rate = 90M".