Supponiamo di dover inviare alcuni dati da un computer a un altro, su una rete piuttosto veloce ... ad esempio una connessione standard a 100 Mb (~ 10 MB / s). Le mie unità disco sono HDD standard, quindi la loro velocità è compresa tra 30 MB / se 100 MB / s. Quindi immagino che la compressione dei dati al volo possa aiutare.
Ma ... non voglio essere limitato dalla CPU. Se scelgo un algoritmo che è intensivo su CPU, il trasferimento in realtà andrà più lentamente che senza compressione.
Questo è difficile con compressori come GZIP e BZIP2 perché di solito imposti la resistenza a compressione una volta per l'intero trasferimento e i miei flussi di dati a volte sono facili, a volte difficili da comprimere: questo rende il processo non ottimale perché a volte non utilizzo la CPU completa, e talvolta la larghezza di banda è sottoutilizzata.
Esiste un programma di compressione che si adatterà all'attuale CPU / larghezza di banda e colpirà il punto ottimale in modo che il trasferimento sia ottimale? Idealmente per Linux, ma sono ancora curioso di sapere tutte le soluzioni. Mi piacerebbe vedere qualcosa di compatibile con i decompressori GZIP / BZIP2, ma questo non è necessario.
Quindi vorrei ottimizzare il tempo totale di trasferimento, non semplicemente la quantità di byte da inviare.
Inoltre non ho bisogno di decompressione in tempo reale ... la compressione in tempo reale è sufficiente. L'host di destinazione può elaborare i dati in un secondo momento nel suo tempo libero. So che questo non cambia molto (la compressione di solito richiede molta più CPU rispetto alla decompressione), ma se esiste una soluzione che potrebbe utilizzare questo fatto, tanto meglio.
Ogni volta che trasferisco dati diversi e voglio davvero effettuare questi trasferimenti una tantum il più rapidamente possibile. Quindi non trarrò beneficio dall'ottenere più trasferimenti più velocemente grazie alla compressione più forte.
Grazie,