Soru Rsync neden benim için birden çok süreç üretiyor?


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

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

Kullandigimda pstree, Cron'un üç süreci çatal ettiğini gördüm.

 ├─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ç vardır? Sadece bir tane ile sınırlayabilir miyim?


15
2017-10-19 04:44


Menşei


Neden umurunda? Herhangi bir performans sorununa neden oluyor mu? - EEAA
Evet, sunucu performansımı etkile ve oldukça fazla kaynak kullanıyorlar - Ryan


Cevaplar:


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

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

Jeneratörün çıkışı gönderici için girilir ve gönderenin çıkışı 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ı için beklerken geciktirilir.

Yerel bir rsync çalıştırıyorsunuz (kaynak ve hedef yerel dosya sistemi), böylece üç sürecin hepsi orada çalışır.
Yapabileceğiniz hiçbir şey yok, bu tasarım gereğidir.


18
2017-10-19 09:09



Süreç sayısını sınırlayamazsın, ama sen kutu Kullanılan bant genişliğini sınırlar. Makinenin rsync'in okuma ve yazmayla aynı disk / blok cihazına yazıldığını varsayardım. Bu durumda '--bwlimit' seçeneğini kullanmak yardımcı olabilir. - JvO