Tavsiye edecek başka seçeneğim yok, ancak sshfs’i nasıl hızlandıracağınıza dair önerilerde bulunabilirim:
sshfs -o cache_timeout=115200 -o attr_timeout=115200 ...
Bu, oturumunuzda daha önce almış olduğunuz dosyaların içeriğini veya izinlerini okumaya çalışırken bazı gidiş dönüş isteklerinden kaçınmalıdır.
sshfs yerel olarak silmeleri ve değişiklikleri simüle eder; bu nedenle, önbellekteki veriler otomatik olarak düştüğünden, büyük zaman aşımına rağmen yerel makinede yapılan yeni değişiklikler hemen görünmelidir.
Ancak , uzak dosyalar yerel makine bilmeden, örneğin farklı bir kullanıcı veya bir uzak ssh kabuğu tarafından güncellenmeden güncellenebilirse, bu seçenekler önerilmez . Bu durumda, daha düşük zaman aşımları tercih edilebilir.
Bunlardan herhangi birinin bir fark yaratıp yaratmadığından emin olmasam da, denediğim birkaç seçenek daha var:
sshfs_opts="-o auto_cache -o cache_timeout=115200 -o attr_timeout=115200 \
-o entry_timeout=1200 -o max_readahead=90000 -o large_read -o big_writes \
-o no_remote_lock"
Meetai'nin cevabında önerdiği seçenekleri de kontrol etmelisiniz .
özyineleme
İş akışımdaki en büyük sorun, örneğin derin bir ağaçtaki birçok klasörü okumaya çalıştığım zamandır, çünkü sshfs her klasör için ayrı bir gidiş dönüş isteği gerçekleştirir. Bu, Eclipse ile yaşadığınız darboğaz da olabilir.
Paralel olarak birden fazla klasör için istekte bulunmak bu konuda yardımcı olabilir, ancak çoğu uygulama bunu yapmaz: okumaya devam etmeyi önbelleğe alma özelliğine sahip düşük gecikmeli dosya sistemleri için tasarlanmıştır, bu nedenle bir dosya statünün diğerine geçmeden önce tamamlanmasını beklerler .
precaching
Ancak, sshfs'in yapabileceği bir şey uzak dosya sisteminde ileriye bakmak , istediğimden önce klasör istatistiklerini toplamak ve bağlantı hemen meşgul olmadığında bana göndermektir. Bu daha fazla bant genişliği kullanır (hiç kullanılmamış göze çarpan verilerden) ancak hızı artırabilir.
Görevinize başlamadan önce veya göreviniz devam ederken bile arka planda çalışarak, sshfs'leri bir miktar önbellekleme yapmaya zorlayabiliriz:
find project/folder/on/mounted/fs > /dev/null &
Bu, tüm dizin girişlerini önbelleğe almalı ve daha sonra genel giderlerin bir kısmını gidiş gelişlerden azaltmalıdır. (Tabii ki, daha önce verdiğim gibi büyük zaman aşımlarını kullanmanız gerekir, aksi takdirde uygulamanız erişmeden önce bu önbelleğe alınmış veriler silinir.)
Ama bu find
uzun zaman alacak. Diğer uygulamalar gibi, bir sonrakini talep etmeden önce bir klasördeki sonuçları bekler.
Farklı klasörlere bakmak için çoklu bulma işlemlerini sorarak genel süreyi kısaltmak mümkün olabilir. Bunun gerçekten daha verimli olup olmadığını görmek için test etmedim. Sshfs'in paralel olarak isteklere izin verip vermediğine bağlıdır. (Bence öyle.)
find project/folder/on/mounted/fs/A > /dev/null &
find project/folder/on/mounted/fs/B > /dev/null &
find project/folder/on/mounted/fs/C > /dev/null &
Ayrıca, dosya içeriğini önbelleğe almak istiyorsanız, şunu deneyebilirsiniz:
tar c project/folder/on/mounted/fs > /dev/null &
Açıkçası, bu çok daha uzun sürecek, çok fazla veri aktaracak ve büyük bir önbellek boyutuna sahip olmanızı gerektirecek. Ancak bittiğinde, dosyalara erişmek kendilerini iyi ve hızlı hissetmelidir.