tl; dr Trên các liên kết chuyển chậm, nén, nếu không thì không. Dưới đây là bài kiểm tra tốc độ nén, liên kết đến công cụ chuyển đổi băng thông và một số thông tin.
Sử dụng nén với rsync
sẽ chỉ tăng tốc mọi thứ nếu liên kết trung gian "đủ chậm", nghĩa là nếu máy ở một đầu có thể tạo ra luồng dữ liệu nén đủ nhanh để bão hòa liên kết truyền thông.
Vì vậy, liên kết chậm nhất mà tôi nên sử dụng nén để đạt được điều gì?
Sau đây là một thử nghiệm rất không khoa học, sẽ cho thấy tốc độ gzip
có thể tạo dữ liệu nhanh như thế nào và điều đó có nghĩa là liệu bạn có nên nén chuyển số lượng lớn mạng của mình nói chung hay không.
Dữ liệu đầu vào sẽ thay đổi kết quả của bài kiểm tra rất nhiều . Tôi đang sử dụng một tệp thông thường không nén (!) Trên máy tính của mình, có thể đại diện cho loại dữ liệu tôi thường truyền qua mạng. Việc sử dụng /dev/zero
(tạo ra các số 0 không giới hạn) sẽ gây hiểu lầm vì một luồng các số 0 sẽ rất dễ nén và việc sử dụng /dev/random
sẽ gây hiểu lầm cho lý do ngược lại. Vì vậy, thay vào đó tôi sử dụng một tập tin tar của $HOME/local
thư mục chứa phần mềm tôi đã cài đặt $HOME
. Bản thân tệp không được nén, nhưng chứa hỗn hợp các tệp nhị phân, tệp nén nhỏ và tệp nguồn / văn bản và tôi sẽ nén nó với cài đặt mặc định cho gzip
nó sẽ giảm 67% từ 64 MiB xuống 22 MiB.
$ gzip -c local.tar | dd of=/dev/null
43092+4 records in
43093+1 records out
22063854 bytes transferred in 2.819 secs (7825741 bytes/sec)
Tôi làm điều này một vài lần để có cảm giác về mức trung bình có thể là bao nhiêu và nó đạt khoảng 7800000 byte / s.
Sau đó, tôi sử dụng một máy tính băng thông mạng để xem cái này chuyển thành cái gì. Trong trường hợp cụ thể này, nó chỉ nằm dưới khả năng của liên kết có dây "Ethernet 100Mb", nhanh hơn so với đường lên internet "Tải xuống VDSL", nhanh hơn một chút so với liên kết không dây "802.11 [a / g]" và ở đâu đó ở giữa "Bluetooth v3.0" (chậm hơn) và "USB 2.0" (nhanh hơn).
Điều này có nghĩa là nếu tôi đang sử dụng nén trên bất kỳ thứ gì nhanh hơn thế, việc nén sẽ có thể làm chậm quá trình truyền tệp.
rsync
có thể không sử dụng chính xác các thư viện gzip
để thực hiện nén, nhưng ở trên sẽ cung cấp cho bạn một chút gợi ý.
rsync
như bạn biết, thực hiện nhiều hơn việc nén, và tốc độ tăng thực sự đến từ việc chỉ truyền [bit của] các tệp đã thay đổi.
Theo kinh nghiệm của riêng tôi, sử dụng nén với rsync
đã trở nên ngày càng ít có lợi hơn trong 10 năm qua hoặc lâu hơn, vì băng thông của các mạng đã tăng lên (nơi tôi đang ở).
Để thực hiện sao lưu gia tăng, tôi chắc chắn sẽ khuyên bạn nên điều tra --link-dest
tùy chọn (điều này không liên quan gì đến những gì được chuyển, chỉ với cách mọi thứ được lưu trữ tại mục tiêu). Ngoài ra, nếu bạn đang thực hiện trên SSH, đừng sử dụng nén nếu kết nối SSH của bạn đã được nén và chỉ nén các kết nối SSH (đường hầm, v.v.) qua các liên kết chậm, vì những lý do tương tự như trên.