2 Linux sunucusu arasında çok iş parçacıklı dosya senkronizasyonu


9

Şu anda toplam 250GB 2.2 milyon dosya için rsync çalıştırıyorum ve bu sadece 6 saat içinde yaşları 700K dosyaları alır.

Herkes daha hızlı gider böylece birden çok iş parçacığı ile bunu yapabilirsiniz bir rsync gibi bir araç biliyor mu?


3
CPU'ya bağlı olduğunu varsaymak için herhangi bir nedeniniz var mı?
Chopper3

Hangi rsync seçeneklerini kullanıyorsunuz?
Kyle Smith

Ssh'yi taşıma olarak mı kullanıyorsunuz?
JimB

rsync -avSPp Ve CPU ya da Disk sorunu yok.
Tom van Ommen

Ve hiçbir SSH taşıma sadece daha hızlı olup olmadığını bilmiyorum web'de bir şey gördüm. Tüm dosyaları dizine eklemek zaten çok uzun zaman alıyor.
Tom van Ommen

Yanıtlar:


7

CPU'nun burada sınırlayıcı faktör olduğundan şüpheliyim. Büyük olasılıkla hem aktarım için ağ bant genişliği hem de disk G / Ç ile sınırlısınız; özellikle tüm bu stat çağrıları için gecikme.

Paralel işlemek için dosya sistemi hiyerarşisini daha küçük parçalara ayırabilir misiniz?

Kaynak dosyalar nelerdir ve ne yazıyor ya da değiştiriyor? Değişiklikleri uygulama düzeyinde gerçekleştikçe göndermek mümkün müdür?


Tümü varsayılan olarak gzip edilmiş Zarafa Ek dosyaları senkronize ediliyor. birden çok örnek çalıştırabilir ama 10 iş parçacığı daha az verimli. Ve ağ 1GBit ila 1GBit ama farklı veri merkezleridir, ancak bu bir sorun olmamalıdır. kaynak tarafında 24 SAS disk ve hedefte SSD ile akıllı depolama var.
Tom van Ommen

1
@Tom van Ommen - Neden CPU sınırlı olduğunuzu düşünüyorsunuz? Gerçekten CPU sınırlıysanız, birden çok işlem iş parçacıklarından daha az verimlidir?
JimB

1
Tom van Ommen, 10 işlem 10 iş parçacığından daha fazla yüke sahiptir; bununla birlikte, dişler arasındaki veri yapılarının kilitlenmesi bir kodlama kabusudur. Çoğunlukla birden fazla işlemin ortaya çıkması ve bununla birlikte yapılması genellikle (kodlayıcının zamanı için) çok daha verimlidir
Mike Pennington

1
@Guacamole - birden fazla iş parçacığı bazı durumlarda yardımcı olabilir, ancak bağlantısı doymuşsa, kaç tane iş parçacığı olursa olsun daha fazla zorlamayacaktır. Rsync, eşzamanlılık için iş parçacıkları kullanır ve IO'da dahili olarak engellemez.
JimB

1
@Guacamole - Belirttiğim tek şey, eğer ssh'yi bir taşıma olarak kullanıyorsa, verimi ssh'in kendisi ile sınırlıdır (HPN ssh yamalarını kullanmadığı sürece özellikle statik alma penceresi).
JimB

1

Alıcı sunucunun disk alt sistemi birden çok diske sahip bir diziyse, birden fazla rsync işlemi çalıştırmak performansı artırabilir. Gigabit Ethernet'i doyurmak için dosyaları bir NFS sunucusuna (raid grubu başına 6 diskli RAID6) kopyalamak için 3 rsync işlemi çalıştırıyorum.

Bu adam, birden fazla rsync sürecini ortaya çıkaran temel bir python koşum takımı hakkında rapor hazırlıyor http://www.reliam.com/company/featured_geek


Ne yazık ki bağlantı koptu. Tekrar bulabilir misin?
P.Péter

1

Buna benzer birçok soru okudum. Bence tek gerçek cevap kopyayı / taşıyı elle kırmak. IOps burada sorun olacak. Sizi daha iyi hissettirirse, 100 TB'ın üzerinde disk alanı tüketen ~ 200 milyon dosya taşıma sürecindeyim.


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.