ฉันงุนงงกับเรื่องนี้ไหม? เหตุใด rsync จึงเร็วกว่า scp rsync ไม่ใช้ scp ด้านล่างหรือทำสิ่งที่มีประสิทธิภาพมากกว่านี้หรือไม่ มีวิธีการเพิ่มความเร็วของ SCP หรือไม่
ฉันงุนงงกับเรื่องนี้ไหม? เหตุใด rsync จึงเร็วกว่า scp rsync ไม่ใช้ scp ด้านล่างหรือทำสิ่งที่มีประสิทธิภาพมากกว่านี้หรือไม่ มีวิธีการเพิ่มความเร็วของ SCP หรือไม่
คำตอบ:
Rsync จะเร็วกว่า scp อย่างชัดเจนหากเป้าหมายมีไฟล์ต้นฉบับบางไฟล์อยู่แล้วเนื่องจาก rsync คัดลอกความแตกต่างเท่านั้น แต่ฉันสงสัยว่าคำถามของคุณเกี่ยวกับการทำสำเนาตรงไปยังเป้าหมายที่ว่างเปล่า
คุณได้ส่ง-z
ตัวเลือกไปที่rsync
; สิ่งนี้จะเปิดการบีบอัด หากแบนด์วิดท์เครือข่ายเป็นปัจจัย จำกัด (บ่อยครั้ง) การบีบอัดสามารถปรับปรุงความเร็วการถ่ายโอนได้ตามจำนวนที่เห็นได้ชัดเจน
นอกจากนี้คุณยังสามารถเปิดใช้งานการบีบอัดด้วยscp
โดยผ่าน-C
ตัวเลือก สิ่งนี้ควรเกี่ยวกับสิ่งต่าง ๆ ด้วย rsync การบีบอัดไม่ได้เปิดใช้งานโดยค่าเริ่มต้นใน ssh เพราะช่วยประหยัดแบนด์วิดท์ แต่เพิ่มความหน่วงแฝงและโอเวอร์เฮดของ CPU เวลาแฝงไม่ดีสำหรับเซสชันแบบโต้ตอบ (สิ่งนี้ไม่ได้ใช้scp
) และค่าใช้จ่ายของ CPU นั้นไม่มีประโยชน์หากไฟล์ที่คุณคัดลอกนั้นถูกบีบอัดอยู่แล้ว
รุ่นเก่าของrsync
rsh ใช้มากกว่า SSH เป็นชั้นการขนส่งเริ่มต้นเพื่อเปรียบเทียบยุติธรรมจะอยู่ระหว่างและrsync
rcp
แต่ ssh นั้นเป็นค่าเริ่มต้นตั้งแต่ 2.6.0 ที่เผยแพร่ใน 2004-01-01
ด้วยการตั้งค่าการบีบอัดที่เหมือนกันฉันคาดหวังrsync
และscp
มีความเร็วเท่ากัน กรุณาแบ่งปันมาตรฐานหากคุณพบว่าเป็นอย่างอื่น
rsync -z
ยังคงเป็นวิธีที่เร็วกว่าscp
การบีบอัดใด ๆ ที่แนะนำในคำตอบเหล่านี้เปิดใช้งาน มันยังเร็วกว่าการบีบอัดและจัดเก็บลงในไฟล์เดียวด้วยตนเองและscp
'ing ไฟล์นั้น ( scp
ด้วยการบีบอัดจะยิ่งช้ากว่านั้น) ดังนั้นคำถามของ OP ยังคงไม่มีคำตอบจริง: wth scp
นั้นช้ามากเมื่อเทียบกับrsync
?
ลองใช้ SCP ในวิธีที่รวดเร็ว
scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput' -c arcfour machine:file .
ตัวเลือกเหล่านี้เพิ่มความเร็ว scp 5 เท่าในการตั้งค่าของฉันเทียบกับเครื่องธรรมดา: ไฟล์
อัปเดต, 2017
จริงๆแล้ว scp ช้าเนื่องจากการจัดการรายละเอียด TCP ไม่ดีเช่น MTU และขนาดบัฟเฟอร์ โชคดีที่โครงการHPN SSHได้รับการแก้ไขแล้ว เพื่อความเข้าใจของฉันคุณสามารถใช้ HPN SSH เป็นวิธีการขนส่งสำหรับ rsync
scp -p
(เก็บรักษาวันที่ / เวลา) เป็นค่าเริ่มต้นและอาจ-r
(เรียกซ้ำ) scp -pr -C ...
เสมอ (ฉันแค่ต้องขัดและเริ่มงาน scp -p
มันเคยเป็นวิธีอื่น ๆ แต่ฉันเชื่อว่าความเร็วของ rsync ได้รับการปรับปรุงให้ดีขึ้นอย่างมากเมื่อไม่กี่ครั้งที่ผ่านมา ขึ้นอยู่กับจำนวนไฟล์ที่คุณคัดลอก หากเป็นจำนวนมาก rsync มักจะเร็วกว่าเนื่องจาก scp วางกระบวนการใหม่สำหรับแต่ละไฟล์ที่คุณกำลังคัดลอก คุณสามารถลองลดการใช้ตัวเลขศูนย์เพื่อดูว่ามันเร็วขึ้นหรือไม่ ครั้งสุดท้ายที่ฉันจำได้รหัส arcfour นั้นเร็วที่สุด
สำหรับไฟล์ขนาดเล็กจำนวนมาก rysnc นั้นเร็วกว่า scp พวกเขาบอกว่าเป็นเพราะมันมีค่าใช้จ่ายน้อย สำหรับไฟล์ขนาดใหญ่หนึ่งไฟล์ฉันคาดหวังผลลัพธ์ที่คล้ายกัน
สำหรับการทดสอบของฉันrsyncเร็วกว่าscpคุณสามารถใช้iotopเพื่อทดสอบการถ่ายโอนไฟล์เดียวกัน:
sudo iotop -o
บางทีคุณอาจได้ผลลัพธ์ที่แตกต่างกัน แต่คุณสามารถทดสอบได้ด้วยตนเอง BTW ในขณะที่ใช้scpอย่าตัดการเลือกเลขศูนย์โดย:
scp -c arcfour <source> <dest>
ในขณะที่arcfour
สามารถเพิ่มความเร็วในการเข้ารหัส
คุณกำลังคัดลอกไฟล์ทับไฟล์เดิมหรือไม่? ถ้าเป็นเช่นนั้นความสามารถของ rsync ในการบล็อกการเปรียบเทียบและคัดลอกความแตกต่างเท่านั้นจะเกี่ยวข้อง