Neden rsync kendini çatallar? Ve neden böyle bir çatallı süreç neredeyse boşta (iotop'ta görüldüğü gibi)?


11

Bu, burada belirtilen konuya atıfta bulunuyor ve ben de aynısını yaşıyorum.

Sunucularımdan birinde, büyük bir dizini (300 Gb'den büyük) aynı makineye monte edilmiş farklı bir diske yedeklemek için bir rsync çalıştırdım. Rsynced dizini binlerce dizin ve dosya içerir. 'Nohup' ile tek bir rsync komutu verdim ve '&' komutunu kullanarak arka planda ittim. Uzak bash kabuğunda verilen tam komut (macun kullanarak):

nohup rsync -avh /some/local/dir /backup/ >> /opt/rsync.dec22.log &

Sonra sadece verilerin ne oranda kopyalandığını kontrol etmek için 'iotop' komutunu kullandım ve aynı parametrelerle çalışan 3 rsync olduğunu buldum. Arama yaparken yukarıda normal olduğunu söyleyen bağlantıyı buldum.

Ancak sadece sistemde çalışan tek rsync işlemlerini izlemek için bir iotop yaparak, bir işlemin dosyaları okuduğunu, birinin yazdığını, ancak birinin boşta olduğunu görüyorum. Davranış iyi gibi görünüyor, çünkü bir işlem bir seferde sadece bir şey yapıyor, ancak 3. işlem ne yapıyor (aşağıdaki resimde ortadaki gibi görünüyor)?

Kullandığım iotop komutu şuydu:

iotop -p22250 -p22251 -p22252

İşte iotop komut çıkışı için ekran görüntüsü:

3 rsync işlemini gösteren iotop komut çıkışı

Bu nedeni rsync'i çok kullandığımı ve uzun vadeli yarar için davranışını anlamak istediğimi soruyorum. El kitabını bile okudum, ama çataldan hiçbir şey söylemiyor.

Yanıtlar:


9

rsync bir istemci ve sunucu olarak tasarlanmış bir programdır. Sunucu okur ve istemci yazar. Tek bir bilgisayar yerine, ağ üzerinden bilgisayarlarınız olduğunu düşünün, bu şekilde düşünürseniz bunun çok daha açık olduğuna eminim.

Sonra denetleyici var. ES operasyonları belirli bir risk riski taşıdığından, bir ES sorunu tamamen engellenmeye veya çökmeye neden olmamalıdır. Böylece, her bağlantı için bir çatal oluşturur ve arka planda oturur.


Bilgi için teşekkürler. Ağdaki ayrı bilgisayarlar görünümünde anlıyorum, her bilgisayar senkronize çalışmanın bir parçasını yapıyor. Ama ayrıca beni rsync ve kavram hakkında daha fazla şey okuyabileceğim davranış belgelerine de başvurabilir misiniz? Ayrıca, okunan verilerin okuma işlemi tarafından yazma işlemine nasıl aktarıldığını bilmek ister misiniz? IPC kavramı kullanılıyor mu?
Gautam Somani

3
@GautamSomani Resmi rsync sayfası bunun için en iyi kaynak olacaktır. rsync.samba.org Ayrıca, nasıl çalıştığını burada bulabilirsiniz: rsync.samba.org/how-rsync-works.html Daha fazla ayrıntı istiyorsanız, muhtemelen kaynağa girmeniz gerekir.
Huysuz

Orijinal yazar rsync'i yerel olarak başlatır. Rsyncd'ye bağlanmıyor, bu yüzden daemon'un çocuğunu çatallamasına izin yok. Ve ağ bağlantısı yok. Bu nedenle, rsync'in yerel olarak yürütüldüğünde neden çatalları soruyor. Cevap yanıltıcı ve yanlış.
drookie

@drookie Yerel mi yoksa ağ üzerinden mi olduğu önemli değil. Aynı şekilde çalışır. Ayrıca, bu davranışı, yorumunuzun hemen üstünde bağladığım resmi dokümanda da açıklar.
Huysuz
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.