ডিরেক্টরি প্রতি ফাইল সংখ্যা


19

আমার প্রায় 100000 ছোট ফাইলের সাথে একটি ডিরেক্টরি রয়েছে (প্রতিটি ফাইলের 1-3 টি লাইন থাকে, প্রতিটি ফাইল একটি পাঠ্য ফাইল)। আকারে ডিরেক্টরিটি খুব বড় নয় (<2 জিবি)। এই ডেটা পেশাদারভাবে পরিচালিত এনএফএস সার্ভারে থাকে। সার্ভারটি লিনাক্স চালায়। আমি মনে করি ফাইল সিস্টেমটি ext3, তবে আমি নিশ্চিতভাবে জানি না। এছাড়াও, সার্ভারে আমার রুট অ্যাক্সেস নেই।

এই ফাইলগুলি একটি বৃহত আকারের বৈজ্ঞানিক পরীক্ষার আউটপুট, যার উপর আমার নিয়ন্ত্রণ নেই। তবে আমাকে ফলাফল বিশ্লেষণ করতে হবে।

এই ডিরেক্টরিতে যে কোনও আই / ও অপারেশন / প্রক্রিয়াজাতকরণ খুব, খুব ধীর। একটি ফাইল খোলা (পাইথন ফপেন), একটি খোলা ফাইল থেকে পড়া, একটি ফাইল বন্ধ করা, সবই খুব ধীর। বাশ এলএস, ডু ইত্যাদিতে কাজ করে না।

প্রশ্ন হচ্ছে:

লিনাক্সের ডিরেক্টরিতে এমন কোনও ফাইলের সর্বাধিক সংখ্যা কীভাবে প্রসেসিং, ফোপেন, রিডিং ইত্যাদি করা ব্যবহারিক? আমি বুঝতে পারি যে উত্তরটি অনেকগুলি বিষয়ের উপর নির্ভর করে: fs টাইপ, কার্নেল সংস্করণ, সার্ভার সংস্করণ, হার্ডওয়্যার ইত্যাদি I আমি যদি সম্ভব হয় তবে কেবল থাম্বের একটি নিয়ম চাই।


6
আপনার সরাসরি প্রশ্নের উত্তর গাইলস দ্বারা ভালভাবে দেওয়া হয়েছিল, তবে সর্বোপরি, আপনি যখন ডাটা-এর ক্ষুদ্র বিটের কী হিসাবে ফাইলের নাম ব্যবহার করেন তখন লিনাক্স ফাইল সিস্টেমগুলি ডাটাবেসের জন্য দুর্বল বিকল্প তৈরি করে। আপনি প্রজন্মকে নিয়ন্ত্রণ করেন না, তবে বিশ্লেষণে আরও প্রসারণযোগ্য ফর্ম হিসাবে আপনি ডেটা পোস্ট-প্রক্রিয়া করতে পারেন; যদি আপনি এটি না করেন তবে আপনি প্রতিটি পদক্ষেপে ফাইল সিস্টেমকে ওভারহেড প্রদান করবেন। আপনি ওভারহেড হ্রাস করতে পারেন তবে আপনি যদি এটি এড়িয়ে যান তবে আপনি সবচেয়ে বেশি সুখী হতে পারেন।
এমএসডব্লু

উত্তর:


22

আপনি যেমন লক্ষ করেন, এটি অনেকগুলি বিষয়, সাধারণত ফাইল সিস্টেমের ধরণ এবং বিকল্পগুলি এবং কিছু পরিমাণে কার্নেলের সংস্করণে নির্ভর করে। Ext2 / ext3 / ext4 সিরিজে, dir_indexবিকল্পটি উপস্থিত হওয়ার পরে একটি বড় উন্নতি হয়েছিল (ext3 এর প্রাথমিক প্রকাশের কিছু সময় পরে) এটি ডিরেক্টরিগুলি লিনিয়ার তালিকার পরিবর্তে অনুসন্ধান গাছ (লোগারিথমিক সময় অ্যাক্সেস) হিসাবে সংরক্ষণ করে (লিনিয়ার সময় অ্যাক্সেস) )। এটি আপনি এনএফএস-এর মাধ্যমে দেখতে পাচ্ছেন না তবে অ্যাডমিনদের সাথে আপনার কিছু যোগাযোগ থাকলে আপনি তাদের চালনার জন্য বলতে পারেন tune2fs -l /dev/something |grep features(এমনকি তাদের আপগ্রেড করতে রাজি?) কেবল ফাইলগুলির সংখ্যা তাদের আকার নয় matters

এমনকি dir_index, 100000 বড় মনে হয়। আদর্শভাবে, এমন প্রোগ্রামের লেখকগণ পান যা উপ-ডিরেক্টরিগুলির একটি স্তর যুক্ত করার জন্য ফাইলগুলি তৈরি করে। কোনও কর্মক্ষমতা হ্রাসের জন্য, আমি ext2 বা ext3 ছাড়াই dir_indexএবং প্রতি 20000 বা রিসফার্স ছাড়া 20000 প্রতি ডিরেক্টরি প্রতি 1000 ফাইলের সীমা প্রস্তাব করব dir_index। ফাইলগুলি কীভাবে তৈরি করা হয় আপনি যদি তা নিয়ন্ত্রণ করতে না পারেন তবে অন্য কিছু করার আগে এগুলি পৃথক ডিরেক্টরিতে সরান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.