Рассмотрим передачу данных по конвейерной сети в устаревших системах с удаленной оболочкой (RSH), например:
rsh host -l user tar -cf - /home/dir \| compress | uncompress | tar -xvf -
и это в «современных» системах:
ssh user@host tar -cf - /home/dir \| gzip | ungzip | tar -xvf -
ПРОБЛЕМЫ С ПРОИЗВОДИТЕЛЬНОСТЬЮ:
Я столкнулся с очень плохой производительностью при передаче данных между AIX 4.3 и AIX 5.3 с использованием RSH. Даже имея неиспользуемые карты (10/100), подключая их через неиспользуемый коммутатор, я получил производительность около 350 Кбит/с при передаче 5,4 ГБ.
При запуске этой передачи между AIX 5.3 и Linux, но теперь с использованием SSH и gzip, производительность намного выше, но так и не достигает пропускной способности сети (в 1-гигабитной локальной сети я получил среднюю скорость около 400 Мбит/с).
Существуют ли способы оптимизации производительности сетевого конвейера, возможно, путем настройки буферов конвейера или сетевых блоков/буферов, или чего-то еще?
решение1
Я думаю, что у вас ограничение скорее процессора, чем пропускной способности, по крайней мере, в части ssh.
Я получаю около 45-50 МБ/с с scp (ssh cp) между двумя другими простаивающими серверами, поскольку шифрование/дешифрование на серверах является ограничивающим фактором. Добавьте gzip/ungzip, и вы можете упасть еще больше в зависимости от количества доступных ядер.
Несжатые и незашифрованные передачи имеют лучшие показатели. Вы можете попробовать без команд сжатия и посмотреть, что из этого получится.
решение2
Вы уже провели базовый тест скорости, чтобы исключить сжатие и дисковый ввод-вывод?
Это довольно легко сделать, подключитесь с одного из затронутых хостов к другому через ftp и запустите,
put "|dd if=/dev/zero bs=1M count=1000″ /dev/null
который будет считать 1 ГБ из /dev/zero с одной стороны и записать его в /dev/null с другой стороны, что протестирует чистую пропускную способность сети. Это описано более подробно, например, на
Блог AIXChange: Два способа измерения производительности сети
Для передачи через scp можно попробовать снизить уровень шифрования, используя менее требовательный потоковый шифр (RC4) в -o Cipher=arcfour ...
качестве опции к scp.
Смотрите такжесвязанный вопроспредлагаю использовать -C
для включения сжатия, хотя, насколько я понял, в вашем случае ограничивающим фактором является производительность процессора, а не пропускная способность сети, поэтому сжатие, вероятно, ухудшит ситуацию.