Bu soruya ve bu soruya baktım , ancak gördüğüm belirtileri ele almıyorlar.
Bir hücresel ağ üzerinden aktarmaya çalışıyorum büyük bir günlük dosyası (yaklaşık 600 MB) var. O sadece eklenmiş bir günlük dosyası olduğu için sadece INSERT ile SQLite veritabanında aslında olmasına rağmen (Öyle olmadığını, gerçekleştirildiği oldukça bu kadar basit olarak, ama en son 4k sayfa haricinde (ya da belki bir Dosya bağlantısı her zaman ölçüldüğünden, sadece değişikliklerin (ve sağlama toplamlarının iletilmesi gereken) gerçekte gönderilmesi önemlidir.
Yine de ölçülmemiş bir bağlantıda (örn. Ücretsiz wifi hotspot) bir test yaptığımda gözlemlenen veya bildirilen bir hızlanma veya azaltılmış veri aktarımı görmüyorum. Yavaş bir WiFi bağlantısı üzerinden, aktarımın yaklaşık 20 dakika süreceğini bildiren 1MB / s veya daha az sırada görüyorum. Hızlı bir WiFi bağlantısı üzerinden tekdüze daha hızlı bir hız görüyorum, ancak hızlanma raporu yok ve ikinci bir aktarma denemesi (şimdi iki dosya aynı olduğu için daha hızlı olmalı) artık herhangi bir fark gösteriyor.
Kullanıyorum (hassas bilgileri kaldırmak için dezenfekte) komutu:
rsync 'ssh -p 9999' --progress LogFile michael@my.host.zzz:/home/michael/logs/LogFile
Sonunda aldığım çıktı şöyle görünür:
LogFile
640,856,064 100% 21.25MB/s 0:00:28 (xfr$1, to-chk=0/1)
Herhangi bir hızlanma söz konusu değildir.
Sorunun aşağıdakilerden biri olabileceğinden şüpheleniyorum:
- Bazı komut satırı seçeneği eksik. Ancak, man sayfasını yeniden okumak, delta aktarımlarının varsayılan olarak etkin olduğunu gösteriyor: Yalnızca bunları devre dışı bırakma seçeneklerini görüyorum.
- Sunucu sadece ssh izin veren bir güvenlik duvarının arkasında olması nedeniyle ss (standart olmayan bir bağlantı noktasında bile) üzerinden rsync kullanıyorum. Yine de rsync arka plan programı çalışmıyorsa delta transferlerinin çalışmadığını söyleyen bir şey görmedim. Ben ":" yerine "::" gösterimini kullanmayı denedim ama man sayfası bir "modül" ne olduğu hakkında çok net değil ve benim komut geçersiz bir modül belirttiği için reddedildi.
Aşağıdakileri dışladım:
- yerel ağda yapılmayan delta aktarımı. İnternetten transfer gerçekleştirmeye çalıştığım için reddedildi
- sağlama toplamı hesabı nedeniyle ek yük. Bu davranışı hem hızlı hem de yavaş bir Wifi bağlantısında gördüm ve aktarım hızı hesaplama işlemine bağlı görünmüyor.
rsync --stats
de -v -v
kullanabilirsiniz. Rsync size ne kadar eşleşen ve eşleşmeyen verilerin olduğunu söyleyecektir.
but with the exception of the last 4k page (or maybe a few) the file is identical each time.
Bunu gerçekten ile doğruladınızcmp
mı? Ya da daha iyisi,xdelta
ya da bir şey? Aktarım boyutunu gerçekten küçültmek istiyorsanız, eski ve yeni sürümleri yerel olarak saklayın, böylece yerel olarak (rsync dışında bir şeyle) en az ikili bir ikili fark hesaplayabilir ve ölçülü bağlantı üzerinden sağlama toplamı göndermek zorunda kalmadan gönderebilirsiniz. Bunu derobert'in önerdiği gibi ikili dosya seviyesi yerine veritabanı kaydı düzeyinde yapmak daha da iyidir.