मेरे पास सिफारिश करने के लिए कोई विकल्प नहीं है, लेकिन मैं कैसे sshfs को तेज करने के लिए सुझाव प्रदान कर सकता हूं:
sshfs -o cache_timeout=115200 -o attr_timeout=115200 ...
जब आप पहले से ही अपने सत्र में पुनर्प्राप्त की गई फ़ाइलों के लिए सामग्री या अनुमतियों को पढ़ने का प्रयास कर रहे हैं, तो आपको कुछ दौर की यात्रा अनुरोधों से बचना चाहिए।
sshfs स्थानीय रूप से डिलीट और परिवर्तन का अनुकरण करता है, इसलिए स्थानीय मशीन पर किए गए नए बदलाव बड़े समय समाप्ति के बावजूद तुरंत दिखाई देने चाहिए, क्योंकि कैश्ड डेटा स्वचालित रूप से हटा दिया जाता है।
लेकिन इन विकल्पों की सिफारिश नहीं की जाती है यदि दूरस्थ फ़ाइलों को जानने के बिना स्थानीय मशीन को अपडेट किया जा सकता है, उदाहरण के लिए एक अलग उपयोगकर्ता या दूरस्थ ssh शेल। उस स्थिति में, कम समय समाप्त होना बेहतर होगा।
यहां कुछ और विकल्प दिए गए हैं, जिनके साथ मैंने प्रयोग किया है, हालांकि मुझे यकीन नहीं है कि उनमें से किसी ने मतभेद किया है:
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"
आपको उसके जवाब में मीताई द्वारा सुझाए गए विकल्पों की भी जांच करनी चाहिए ।
प्रत्यावर्तन
मेरे वर्कफ़्लो में सबसे बड़ी समस्या यह है कि जब मैं कई फ़ोल्डर्स को पढ़ने की कोशिश करता हूं, उदाहरण के लिए एक गहरे पेड़ में, क्योंकि sshfs प्रत्येक फ़ोल्डर के लिए अलग से एक गोल यात्रा अनुरोध करता है। यह वह अड़चन भी हो सकती है जिसे आप ग्रहण के साथ अनुभव करते हैं।
समानांतर में कई फ़ोल्डरों के लिए अनुरोध करने से इसके साथ मदद मिल सकती है, लेकिन अधिकांश ऐप ऐसा नहीं करते हैं: वे कम-विलंबता वाले फाइल सिस्टम के लिए डिज़ाइन किए गए थे, जो आगे की कैशिंग के साथ थे, इसलिए वे अगले पर जाने से पहले एक फ़ाइल स्टेट को पूरा करने की प्रतीक्षा करते हैं। ।
Precaching
लेकिन कुछ sshfs दूरस्थ फ़ाइल सिस्टम पर आगे देखने के लिए हो सकते हैं , इससे पहले कि मैं उनसे अनुरोध करूं, वे फ़ोल्डर आँकड़े एकत्र करें और जब कनेक्शन तुरंत कब्जा न हो तो उन्हें मुझे भेजें। यह अधिक बैंडविड्थ का उपयोग करेगा (लुकहेड डेटा से जो कभी उपयोग नहीं किया जाता है) लेकिन गति में सुधार कर सकता है।
हम sshfs को आपके कार्य को शुरू करने से पहले, या पृष्ठभूमि में भी, जब आपका कार्य पहले से ही चल रहा हो, तब इसे चलाकर, कुछ रीड-फॉरवर्ड कैशिंग करने के लिए बाध्य कर सकते हैं:
find project/folder/on/mounted/fs > /dev/null &
यह सभी निर्देशिका प्रविष्टियों को प्री-कैश करना चाहिए, बाद में दौरों से कुछ ओवरहेड को कम करना। (निश्चित रूप से, आपको बड़े टाइमआउट का उपयोग करने की आवश्यकता है, जैसे कि मैंने पहले प्रदान किया था, या यह कैश्ड डेटा आपके ऐप तक पहुँचने से पहले ही साफ़ हो जाएगा।)
लेकिन find
इसमें काफी समय लगेगा। अन्य ऐप्स की तरह, यह अगले एक का अनुरोध करने से पहले एक फ़ोल्डर से परिणामों की प्रतीक्षा करता है।
विभिन्न फ़ोल्डरों में कई खोज प्रक्रियाओं को पूछकर समग्र समय को कम करना संभव हो सकता है। मैंने यह देखने के लिए परीक्षण नहीं किया है कि क्या यह वास्तव में अधिक कुशल है। यह निर्भर करता है कि sshfs समानांतर में अनुरोधों की अनुमति देता है या नहीं। (मुझे लगता है कि यह करता है)
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 &
यदि आप फ़ाइल सामग्री को प्री-कैश करना चाहते हैं, तो आप यह कोशिश कर सकते हैं:
tar c project/folder/on/mounted/fs > /dev/null &
जाहिर है इसमें बहुत अधिक समय लगेगा, बहुत सारे डेटा को स्थानांतरित कर देगा, और आपको विशाल कैश आकार की आवश्यकता होगी। लेकिन जब यह हो जाता है, तो फ़ाइलों तक पहुंच अच्छा और तेज महसूस करना चाहिए।