Tại sao rsync -avz nhanh hơn scp -r?


55

Tôi có một chút bối rối bởi điều này? Tại sao rsync nhanh hơn scp? Không rsync sử dụng scp bên dưới hoặc nó làm một cái gì đó hiệu quả hơn? Có cách nào để tăng tốc độ scp không?


1
Đó là một bản sao mới.
grm

Câu trả lời:


68

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 -ztù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 scpcách chuyển -Ctù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 rsyncrsh đã 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 rsyncrcp. 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 rsyncscpcó cùng tốc độ. Vui lòng chia sẻ điểm chuẩn nếu bạn tìm thấy khác.


3
Thật tuyệt, sử dụng -C làm cho tốc độ chuyển của tôi tăng từ 5MB lên 20MB
ɾɾǝʞ

Tôi vừa kiểm tra rằng đối với một thư mục chứa 16 tệp khoảng 3-9 MB và rsync -zvẫn còn CÁCH nhanh hơn scpbấ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 đó ( scpvớ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 scpquá chậm so với rsync?
ohcibi

12

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.


1
Thật sự cảm ơn!! Tuy nhiên luôn luôn làm 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)
SMCI

Tôi đã thêm -p vào lệnh, cảm ơn vì một gợi ý.
Peter K

4

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.


2
Scp không thực sự sinh ra một quy trình mới cho mỗi tệp được sao chép. Bạn có một quy trình ở bên gửi và một quy trình ở bên nhận, giống như với rsync.
Kenster

3

Đố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ự.


3

Đố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 arcfourcó thể tăng tốc độ mã hóa.


0

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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.