rsync ที่ดีบนเครื่องระยะไกล


25

เมื่อใช้ rsync + ssh เพื่อเข้าถึงเครื่องระยะไกลมีวิธี "ดี" กระบวนการ rsync บนเครื่องระยะไกล (เพื่อลดความสำคัญ)

การแก้ไขคำถามเพื่อชี้แจง:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
backups  16651 86.2  0.1   3576  1636 ?        Rs   11:06   0:06 rsync --ser...

(สาย rsync ถูกตัดออก)

นี่เป็นงาน cron สำรองที่โดยปกติแล้วจะทำงานตอนตีสี่ แต่เมื่อฉันตื่นขึ้นมา (และกระทำหรือใช้ Bugzilla ที่โฮสต์อยู่ในเครื่องเดียวกัน) มันจะฆ่าประสิทธิภาพเซิร์ฟเวอร์ดังนั้นฉันจึงต้องการแฮ็ค "แฮ็ค" ที่รวดเร็วเพื่อลองแก้ไข มันเป็นบิต

คำตอบ:


35

คุณสามารถใช้--rsync-pathตัวเลือกเช่น

rsync --rsync-path="nice rsync" foo remotebox:/tmp/

15
คุณอาจพิจารณาใช้ioniceด้วยเช่น--rsync-path="ionice -c 3 nice rsync"กันแม้ว่า Linux ที่ทันสมัยจะลดระดับความสำคัญของ IO สำหรับกระบวนการที่ดีโดยอัตโนมัติ (ดูหน้า man ที่ฉันเชื่อมโยง)
Jo Liss

ฉันลองแล้ว แต่ sshd ของฉันยังคงทำงานอยู่nice 0
Felipe Alvarez

บน FreeBSD เช่นระบบที่คุณไม่มีioniceการตั้งค่า--bwlimitตัวเลือกนั้นดีสำหรับ nicer rsync
deed02392

1
ฉันมีปัญหากับตัวเลือกนี้ไม่ได้สร้างความแตกต่างใด ๆ มันกลับกลายเป็นว่าเซิร์ฟเวอร์ที่ฉันกำลังเชื่อมต่ออยู่ได้รับการกำหนดค่าใน authorized_keys เพื่อยอมรับเฉพาะคำสั่ง rsync ที่--rsync-pathระบุตัวเลือกที่ฉันระบุ
Andy Beverley

7
  • ใช้--rsync-pathตัวเลือกที่คุณมีrsync --rsync-path="ionice -c 3 nice -n 12 rsync" localDirectory remoteHost:/tmp/
  • สละตัวเลือกการตั้งค่าไฟล์คุณสามารถเปลี่ยนหรือ uncomment ในแฟ้มคุ้มค่าและคุ้มค่า/etc/default/rsyncRSYNC_NICE='17'RSYNC_IONICE='-c3'

สำหรับค่าioniceทั้งสองจะมีลำดับความสำคัญของฮาร์ดดิสก์

  • 1 -> เรียลไทม์
  • 2 -> ความพยายามที่ดีที่สุด
  • 3 -> Ildle (เมื่อกระบวนการอื่นไม่ได้ใช้ HD)

โปรดทราบว่าสำหรับตัวcfqจัดตารางเวลาเท่านั้น Linux ใช้คลาสและลำดับความสำคัญของ IO จริงๆ ถ้าผู้ดูแลระบบระยะไกลได้เลือกที่จะจัดตารางเวลา IO noop, deadlineหรือบางส่วนที่แตกต่างแปลกใหม่มากขึ้นคุณอาจพบว่าioniceมันไม่ทำอะไรเลย หนึ่งควรจะสามารถที่จะได้รับประสิทธิภาพสูงจากcfqและยังคงสามารถที่จะใช้เรียน IO และลำดับความสำคัญโดยการปรับแต่ง CFQ อย่างถูกต้อง

สำหรับค่าniceสำหรับตัวประมวลผลลำดับความสำคัญ

  • -20 (ดีที่สุดในกระบวนการ)
  • (ค่าเริ่มต้น 10) หากไม่ได้ระบุ -n
  • 19 (อย่างน้อยเป็นประโยชน์ต่อกระบวนการ)

ใครเป็นผู้รับผิดชอบ/etc/default/rsync? rsync กำลังอ่านไฟล์นี้อยู่หรือไม่หรือทำโดย linux-flavor / distribution
guettli

... ฉันคิดว่าฉันพบวิธีแก้ปัญหา/etc/default/rsyncคือไฟล์ค่าเริ่มต้นสำหรับโหมด rsync daemon ฉันเดาว่ามันใช้ได้เฉพาะถ้าคุณเชื่อมต่อกับ rsync daemon ผ่าน rsync-protocol ฉันเดาว่ามันใช้ไม่ได้ถ้าคุณเรียกมันผ่าน ssh
guettli

