Первоначальное резервное копирование больших данных с помощью rsync на RAID 5

Я предлагаю вам научиться использовать команду renice. Вы можете сделать то же самое с помощью команды:

 renice 19 -p <pid1 pid2 ... pidN>

В локальном случае, запущенном с использованием / bin / sh varient, используйте:

 renice 19 -p $$

это изменит хороший уровень текущей оболочки на уровень 19.

{{1 }}
1
08.03.2019, 17:05
4 ответа

Думаю, мы придем к выводу, что это аппаратная проблема. Как оказалось, этот конкретный сервер был поставлен без промежуточного узла вентилятора. Вентилятор необходим в конфигурации сервера, поскольку он содержит кожух, который, помимо других частей, препятствует потоку воздуха от карты RAID. Для решения этой проблемы нужен вентилятор. Это может объяснить, почему скорость передачи постепенно замедлялась. Даже в простое карта заметно нагревалась. С тех пор мы установили промежуточный блок вентиляторов, и скорость передачи была довольно стабильной на уровне 30 -40 МБ/с с пиками 120 МБ/с в гигабитной сети. Хотел бы я проверить на 10G, но больше не имею доступа.

0
27.01.2020, 23:30

Заключение о том, что большое количество маленьких файлов является причиной низкой скорости передачи по rsync.

В этом случае будет более эффективным потоковый подход, например, использование ssh + tar

Обновление :На самом деле, в моем случае это неверно (и не решает проблему ). Я запускал эти тесты в каталогах, которые использовал в качестве теста. Было указано, что они могут быть в кеше страниц, поэтому я обязательно проверил еще раз в новом каталоге, и скорость резко упала.

0
27.01.2020, 23:30

У вас много ядер и достаточная пропускная способность сети, поэтому я предлагаю вам распараллелить требование. Несколько rsyncпроцессов, каждый из которых обрабатывает свою часть набора файлов.

0
27.01.2020, 23:30

Две точки:

  • Во-первых, по умолчанию rsync работает через SSH. Это медленно . Проверьте вывод top или htop и вы, вероятно, увидите что-то вроде этого:
    top - 18:04:39 up 113 days,  3:47,  3 users,  load average: 0,50, 0,59, 0,62
    Tâches: 489 total,   4 en cours, 485 en veille,   0 arrêté,   0 zombie
    %Cpu(s): 40,7 ut, 14,5 sy,  0,0 ni, 36,3 id,  3,4 wa,  0,0 hi,  5,1 si,  0,0 st
    MiB Mem :   7976,3 total,    212,8 libr,   2717,9 util,   5045,7 tamp/cache
    MiB Éch :   8583,0 total,   8381,2 libr,    201,8 util.   4598,0 dispo Mem 

      PID UTIL.     PR  NI    VIRT    RES    SHR S  %CPU  %MEM    TEMPS+ COM.                                                                                                             
    27262 emmanuel  20   0   33956   7924   4204 R  58,3   0,1   0:21.51 ssh                                                                                                              
    31185 emmanuel  20   0   52164   3208   2140 S  35,1   0,0   0:05.03 rsync                                                                                                            
    27249 emmanuel  20   0 1340140 158896  45432 S   8,9   1,9   4:40.63 python2                                                                                                          
       52 root      20   0       0      0      0 R   6,3   0,0   9:51.41 kswapd0                                                                                                          
    25149 root      20   0  324716 126192  63120 S   2,0   1,5  25:26.24 Xorg                                                                                                             
    25679 emmanuel  20   0 2555068 774108 100220 S   1,3   9,5   9:28.86 WebExtensions                                                                                                    

Обратите внимание, что rsync+ssh почти полностью загружает один ЦП?

  • Во-вторых, мы не знаем тип и скорость вашего целевого массива; его нормальная скорость записи может быть ужасной, например, если это аппаратный RAID-контроллер с отключенным кэшированием записи -.

Как повысить производительность:

  • Для начальной копии не используйте rsync . Серьезно. rsync отлично подходит для синхронизации данных. Но для копии в сторону и пустой цели это отстой. Это намного, намного медленнее, чем старый добрый cp . Итак, мой совет::используйте cp поверх NFS , и вы максимально загрузите свое оборудование (, какая бы часть ни была самой медленной, целевой RAID или сеть ).

  • На целевом сервере отредактируйте /etc/exports:

    /mnt/raid *(rw,async,no_root_squash,no_subtree_check)

Запустить NFS:systemctl restart nfs-kernel-server

  • На исходной машине смонтировать экспорт:

mount <server IP>:/mnt/raid /mnt/target

Затем скопируйте все:

cp -av /mnt/source /mnt/target

Предпочтительно использовать экран или tmux для запуска вашей копии и предотвращения несчастных случаев (потеря соединения ssh и т. д. ).

  • Альтернативное решение :, если NFS недоступен или какой-либо другой протокол обмена файлами (CIFS/SMB, Fuse -FTP, WebDav...), тогда лучше всего использовать netcat в сочетании с tar . Важно не шифровать трафик:

На целевой машине запустите сервер netcat :

cd /mnt/target ; nc -l -p 45724 | tar x

На исходной стороне запустите это:

cd /mnt/source; tar cf - * | nc <target IP> 45724
2
27.01.2020, 23:30

Теги

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