สมมติว่าฉันต้องส่งข้อมูลจากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งผ่านเครือข่ายที่ค่อนข้างรวดเร็ว ... เช่นการเชื่อมต่อ 100Mbit มาตรฐาน (~ 10MB / s) ดิสก์ไดรฟ์ของฉันเป็น HDD มาตรฐานดังนั้นความเร็วจึงอยู่ระหว่าง 30MB / s และ 100MB / s ดังนั้นฉันเดาว่าการบีบอัดข้อมูลในทันทีอาจช่วยได้
แต่ ... ฉันไม่ต้องการถูก จำกัด ด้วยซีพียู ถ้าฉันเลือกอัลกอริทึมที่ใช้งาน CPU มากการถ่ายโอนจะช้าลงกว่าที่ไม่มีการบีบอัด
นี่เป็นเรื่องยากสำหรับตัวบีบอัดเช่น GZIP และ BZIP2 เพราะคุณมักจะตั้งค่าความแรงของการบีบอัดหนึ่งครั้งสำหรับการถ่ายโอนทั้งหมดและบางครั้งสตรีมข้อมูลของฉันนั้นง่ายมากบางครั้งยากที่จะบีบอัด - นี่ทำให้กระบวนการ และบางครั้งแบนด์วิดท์ underutilized
มีโปรแกรมบีบอัดที่จะปรับให้เข้ากับ CPU / แบนด์วิดท์ปัจจุบันและกดจุดที่น่าสนใจเพื่อให้การถ่ายโอนนั้นดีที่สุดหรือไม่? เหมาะอย่างยิ่งสำหรับ Linux แต่ฉันยังอยากรู้เกี่ยวกับการแก้ปัญหาทั้งหมด ฉันชอบที่จะเห็นบางสิ่งที่เข้ากันได้กับตัวขยายการบีบอัด GZIP / BZIP2 แต่ไม่จำเป็น
ดังนั้นฉันต้องการเพิ่มประสิทธิภาพการถ่ายโอนทั้งหมดไม่ใช่เพียงจำนวนไบต์ที่จะส่ง
นอกจากนี้ฉันไม่ต้องการการบีบอัดเวลาจริง ... การบีบอัดตามเวลาจริงก็เพียงพอแล้ว โฮสต์ปลายทางสามารถประมวลผลข้อมูลในภายหลังในเวลาว่าง ฉันรู้ว่าสิ่งนี้ไม่เปลี่ยนแปลงมากนัก (การบีบอัดมักจะใช้ CPU มากกว่าการคลายการบีบอัด) แต่ถ้ามีวิธีแก้ปัญหาที่สามารถใช้ข้อเท็จจริงนี้ได้ทั้งหมดจะดีกว่า
ทุกครั้งที่ฉันถ่ายโอนข้อมูลที่แตกต่างกันและฉันต้องการทำการถ่ายโอนแบบครั้งเดียวเหล่านี้โดยเร็วที่สุด ดังนั้นฉันจะไม่ได้รับประโยชน์จากการถ่ายโอนหลายครั้งเร็วขึ้นเนื่องจากแรงบีบอัดที่มากขึ้น
ขอบคุณ