Tôi đã xem xét câu hỏi này và câu hỏi này , nhưng dường như chúng không giải quyết được các triệu chứng tôi đang thấy.
Tôi có một tệp nhật ký lớn (khoảng 600 MB) mà tôi đang cố gắng chuyển qua mạng di động. Bởi vì nó là một file log nó chỉ được nối vào (mặc dù nó thực sự là một cơ sở dữ liệu SQLite với chỉ INSERT được thực hiện, vì vậy nó không phải là khá đơn giản như vậy, nhưng với ngoại lệ của người cuối cùng 4k trang (hoặc có thể là một vài lần) tập tin giống hệt nhau mỗi lần. Điều quan trọng là chỉ những thay đổi (và bất kỳ tổng kiểm tra nào cần được truyền) thực sự được gửi, bởi vì kết nối dữ liệu được đo.
Tuy nhiên, khi tôi thực hiện kiểm tra qua kết nối không được đáp ứng (ví dụ: điểm phát wifi miễn phí), tôi không thấy việc truyền dữ liệu tăng tốc hoặc giảm tốc độ được quan sát hoặc báo cáo. Qua kết nối WiFi chậm, tôi thấy đơn hàng từ 1MB / s trở xuống, báo cáo rằng việc chuyển tiền sẽ mất gần 20 phút. Qua kết nối WiFi nhanh, tôi thấy tốc độ nhanh hơn đồng đều, nhưng không có báo cáo về tốc độ và lần thử thứ hai để chuyển (mà bây giờ sẽ nhanh hơn vì hai tệp giống hệt nhau) hiện không có sự khác biệt.
Lệnh (được khử trùng để xóa thông tin nhạy cảm) tôi đang sử dụng là:
rsync 'ssh -p 9999' --progress LogFile michael@my.host.zzz:/home/michael/logs/LogFile
Đầu ra tôi nhận được ở cuối trông như thế này:
LogFile
640,856,064 100% 21.25MB/s 0:00:28 (xfr$1, to-chk=0/1)
Không có đề cập đến bất kỳ loại tăng tốc.
Tôi nghi ngờ vấn đề có thể là một trong những điều sau đây:
- Tôi đang thiếu một số tùy chọn dòng lệnh. Tuy nhiên, đọc lại trang man dường như gợi ý rằng chuyển delta được bật theo mặc định: Tôi chỉ thấy các tùy chọn để vô hiệu hóa chúng.
- Tôi đang sử dụng rsync trên ssh (trên một cổng không chuẩn) do máy chủ đứng sau tường lửa chỉ cho phép ssh. Tôi chưa thấy bất cứ điều gì rõ ràng nói rằng chuyển delta sẽ không hoạt động nếu daemon rsync không chạy. Tôi đã thử sử dụng ký hiệu "::" thay vì ":" nhưng trang man không rõ lắm về "mô-đun" là gì và lệnh của tôi bị từ chối vì chỉ định mô-đun không hợp lệ.
Tôi đã loại trừ những điều sau đây:
- chuyển delta không được thực hiện trên một mạng cục bộ. Loại trừ vì tôi đang cố gắng thực hiện chuyển tiền qua internet
- chi phí do tính toán tổng kiểm tra. Tôi đã thấy hành vi này trên cả kết nối Wifi nhanh và chậm và tốc độ truyền tải dường như không bị ràng buộc.
rsync --stats
và cũng -v -v
để có được số liệu thống kê dài hơn. Rsync sẽ cho bạn biết có bao nhiêu dữ liệu trùng khớp với dữ liệu chưa từng có.
but with the exception of the last 4k page (or maybe a few) the file is identical each time.
Bạn đã thực sự xác minh rằng vớicmp
? Hoặc tốt hơn, vớixdelta
hoặc một cái gì đó? Nếu bạn thực sự muốn giảm thiểu kích thước chuyển, hãy giữ các phiên bản cũ và mới cục bộ, để bạn có thể tính toán một nhị phân nhị phân tối thiểu cục bộ (với thứ gì đó không phải là rsync) và chỉ cần gửi mà không phải gửi tổng kiểm qua kết nối được đo. Làm điều này ở mức bản ghi cơ sở dữ liệu thay vì mức tệp nhị phân có lẽ còn tốt hơn, như derobert gợi ý.