Максимизация производительности и пропускной способности rsync - гигабитных серверов с прямым подключением

У меня есть два сервера Dell R515, на которых работает CentOS 6.5, причем один из сетевых адаптеров Broadcom в каждом напрямую связан с другим. Я использую прямую ссылку, чтобы каждую секунду пересылать резервные копии с основного сервера в паре на вторичный, используя rsync over ssh. Наблюдая за трафиком, я вижу пропускную способность ~ 2 Мбит /с, что намного меньше, чем я ожидал от гигабитного порта. Я установил MTU на 9000 с обеих сторон, но это ничего не изменило.

Есть ли рекомендованный набор настроек и оптимизаций, которые позволили бы мне максимально использовать пропускную способность? Более того, поскольку я использую rsync поверх ssh (или потенциально только NFS) для копирования миллионов файлов (~ 6Tb небольших файлов - огромный почтовый магазин Zimbra), оптимизации, которые я ищу, возможно, должны быть более конкретными для моего конкретного случая использования .

Я использую ext4 с обеих сторон, если это имеет значение

Спасибо

EDIT: я использовал следующие параметры rsync с довольно похожими результатами:

rsync -rtvu --delete source_folder/ destination_folder/

rsync -avHK --delete --backup --backup-dir=$BACKUPDIR source_folder/ destination_folder/

В настоящее время я смотрю на тот же уровень плохой производительности при использовании cp для экспорта NFS по тому же самому прямому кабелю ссылка.

EDIT2: после завершения синхронизации я мог запустить iperf и обнаружил, что производительность составляет около 990 Мбит /с, медленность была вызвана фактический набор данных в использовании.

22 голоса | спросил dyasny 20 PMpSun, 20 Apr 2014 22:02:06 +040002Sunday 2014, 22:02:06

3 ответа


21

Количество файлов и SSH-шифрование, вероятно, являются самыми большими барьерами. Вы не увидите скорость передачи на такой передаче.

Возможные улучшения:

  • Использование rsync + SSH с менее дорогостоящим алгоритмом шифрования (например, -e "ssh -c arcfour")
  • Устранение шифрования полностью поверх транспорта SSH с чем-то вроде HPN-SSH .
  • Блочные передачи. Снимки, dd, передача /получение моментальных снимков ZFS и т. д.
  • Если это разовая или нечастая передача, используйте tar, netcat (nc), mbuffer или некоторая комбинация.
  • Проверьте CentOS tuned-adm .
  • Удаление atime из ваших файловых систем. Изучение других параметров монтирования файловой системы.
  • NIC для отправки /получения буферов.
  • Настройка вашей команды rsync. Был бы -W, здесь есть смысл использовать весь файл? Включено ли сжатие?
  • Оптимизируйте подсистему хранения для типа передач (SSD, счетчик шпинделей, кеш RAID-контроллера).
ответил ewwhite 20 PMpSun, 20 Apr 2014 22:17:31 +040017Sunday 2014, 22:17:31
3

Как вы, вероятно, знаете, что копирование большого количества небольших файлов (например, почтовых ящиков с использованием формата MailDir или аналогичных), определенно, не самый лучший вариант для использования высокоскоростных интерфейсов. SSH, вероятно, не лучший транспортный протокол для этого. Я бы попытался использовать tar для создания tarball на исходном хосте перед отправкой его вам вторичному хосту.

tar c /var/mail | ssh [email protected] 'tar x -C /var/backups'

Если вам требуется инкрементное резервное копирование, вы можете попробовать параметры -g. Если вам все еще нужно максимизировать throuput, попробуйте использовать netcat вместо ssh.

ответил alxgomz 20 PMpSun, 20 Apr 2014 22:27:02 +040027Sunday 2014, 22:27:02
0

Попробуйте разделить факторы, способствующие:

  • CPU (например, dd из /dev /zero, пропущенный через loopback)
  • дисковый ввод-вывод (например, dd файла большой , переданного по каналу cat> /dev /null [для предотвращения короткого замыкания])
  • физический сетевой ввод-вывод (например, dd, подключенный к другой машине)
  • и др.

и тестировать их независимо.

У меня был плохой опыт работы с драйверами Broadcom, поэтому мое первое предложение - проверить используемую пропускную способность сети: dd if=/dev/zero bs=1m count=10k | rsh backup_host cat \> /dev/null

ответил Scott Leadley 21 AMpMon, 21 Apr 2014 07:05:37 +040005Monday 2014, 07:05:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132