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

Загадка экспертов по Linux: сетевой выход 10 МБ / с на сетевой карте 10 ГБ / с

У меня два сервера CentOS 6. Я пытаюсь передавать файлы между ними. Исходный сервер имеет сетевую карту 10 ГБ / с, а целевой сервер имеет сетевую карту 1 ГБ / с.

Независимо от используемой команды или протокола скорость передачи составляет ~ 1 мегабайт в секунду. Цель - минимум пара десятков МБ в секунду.

Я пробовал: rsync (также с различными шифровками), scp, wget, aftp, nc.

Вот некоторые результаты тестирования с iperf:

[root@serv ~]# iperf -c XXX.XXX.XXX.XXX -i 1
------------------------------------------------------------
Client connecting to XXX.XXX.XXX.XXX, TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  3] local XXX.XXX.XXX.XXX port 33180 connected with XXX.XXX.XXX.XXX port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  1.30 MBytes  10.9 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  1.0- 2.0 sec  1.28 MBytes  10.7 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  2.0- 3.0 sec  1.34 MBytes  11.3 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  3.0- 4.0 sec  1.53 MBytes  12.8 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  4.0- 5.0 sec  1.65 MBytes  13.8 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  5.0- 6.0 sec  1.79 MBytes  15.0 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  6.0- 7.0 sec  1.95 MBytes  16.3 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  7.0- 8.0 sec  1.98 MBytes  16.6 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  8.0- 9.0 sec  1.91 MBytes  16.0 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  9.0-10.0 sec  2.05 MBytes  17.2 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.68 MBytes  14.0 Mbits/sec 

Думаю, HD здесь не является узким местом.

  1. Убедитесь, что коммутатор GigE или выше

    По моему опыту (конфигурации жесткого диска могут отличаться от результатов):

    10Base-T ~ 512 КБ / с-1 МБ / с

    100Base-T ~ 1-3 МБ / с

    1GigE ~ 3-11 МБ / с

    10GigE ~ 11-40 МБ / с

  2. Убедитесь, что у вас включено автосогласование на сетевых адаптерах обоих серверов и коммутаторе.

    Несовпадение переговоров по умолчанию с наименьшим общим знаменателем в пути

  3. Убедитесь, что коммутатор и сетевые карты серверов используют одинаковый размер MTU.

    Базовый MTU составляет 1500. Если ваши серверы и коммутаторы поддерживают 9000, попробуйте это.

Если я использую rsync с параметром -W на серверах, подключенных друг к другу с помощью только гигабита, скорость достигает 80..90 МБ / с (или даже выше, если fsync не работает). В зависимости от дисков (sas или ssd) поддерживается около 70 МБ / с с ssd, а с sas - от 10 до 70 МБ / с.

Я предполагаю, что коммутатор, к которому подключена ваша карта 10 Гбит / с, отправляет кадры паузы на ваш сервер. Чтобы оправиться от этого, нужно время.