ฉันต้องการถ่ายโอนไฟล์KVM vdisk ขนาด 20 GB จัดเก็บระบบไฟล์รูทของ CentOS 6.5 VM จากเซิร์ฟเวอร์ห้องปฏิบัติการหนึ่งไปยังอีกห้องหนึ่ง ขนาดไฟล์ขนาดใหญ่และความจริงที่ฉันเคยบีบอัดไฟล์ vdisk ไปหลายร้อยล้านไบต์ทำให้ฉันเปิดใช้งานการบีบอัดด้วยสัญชาตญาณscp
แต่ฉันแปลกใจที่เห็นความเร็วในการถ่ายโอนค่อนข้างต่ำ จากนั้นฉันก็ลองใช้bzip2
ร่วมกับssh
และcat
และก็ตกใจ นี่คือบทสรุปของวิธีการและปริมาณงานเฉลี่ย
scp -C vm1-root.img root@192.168.161.62:/mnt/vdisks/
, 11 MB / sbzip2 -c vm1-root.img | ssh -l root 192.168.161.62 "bzip2 -d -c > /mnt/vdisks/vm1-root.img"
5 MB / s แม้ผลลัพธ์ที่ต่ำกว่านี้จะได้รับการค้นหาบนอินเทอร์เน็ตscp -c arcfour -C vm1-root.img root@192.168.161.62:/mnt/vdisks/
, 13 MB / s คำแนะนำการใช้นี้-c arcfour
ให้เป็นหนึ่งในคำตอบบน serverfault มันช่วยไม่ได้เลย ในที่สุดฉันปิดการใช้งานการบีบอัดscp vm1-root.img root@192.168.161.62:/mnt/vdisks/
23 MB / s
ไม่ควรบีบอัดข้อมูลเร็วกว่านี้หรือ
แก้ไข: ฉันไม่รู้ว่าทำไมคำถามถูกลดระดับลง ฉันคิดว่ามีบางอย่างที่ต้องเรียนรู้ที่นี่
หลังจากได้รับssh(1)
เคล็ดลับ man page จาก @sven ฉันได้ลองวิธีการถ่ายโอนไฟล์สองทางเลือกที่ไม่เกี่ยวข้องกับการบีบอัดทั้งสองด้วยผลลัพธ์ที่ดีกว่า
cat vm1-root.img | ssh -l root 192.168.161.62 "cat > /mnt/vdisks/vm1-root.img"
26 MB / snc -l 5678 > /mnt/vdisks/vm1-root.img
บนตัวรับและnc 192.168.161.62 5678 < vm1-root.img
ตัวส่ง 40 MB / s พอร์ต5678
นั้นเป็นพอร์ตที่ มีให้โดยพลการ
ใช้nc
เป็นวิธีการคัดลอกที่เร็วที่สุด!
ในอดีตscp -C
ทำงานได้ดีมากเมื่อใดก็ตามที่ฉันคิดว่ามันจะ ตัวอย่างเช่นเมื่อถ่ายโอน syslogs ( /var/log/messages*
) ขนาดไม่กี่ GB อัตราการถ่ายโอนที่ไม่บีบอัดไม่กี่ร้อย KB / s จะเพิ่มขึ้นเป็น 1-2 MB / s ตัวอย่างนี้อยู่ในกรณีของการเชื่อมต่อที่ช้าตามที่ได้อธิบายไว้ใน man page
ฉันมีกรณีที่ภาพ vdisk ที่สร้างขึ้นใหม่สำหรับพาร์ติชัน 20 GB มีขนาดบีบอัดเพียง 200 MB ด้วยอัตราการถ่ายโอนประมาณ 25 MB / s เราสามารถทำสำเนาได้ในเวลาเพียง 8 วินาทีแทนที่จะใช้เวลามากกว่า 13 นาที! เห็นได้ชัดว่าscp
ไม่มีการบีบอัดจะไม่มีประสิทธิภาพในกรณีนี้และscp -C
ยิ่งแย่ลง
ฉันเดาว่าบทเรียนหลักที่เรียนรู้ที่นี่คือscp -C
ควรจะคิดว่าเป็นเพียงความสะดวกสบาย ถ้าไฟล์สามารถถูกบีบอัดได้อย่างมีนัยสำคัญมันจะเป็นการดีกว่าถ้าจะบีบอัดไฟล์บนแหล่งที่มาก่อนถ่ายโอนแบบฟอร์มที่ถูกบีบอัดและสุดท้ายบีบอัดที่ปลายทาง เครื่องมือที่ใช้ในการบีบอัดและคลายการบีบอัดอย่างรวดเร็ว (เช่นpbzip2 ) จะช่วยได้มากขึ้น