Câu trả lời:
Rõ ràng Rupync sẽ nhanh hơn scp nếu mục tiêu đã chứa một số tệp nguồn, vì rsync chỉ sao chép sự khác biệt. Nhưng tôi nghi ngờ câu hỏi của bạn là về việc thực hiện một bản sao đơn giản đến một mục tiêu trống.
Bạn đã thông qua -z
tùy chọn này rsync
; Điều này bật nén. Nếu băng thông mạng là yếu tố giới hạn (thường là vậy), nén có thể cải thiện tốc độ truyền bằng một lượng đáng chú ý.
Bạn cũng có thể kích hoạt tính năng nén bằng scp
cách chuyển -C
tùy chọn. Điều này sẽ về ngay cả những thứ ra với rsync. Nén không được bật theo mặc định trong ssh vì nó tiết kiệm băng thông nhưng thêm độ trễ và chi phí CPU; độ trễ là không tốt cho các phiên tương tác (điều này không áp dụng cho scp
) và chi phí hoạt động của CPU là vô ích nếu các tệp bạn đang sao chép đã được nén.
Các phiên bản cũ hơn của rsync
rsh đã sử dụng thay vì ssh làm lớp vận chuyển mặc định, do đó, một so sánh công bằng sẽ là giữa rsync
và rcp
. Nhưng ssh đã được mặc định kể từ 2.6.0 được phát hành vào ngày 2004-01-01.
Với các cài đặt nén giống hệt nhau, tôi mong đợi rsync
và scp
có cùng tốc độ. Vui lòng chia sẻ điểm chuẩn nếu bạn tìm thấy khác.
rsync -z
vẫn còn CÁCH nhanh hơn scp
bất kỳ nén nào được đề xuất trong các câu trả lời này được bật. Nó cũng nhanh hơn nén và lưu trữ vào một tệp theo cách thủ công và scp
'tệp đó ( scp
với nén thậm chí còn chậm hơn thế). Vì vậy, câu hỏi của OP thực sự vẫn chưa được trả lời: wth scp
quá chậm so với rsync
?
thử scp một cách nhanh chóng
scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput' -c arcfour machine:file .
các tùy chọn này tăng tốc 5 lần trong thiết lập của tôi so với máy scp đơn giản: tệp.
Cập nhật, 2017
Trên thực tế scp chậm do quản lý kém các chi tiết TCP như MTU và kích thước bộ đệm. May mắn thay, điều này đã được sửa chữa bởi dự án HPN SSH . Theo hiểu biết của tôi, bạn có thể sử dụng HPN SSH làm phương tiện vận chuyển cho rsync.
scp -p
(giữ ngày / giờ) như mặc định và có thể -r
(đệ quy) như vậy scp -pr -C ...
. (Tôi chỉ phải chà và khởi động lại một công việc scp 40Gb sử dụng những vì tôi quên -p
)
Nó đã từng là cách khác, nhưng tôi tin rằng tốc độ của rsync đã được cải thiện đáng kể trong vài lần sửa đổi trước đây. Nó cũng phụ thuộc vào số lượng tệp bạn đang sao chép. Nếu nhiều, rsync thường sẽ nhanh hơn vì scp tạo ra một quy trình mới cho mỗi tệp bạn đang sao chép. Bạn có thể thử làm suy yếu việc sử dụng mật mã scp để xem nó có tăng tốc không. Lần cuối tôi nhớ lại, mật mã arcfour là nhanh nhất.
Đối với một số lượng lớn các tệp nhỏ rysnc nhanh hơn nhiều so với scp. Họ nói rằng đó là vì nó có chi phí nhỏ hơn. Đối với một tệp lớn, tôi sẽ mong đợi kết quả tương tự.
Đối với thử nghiệm của tôi, rsync nhanh hơn scp , bạn có thể sử dụng iotop để kiểm tra chúng khi chuyển cùng một tệp:
sudo iotop -o
Có thể bạn sẽ nhận được kết quả khác nhau, nhưng bạn có thể tự kiểm tra chúng. BTW, trong khi sử dụng scp , đừng sương mù để chọn mật mã của nó bằng cách:
scp -c arcfour <source> <dest>
Trong khi arcfour
có thể tăng tốc độ mã hóa.
Bạn đang sao chép lại các tập tin trên những cái hiện có? Nếu vậy, khả năng chặn so sánh của rsync và chỉ sao chép sự khác biệt sẽ có liên quan.