Mam dwa serwery Dell R515 z systemem CentOS 6.5, z jednym z NIC Broadcom bezpośrednio połączonymi. Używam bezpośredniego linku, aby co noc przesyłać kopie zapasowe z głównego serwera w parze do pomocniczego przy użyciu rsync przez ssh. Monitorując ruch, widzę przepustowość ~ 2 MB / s, czyli o wiele mniej niż oczekiwałbym od portu gigabitowego. Ustawiłem MTU na 9000 po obu stronach, ale to nic nie zmieniło.
Czy istnieje zalecany zestaw ustawień i optymalizacji, które doprowadziłyby mnie do maksymalnej dostępnej przepustowości? Co więcej, ponieważ używam rsync przez ssh (lub potencjalnie po prostu NFS) do kopiowania milionów plików (~ 6 TB małych plików - ogromny sklep pocztowy Zimbra), optymalizacje, których szukam, mogą wymagać bardziej szczegółowej specyfikacji dla mojego konkretnego przypadku użycia .
Używam ext4 po obu stronach, jeśli to ma znaczenie
Dzięki
EDYCJA: Użyłem następujących rsync
opcji z prawie podobnymi wynikami:
rsync -rtvu --delete source_folder/ destination_folder/
rsync -avHK --delete --backup --backup-dir=$BACKUPDIR source_folder/ destination_folder/
Obecnie patrzę na ten sam poziom niskiej wydajności, gdy korzystam cp
z eksportu NFS, przez to samo bezpośrednie łącze kablowe.
EDYCJA 2: po zakończeniu synchronizacji mogłem uruchomić iperf
i stwierdziłem, że wydajność wynosiła około 990 Mb / s, spowolnienie było spowodowane faktycznym zestawem danych w użyciu.
źródło
iperf
.Odpowiedzi:
Największą barierą są prawdopodobnie liczba plików i narzut związany z szyfrowaniem SSH. Przy takim przelewie nie zobaczysz prędkości drutu.
Opcje do poprawy obejmują:
-e "ssh -c arcfour"
)dd
, ZFS snapshot wyślij / odbierz , etc.tar
netcat (nc
), mbuffer lub jakiejś kombinacji.tuned-adm
ustawienia CentOS .rsync
polecenia. Czy-W
miałaby sens tutaj opcja całych plików? Czy kompresja jest włączona?źródło
iperf
aby się upewnić.rsync
a nie przezcp
. Widziałem, że dużo dłużejrsync
trwa aktualizacja zdalnego katalogu utworzonego przez : 88 GB zaktualizowane z sumowaniem kontrolnym w 1h26m zamiast 3h! Sposób utworzenia początkowego układu dysku ma kluczowe znaczenie dla uzyskania dobrej wydajności aktualizacji. Czas procesora jest taki sam; czas rzeczywisty może się podwoić. (Ta sama aktualizacja bez sumowania działa w 13 minut z dysku SSD do Seagate o pojemności 200 GB).cp
Jak zapewne wiesz, kopiowanie wielu małych plików (np. Skrzynek pocztowych w formacie MailDir lub podobnym) zdecydowanie nie jest najlepszą opcją korzystania z interfejsów o dużej przepustowości. SSH prawdopodobnie nie jest najlepszym protokołem transportowym do tego. Spróbowałbym użyć tar do utworzenia tarballa na hoście źródłowym przed wysłaniem go do drugiego hosta.
Jeśli potrzebujesz przyrostowej kopii zapasowej, możesz wypróbować
-g
opcje tar. Jeśli nadal musisz zmaksymalizować throuput, spróbuj użyć netcat zamiast ssh.źródło
dd
poprzeznc
wtedy. ale w tej chwili mam dwa ogromne kopie zapasowe, dlatego muszę zostać przeniesiony z głównego hosta, abym mógł tam stworzyć system LVMSpróbuj drażnić czynniki, które się do tego przyczyniły:
i testowanie ich niezależnie.
Miałem złe doświadczenia ze sterownikami Broadcom, więc moją pierwszą sugestią jest przetestowanie użytecznej przepustowości sieci za pomocą:
dd if=/dev/zero bs=1m count=10k | rsh backup_host cat \> /dev/null
źródło