Birkaç gün önce biraz tuhaf bir şey farkettim (en azından benim için). Aynı veriyi kopyalayıp rsync'i çalıştırdım ve ardından NFS mount'a sildim /nfs_mount/TEST
. Bu /nfs_mount/TEST
barındırılıyor / ihraç ediliyor nfs_server-eth1
. Her iki ağ arabirimindeki MTU 9000'dir, aradaki anahtar jumbo çerçeveleri de destekler. Bunu yaparsam rsync -av dir /nfs_mount/TEST/
X MBps ağ aktarım hızını alıyorum. Bunu yaparsam rsync -av dir nfs_server-eth1:/nfs_mount/TEST/
ağ aktarım hızını en az 2X MBps olarak alıyorum. Benim NFS seçeneklerdir bağlama nfs rw,nodev,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountvers=3,mountproto=tcp
.
Alt satır: her iki transfer de aynı ağ alt ağı üzerinden, aynı kablolar, aynı arabirimler, aynı verileri okur, aynı dizine yazarlar, vb. Üzerinden gider.
İstemci Ubuntu 10.04, sunucu Ubuntu 9.10'dur.
Neden bu kadar hızlı? NFS bu hızda eşleşir mi?
Teşekkürler
Düzenleme: lütfen NFS paylaşımına veya SSH'ye NFS sunucusuna yazmak ve orada yerel olarak yazmak için rsync kullandığımı unutmayın. İki kere rsync -av
de temiz hedef dizini ile başlıyorum. Yarın düz kopya ile deneyeceğim.
Düzen2 (ek bilgi): Dosya boyutu 1KB-15MB arasındadır. Dosyalar zaten sıkıştırılmış, başarılı olmadan daha fazla sıkıştırmaya çalıştım. Bundan tar.gz
dosya yaptım dir
. İşte kalıp:
rsync -av dir /nfs_mount/TEST/
= en yavaş aktarım;rsync -av dir nfs_server-eth1:/nfs_mount/TEST/
= jumbo çerçeveleri etkinleştirilmiş en hızlı rsync; jumbo çerçeveler olmadan biraz daha yavaştır, ancak doğrudan NFS'ye göre çok daha hızlıdır;rsync -av dir.tar.gz nfs_server-eth1:/nfs_mount/TEST/
= tar.gz olmayan eşdeğeri ile aynıdır;
İle Testleri cp
ve scp
:
cp -r dir /nfs_mount/TEST/
= biraz daha hızlırsync -av dir /nfs_mount/TEST/
ancak yine de önemli ölçüde yavaşrsync -av dir nfs_server-eth1:/nfs_mount/TEST/
.scp -r dir /nfs_mount/TEST/
= genel olarak en hızlı, biraz üstesinden gelirrsync -av dir nfs_server-eth1:/nfs_mount/TEST/
;scp -r dir.tar.gz /nfs_mount/TEST/
= tar.gz olmayan eşdeğeri ile aynıdır;
Sonuç, bu sonuçlara dayanarak: Bu test için tar.gz large file veya pek çok küçük dosya kullanılıyorsa, önemli bir fark yoktur. Jumbo çerçeveleri açık veya kapalı da neredeyse hiç farketmez. cp
ve scp
kendi rsync -av
eşdeğerlerinden daha hızlıdır . Dışa aktarılan NFS paylaşımına doğrudan yazmak, kullanılan yönteme bakılmaksızın, SSH üzerinden aynı dizine yazmaktan önemli ölçüde yavaştır (en az 2 kez).
Arasındaki farklar cp
ve rsync
bu durumda ilgili değildir. Ben denemeye karar verdi cp
ve scp
2X farkı - Aynı model göstermek ve yaptıkları sadece görmek için.
Kullandığım rsync
veya cp
her iki durumda da, NFS'nin aynı komutların SSH üzerinden aktarım hızına ulaşmasını neyin engellediğini anlayamıyorum.
NFS paylaşımına yazma neden SSH üzerinde aynı yere yazmaktan 2 kat daha yavaş?
Edit3 (NFS sunucu / etc / ihracat seçenekleri): rw,no_root_squash,no_subtree_check,sync
. Müşterinin / proc / mounts gösterileri: nfs rw,nodev,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountvers=3,mountproto=tcp
.
Hepinize teşekkür ederim!