2

วิธีแก้ปัญหาที่รวดเร็วและสกปรกคือการสร้างสคริปต์ตัวห่อเล็ก ๆ ที่เรียกว่า 'rsync' ซึ่งจะฉายเงา $ PATH ก่อนไบนารี rsync จริงเช่น:

#!/bin/sh
nice -10 /path/to/proper/rsync $*

หรือตั้งค่าไฟล์ authorized_keys เพื่อให้มันทำงานได้อย่างมีประสิทธิภาพของ rsync (สมมติว่าคุณกำลังใช้ปุ่ม ssh)

ตัวอย่าง:

command=”/home/user/bin/nice-rsync.sh" ssh-dss asdf....

ตอนนี้ใน /home/user/bin/nice-rsync.sh ของคุณ

#!/bin/sh
case $SSH_ORIGINAL_COMMAND in
  rsync\ --server*)
    nice -10 $SSH_ORIGINAL_COMMAND
    ;;
  *)
    $SSH_ORIGINAL_COMMAND
    ;;
esac

HTH


2

คุณสามารถปิดใช้งานการบีบอัดตามเครือข่ายโดยไม่รวม-zอาร์กิวเมนต์ที่อาจช่วยประหยัดเวลาของ CPU ทั้งสองด้าน หรือเปลี่ยนวิธีที่ rsync ใช้ checksums ลองดู--checksum


ฉันยอมรับคำตอบของ Hasturkun (เพราะมันตอบคำถามของฉัน) แต่คุณได้ข้อสรุปที่ดี: ฉันเปรียบเทียบกับการบีบอัดกับไม่มีการบีบอัดและเพิ่มเพียง 2 นาทีกับงาน ฉันเพิ่งเคยชินกับการใช้ -avz เป็นธงของฉันซึ่งฉันไม่เคยคิดที่จะวาง -z
mwalling

นิสัยของฉันคือการใช้ -aPh ฉันไม่ค่อยใช้ -z
Rory

0

Rsync ไม่ควรใช้ CPU มาก ฉันสงสัยว่าคุณสามารถบังคับความสวยงามบางอย่างได้จากส่วนอื่น ๆ แต่สิ่งที่คุณทำได้คือ จำกัด แบนด์วิดท์ที่ rsync ใช้กับไฟร์วอลล์ซึ่งท้ายที่สุดจะลดจำนวนการประมวลผลที่ทำได้ในเวลา X


เพิ่มเอาท์พุทบางส่วนจาก 'ps aux' เพื่อแสดงว่ามันทำอะไรไปถึงซีพียู ฉันกำลังจะผ่านลิงค์ช้าดังนั้นฉันจึงเปิดตัวเลือก - บีบอัด แต่ก็ทำให้การเข้าถึงดิสก์ในปริมาณที่ดีซึ่งฉันหวังว่าจะล้มลงโดยใช้ดี (ผลข้างเคียงที่ไม่ได้ตั้งใจ)
mwalling

การตั้งค่าที่ดีมักจะส่งผลกระทบต่อความอ่อนโยนของ I / O ซึ่งเป็นสิ่งที่บางคนมักต้องการ
Bram Schoenmakers

rsyncไม่จำเป็นต้องใช้ CPU มาก แต่มันอาจปรากฏขึ้นในtopอย่างไรก็ตามขึ้นอยู่กับว่าเคอร์เนลปัจจุบันพิจารณา I / O รอเป็นไม่ว่าง นอกจากนี้หากกระบวนการอื่นใดจำเป็นต้องเข้าถึงที่เก็บข้อมูลและrsyncได้รับอนุญาตให้ทำงานได้อย่างเต็มที่กระบวนการอื่น ๆ ทั้งหมดจะช้าลงตามผลลัพธ์
Mikko Rantalainen

-7

ฉันไม่คิดอย่างนั้นคุณต้องการโซลูชันที่กำหนดเองสำหรับ .. ใช้ ftp


6
คุณก็รู้นั่นเป็นความคิดที่ดี ใครต้องการคุณสมบัติทั้งหมดของ rsync เช่นความสามารถในการเรียกใช้ผ่าน ssh โดยไม่จำเป็นต้องมี daemon ที่ทำงานบนเครื่องระยะไกล (และการเข้ารหัสโดยธรรมชาติของ ssh), การบีบอัดการถ่ายโอนการดาวน์โหลดต่อการถ่ายโอนความแตกต่างเท่านั้น บวม ตอนนี้ฉันจะวิ่งกลับบ้านแล้วใช้ PS / 2 System 60 เพื่อ FTP อนิเมะ!
mwalling

โปรดลบคำตอบนี้เนื่องจากไม่สามารถตอบคำถามและเสนอทางเลือกอื่นที่แย่กว่าตัวอย่างในคำถาม
user1133275
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.