Neden rsync benim için birden fazla işlem üretiyor?


21

Aynı makinede bir klasörden başka bir klasöre yedeklemek için aşağıdaki cron deyimini kullanıyorum:

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

Kullandığımda pstreecron'un üç sürece çatallı olduğunu görüyorum

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

Ve 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

Neden üç süreç var? Yalnızca bir taneyle sınırlayabilir miyim?


Neden umurunda? Performans sorunlarına neden oluyor mu?
EEAA

2
Evet, sunucu performansımı etkiliyorlar ve oldukça kaynak kullanıyorlar
Ryan

Yanıtlar:


24

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

Rsync çok fazla boru hattına sahiptir. Bu, (büyük ölçüde) tek yönlü bir şekilde iletişim kuran bir süreçler dizisi olduğu anlamına gelir. Dosya listesi paylaşıldıktan sonra, boru hattı şu şekilde davranır:
jeneratör → gönderen → alıcı

Jeneratörün çıkışı gönderen için, gönderenin çıkışı ise alıcı için girilir. Her işlem bağımsız olarak çalışır ve yalnızca boru hatları durduğunda veya disk G / Ç veya CPU kaynaklarını beklerken gecikir.

Yerel bir rsync çalıştırıyorsunuz (kaynak ve hedef yerel dosya sistemidir), bu nedenle üç işlem de orada çalışır.
Yapabileceğiniz hiçbir şey yok, bu tasarım gereğidir.


8
Sen süreçlerin sayısını sınırlama, ancak yapabilirsiniz kullanılan bant genişliğini sınırlamak. Makinesinin aynı disk / blok cihaza rsync okuma ve yazma tarafından tıkandığını varsayıyorum. '--Bwlimit' seçeneğini kullanmak bu durumda yardımcı olabilir.
JvO
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.