আমার কাছে সুপারিশ করার কোনও বিকল্প নেই, তবে এসএসএফএস কীভাবে গতি বাড়ানো যায় তার জন্য পরামর্শগুলি সরবরাহ করতে পারি:
sshfs -o cache_timeout=115200 -o attr_timeout=115200 ...
আপনি যখন আপনার সেশনে ইতিমধ্যে পুনরুদ্ধার করা ফাইলগুলির জন্য সামগ্রী বা অনুমতিগুলি পড়ার চেষ্টা করছেন তখন এটি রাউন্ড ট্রিপের অনুরোধগুলি এড়ানো উচিত।
sshfs স্থানীয়ভাবে মুছে ফেলা এবং পরিবর্তনগুলি সিমুলেট করে, তাই ক্যাশেড ডেটা স্বয়ংক্রিয়ভাবে বাদ দেওয়া হওয়ায় স্থানীয় মেশিনে নতুন পরিবর্তনগুলি তত্ক্ষণাত উপস্থিত হওয়া উচিত।
স্থানীয় মেশিন না জেনে যেমন দূরবর্তী ফাইলগুলি আপডেট করা হতে পারে তবে এই বিকল্পগুলির প্রস্তাব দেওয়া হয় না , যেমন কোনও পৃথক ব্যবহারকারী, বা একটি দূরবর্তী এসএসএস শেল। সেক্ষেত্রে লোড টাইমআউটগুলি পছন্দনীয় হবে।
এখানে আমি আরও কয়েকটি বিকল্প পরীক্ষা করে দেখলাম, যদিও আমি নিশ্চিত নই যে এগুলির মধ্যে কোনওরকম পার্থক্য হয়েছে কিনা:
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"
আপনি তার উত্তরে মেটাইয়ের দ্বারা প্রস্তাবিত বিকল্পগুলিও পরীক্ষা করে দেখুন ।
recursion
আমার ওয়ার্কফ্লোতে সবচেয়ে বড় সমস্যাটি হ'ল আমি যখন অনেকগুলি ফোল্ডার পড়ার চেষ্টা করি, উদাহরণস্বরূপ একটি গভীর গাছে, কারণ sshfs প্রতিটি ফোল্ডারের জন্য আলাদাভাবে একটি বৃত্তাকার ট্রিপ অনুরোধ সম্পাদন করে। এটি আপনার গ্রহণের ক্ষেত্রে বাধা হয়ে দাঁড়াতে পারে experience
সমান্তরালভাবে একাধিক ফোল্ডারগুলির জন্য অনুরোধ করা এটির সাথে সহায়তা করতে পারে তবে বেশিরভাগ অ্যাপ্লিকেশন সেগুলি করে না: সেগুলি রিড-ফরোয়ার্ড ক্যাচিং সহ কম-ল্যাটেন্সি ফাইল সিস্টেমগুলির জন্য ডিজাইন করা হয়েছিল, সুতরাং তারা পরবর্তী ফাইলটিতে যাওয়ার আগে একটি ফাইল স্ট্যাট সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে ।
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 &
স্পষ্টতই এটি আরও বেশি সময় নিবে, প্রচুর ডেটা স্থানান্তর করবে এবং আপনার বিশাল আকারের ক্যাশে আকারের প্রয়োজন requires তবে এটি শেষ হয়ে গেলে, ফাইলগুলিতে অ্যাক্সেস করা খুব সুন্দর এবং দ্রুত বোধ করা উচিত।