Saya tidak punya alternatif untuk direkomendasikan, tetapi saya bisa memberikan saran untuk cara mempercepat sshfs:
sshfs -o cache_timeout=115200 -o attr_timeout=115200 ...
Ini harus menghindari beberapa permintaan pulang pergi ketika Anda mencoba membaca konten atau izin untuk file yang sudah Anda ambil sebelumnya di sesi Anda.
sshfs mensimulasikan penghapusan dan perubahan secara lokal, sehingga perubahan baru yang dibuat pada mesin lokal akan segera muncul, meskipun waktu habis yang besar, karena data yang di-cache dihapus secara otomatis.
Tetapi opsi ini tidak direkomendasikan jika file jarak jauh mungkin diperbarui tanpa mesin lokal mengetahui, misalnya oleh pengguna yang berbeda, atau shell ssh jarak jauh. Dalam hal itu, batas waktu lebih rendah akan lebih disukai.
Berikut adalah beberapa opsi yang saya coba, meskipun saya tidak yakin apakah ada di antara mereka yang membuat perbedaan:
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"
Anda juga harus memeriksa opsi yang direkomendasikan oleh Meetai dalam jawabannya.
Pengulangan
Masalah terbesar dalam alur kerja saya adalah ketika saya mencoba membaca banyak folder, misalnya di pohon yang dalam, karena sshfs melakukan permintaan perjalanan pulang pergi untuk setiap folder secara terpisah. Ini mungkin juga menjadi hambatan yang Anda alami dengan Eclipse.
Membuat permintaan untuk beberapa folder secara paralel dapat membantu dengan ini, tetapi sebagian besar aplikasi tidak melakukan itu: mereka dirancang untuk sistem file latensi rendah dengan cache baca-depan, jadi mereka menunggu satu file stat untuk diselesaikan sebelum pindah ke yang berikutnya .
Berkhotbah
Tetapi sesuatu yang sshf bisa lakukan adalah melihat ke depan pada sistem file jarak jauh, mengumpulkan statistik folder sebelum saya meminta mereka, dan mengirimkannya kepada saya ketika koneksi tidak segera terisi. Ini akan menggunakan lebih banyak bandwidth (dari data lookahead yang tidak pernah digunakan) tetapi dapat meningkatkan kecepatan.
Kami dapat memaksa sshfs untuk melakukan caching baca-depan, dengan menjalankan ini sebelum Anda memulai tugas Anda, atau bahkan di latar belakang saat tugas Anda sedang berjalan:
find project/folder/on/mounted/fs > /dev/null &
Itu harus pra-cache semua entri direktori, mengurangi beberapa overhead kemudian dari perjalanan pulang pergi. (Tentu saja, Anda perlu menggunakan batas waktu besar seperti yang saya berikan sebelumnya, atau data cache ini akan dihapus sebelum aplikasi Anda mengaksesnya.)
Tapi itu find
akan memakan waktu lama. Seperti aplikasi lain, ia menunggu hasil dari satu folder sebelum meminta yang berikutnya.
Dimungkinkan untuk mengurangi waktu keseluruhan dengan meminta beberapa proses pencarian untuk melihat ke folder yang berbeda. Saya belum diuji untuk melihat apakah ini benar-benar lebih efisien. Itu tergantung apakah sshf memungkinkan permintaan secara paralel. (Saya pikir begitu.)
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 &
Jika Anda juga ingin melakukan pra-cache konten file, Anda dapat mencoba ini:
tar c project/folder/on/mounted/fs > /dev/null &
Tentunya ini akan memakan waktu lebih lama, akan mentransfer banyak data, dan mengharuskan Anda untuk memiliki ukuran cache yang besar. Tetapi ketika sudah selesai, mengakses file harus terasa enak dan cepat.