ทำไม rsync ถึงเกิดกระบวนการหลายอย่างสำหรับฉัน


21

ฉันใช้คำสั่ง cron ต่อไปนี้เพื่อสำรองข้อมูลจากโฟลเดอร์หนึ่งไปยังโฟลเดอร์อื่นในเครื่องเดียวกัน:

19 21 * * * root  rsync -ac --delete /source/folder /dest/folder

เมื่อฉันใช้pstreeฉันเห็น cron แยกสามกระบวนการ

 ├─cron───cron───rsync───rsync───rsync

และ ps

 9972 ?        Ds     1:00 rsync -ac --delete /source/folder /dest/folder
 9973 ?        S      0:29 rsync -ac --delete /source/folder /dest/folder
 9974 ?        S      0:09 rsync -ac --delete /source/folder /dest/folder

เหตุใดจึงมีสามกระบวนการ ฉันสามารถ จำกัด เพียงหนึ่งเดียวได้หรือไม่


ทำไมคุณถึงสนใจ มันทำให้เกิดปัญหาประสิทธิภาพการทำงานใด ๆ ?
EEAA

2
ใช่ส่งผลกระทบต่อประสิทธิภาพเซิร์ฟเวอร์ของฉันและพวกเขาใช้ทรัพยากรบางอย่าง
Ryan

คำตอบ:


24

http://rsync.samba.org/how-rsync-works.html

Rsync ถูกไพพ์ไลน์อย่างหนัก ซึ่งหมายความว่าเป็นชุดของกระบวนการที่สื่อสารในทิศทางเดียว (ส่วนใหญ่) เมื่อรายการไฟล์ถูกแชร์ไปป์ไลน์จะทำงานเช่นนี้:
generator → sender → receiver

เอาต์พุตของตัวสร้างเป็นอินพุตสำหรับผู้ส่งและเอาต์พุตของตัวส่งเป็นอินพุตสำหรับตัวรับ แต่ละกระบวนการทำงานอย่างอิสระและล่าช้าเฉพาะเมื่อท่อส่งต่อหรือเมื่อรอทรัพยากรดิสก์ I / O หรือ CPU

คุณกำลังเรียกใช้ rsync โลคัล (ต้นทางและปลายทางเป็นระบบไฟล์โลคัล) ดังนั้นกระบวนการทั้งสามจะรันที่นั่น
ไม่มีอะไรที่คุณสามารถทำได้นี่คือการออกแบบ


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