Mam dwie maszyny Debian Linux podłączone przez 1 Gbit LAN. Mogę to zmierzyć za pomocą surowego transferu plików HTTP, z wget
którym uzyskuje się około 100 MB / s w dowolnym kierunku.
Kiedy teraz używam scp
, maksimum bez kompresji, które otrzymuję, wynosi około 15 MB / s . Włączenie kompresji za pomocą -C
flagi daje mi, w zależności od zawartości, do 50 MB / s .
Mimo to, istnieje wiele przepustowość zmarnowany tutaj wydaje. Długo się nie przejmowałem, aż naprawdę musiałem pomyśleć o bardzo dużych transferach plików dziennika i po prostu zdałem sobie sprawę, jak dziwnie wolno scp
. Naturalnie mogę z niego korzystać scp
, nawet w środowisku firmowym, ponieważ cała infrastruktura jest dla niego skonfigurowana.
Co tak bardzo ogranicza wydajność scp? Czy procesor jest związany z powodu szyfrowania? Kiedy używam htop
, wydaje się, że nie wykorzystuje procesorów wielordzeniowych, tylko jeden z czterech procesorów jest maksymalnie obciążony.
Czy istnieje sposób na zwiększenie przepustowości? Mam dostępne serwery HTTP i sambę, ale do przenoszenia plików między maszynami z Linuksem zwykle używam tylko SSH, tak właśnie dorastałem. Ale teraz myślę o tym, wydaje mi się, że muszę rozważyć inne sposoby przesyłania dużych ilości danych.
HTTP jest używany tylko do określonych aplikacji w PHP / Java / cokolwiek, a samba jest używana z pewnych szczególnych powodów, dla których potrzebujemy dostępu z maszyn z systemem Windows.
-C
opcja kompresji sprawiła, że była wolniejsza (21 MB / s zamiast 112 MB / s). Więc proszę o ostrożność-C
.