Giả sử tôi cần gửi một số dữ liệu từ máy tính này sang máy tính khác, qua mạng khá nhanh ... ví dụ: kết nối 100Mbit tiêu chuẩn (~ 10MB / s). Ổ đĩa của tôi là ổ cứng chuẩn, vì vậy tốc độ của chúng nằm trong khoảng từ 30MB / s đến 100MB / s. Vì vậy, tôi đoán rằng việc nén dữ liệu khi đang bay có thể giúp ích.
Nhưng ... tôi không muốn bị giới hạn bởi CPU. Nếu tôi chọn một thuật toán chuyên sâu về CPU, quá trình chuyển sẽ thực sự chậm hơn so với việc không nén.
Điều này rất khó với các máy nén như GZIP và BZIP2 vì bạn thường đặt cường độ nén một lần cho toàn bộ quá trình truyền và luồng dữ liệu của tôi đôi khi rất dễ, đôi khi khó nén - điều này làm cho quá trình không tối ưu vì đôi khi tôi không sử dụng CPU đầy đủ, và đôi khi băng thông không được sử dụng đúng mức.
Có một chương trình nén nào thích ứng với CPU / băng thông hiện tại và đạt được điểm tốt để việc truyền tải sẽ tối ưu? Lý tưởng cho Linux, nhưng tôi vẫn tò mò về tất cả các giải pháp. Tôi muốn thấy một cái gì đó tương thích với bộ giải nén GZIP / BZIP2, nhưng điều này là không cần thiết.
Vì vậy, tôi muốn tối ưu hóa tổng thời gian truyền, không chỉ đơn giản là lượng byte cần gửi.
Ngoài ra tôi không cần giải nén thời gian thực ... nén thời gian thực là đủ. Máy chủ đích có thể xử lý dữ liệu sau này trong thời gian rảnh rỗi. Tôi biết điều này không thay đổi nhiều (nén thường tốn nhiều CPU hơn giải nén), nhưng nếu có một giải pháp có thể sử dụng thực tế này, thì tốt hơn hết.
Mỗi lần tôi chuyển dữ liệu khác nhau và tôi thực sự muốn thực hiện các lần chuyển một lần này càng nhanh càng tốt. Vì vậy, tôi sẽ không được hưởng lợi từ việc chuyển nhiều lần nhanh hơn do nén mạnh hơn.
Cảm ơn,