Способы оптимизации производительности в сетевых конвейерах (RSH и SSH)

Способы оптимизации производительности в сетевых конвейерах (RSH и SSH)

Рассмотрим передачу данных по конвейерной сети в устаревших системах с удаленной оболочкой (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для включения сжатия, хотя, насколько я понял, в вашем случае ограничивающим фактором является производительность процессора, а не пропускная способность сети, поэтому сжатие, вероятно, ухудшит ситуацию.

Связанный контент