কয়েক মিলিয়ন ছোট ফাইলের জন্য ফাইল সিস্টেম


44

নিম্নলিখিত দৃশ্যে আপনি কোন লিনাক্স ফাইল সিস্টেম সেরা গতির জন্য বেছে নেবেন :

  • একশো মিলিয়ন ফাইল
  • On 2k ফাইলের আকার গড়ে
  • > 95% পড়ার অ্যাক্সেস
  • বেশ এলোমেলো অ্যাক্সেস
  • উচ্চ সম্মতি (> 100 প্রক্রিয়া)

দ্রষ্টব্য: বড় ডিরেক্টরিগুলি এড়ানোর জন্য ফাইলগুলি একটি গভীর স্তরের শ্রেণিবিন্যাসে সংরক্ষণ করা হয়। প্রতিটি লিফ ডিরেক্টরিতে প্রায় এক হাজার ফাইল থাকে।

আপনি কিভাবে এটি মানদণ্ড হবে?


3
কিছু অতিরিক্ত তথ্য দরকার। উদাহরণস্বরূপ, আপনি কি সমস্ত ফাইল একটি ফ্ল্যাট ডিরেক্টরিতে বা নেস্টেড (সাজানো) ডিরেক্টরিতে সঞ্চয় করছেন? এটি ফাইল অ্যাক্সেসের সময়ে নাটকীয় পারফরম্যান্সের প্রভাব ফেলতে পারে। একটি "ফ্ল্যাট" বিন্যাসে 100,000,000 এন্ট্রি স্থানান্তর এফএস টাইপ নির্বিশেষে উল্লেখযোগ্য ওভারহেড প্রবেশ করবে; সর্বোত্তম ক্ষেত্রে, আপনি কোনও ধরণের গাছের অনুসন্ধানের দিকে তাকিয়ে রয়েছেন, যা আপনার ফাইলে পৌঁছতে এখনও একাধিক লুকআপ দরকার। আপনি যদি সাব-ডাইরেক্টরিগুলিতে ফাইলগুলি ক্যাটাগরিজ করেন তবে প্রতিটি স্তরে অনুসন্ধানের জন্য কম এন্ট্রি থাকায় অ্যাক্সেসের সময়টি উল্লেখযোগ্যভাবে গতি বাড়বে।
অ্যাভেরি পায়েেন

ফাইলটি সিরিয়াল বা একযোগে অ্যাক্সেস করা যায়?
স্টিভ স্নেপ

উত্তর:


19

সমস্ত বড় লিনাক্স এফএসের সাথে বনি ++ এর সাথে তুলনা করার জন্য এখানে কিছু ফলাফল রয়েছে যা আপনি একটি সূচনা পয়েন্ট হিসাবে ব্যবহার করতে পারেন।

র্যান্ডম সিক্সের ক্ষেত্রে রেজার জেতা, এরপরে এক্সটি 4, জেএফএসের পরে। আমি নিশ্চিত নই যে এটি ডিরেক্টরি লুকে দেখার সাথে একে অপরের সাথে সম্পর্কযুক্ত, তবে মনে হয় এটি সূচক হবে। আপনাকে এটির জন্য বিশেষত নিজের পরীক্ষা করতে হবে। এক্সটি 2 ফাইল তৈরির সময় প্যান্টগুলিকে মারধর করে, সম্ভবত জার্নালের অভাবের কারণে, এখনও এক্সটি 4 রিজার বাদে যা কিছু হ্যান্স রিজারের বর্তমান অবস্থার কারণে আপনি ব্যবহার করতে চান না তা বাদ দেয়।

আপনি এনসিকিউকে সমর্থন করে এমন ড্রাইভগুলি সন্ধান করতে চাইতে পারেন এবং এটি ব্যবহারের জন্য আপনার ইনস্টল সেটআপ রয়েছে কিনা তা নিশ্চিত করুন। ভারী অনুসন্ধানের অধীনে এটির গতি বাড়ানো উচিত।

শেষ অবধি, আপনার মেশিনটিতে এক টন র‌্যাম রয়েছে তা নিশ্চিত করুন। যেহেতু ফাইলগুলি প্রায়শই আপডেট হয় না, তাই লিনাক্স ফাঁকা জায়গা পেলে তাদের বেশিরভাগটি রাম করার জন্য ক্যাশে শেষ করবে। আপনার ব্যবহারের ধরণগুলি যদি সঠিক হয় তবে এটি আপনাকে প্রচুর গতি বাড়িয়ে দেবে।


1
Bonnie এর ++, সমস্যা হল এটা এমনকি মোটামুটিভাবে আমার ব্যবহারের দৃশ্যকল্প পরীক্ষা না
Bene

2
আপনি এটির জন্য ডিরেক্টরি পর্দার অনুসন্ধানের পরীক্ষা না করে একটি পয়েন্ট পেয়ে গেছেন, তবে সত্যি কথা বলতে যদি এটি আপনার দমবন্ধ পয়েন্ট হয় তবে আপনি আপনার ডেটাটিকে একটি বাস্তব ডাটাবেসে ফেলা ভাল। বেশিরভাগ ডাটাবেসগুলি ব্যবহারের জন্য ডিজাইন করা ছোট ছোট বস্তুগুলিতে ফাইল
সিস্টেমগুলি

7
@ অ্যান্ড্রুচোলাকিয়ান লিঙ্কটি এখন মারা গেছে।
ডন স্কট

8

আমি কি অ্যান্ড্রু বলেন অধিকাংশ সঙ্গে একমত ছাড়া যে আমি সুপারিশ করবে Reiser4 বা তার বেশী বয়সের (কিন্তু ভাল সমর্থিত) ReiserFS । যেমন পরীক্ষাগুলি (এবং রিসারএফএসের ডকুমেন্টেশন) সূচিত করে, আপনি যে পরিস্থিতি সম্পর্কে জিজ্ঞাসা করছেন তার জন্য (এটি বৃহত সংখ্যক ছোট ফাইল বা ডিরেক্টরি) ডিজাইন করা হয়েছে। আমি অতীতে জেন্টু এবং উবুন্টুতে কোনও সমস্যা ছাড়াই ReiserFS ব্যবহার করেছি।

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


3
আমি দীর্ঘ সময়ের জন্য রিসারএফ ব্যবহার করেছি। প্রকৃতপক্ষে, আমি এখনও এটি পুরানো জেন্টু সার্ভারে ব্যবহার করছি যা আমি এখনও পুনরায় ইনস্টল করার কাছাকাছি পাই নি। এই ইনস্টলেশনটি এই মে মাসে 4 বছরের পুরানো। আমি আপনাকে যা বলতে পারি তা হ'ল এটি উল্লেখযোগ্যভাবে কমেছে। এই ঘটনাটি রিসারএফএস ব্যবহার করে সমস্ত ফাইল সিস্টেমে সময়ের সাথে সাথে সংঘটিত হয়েছিল যা সক্রিয় পঠনধারী রয়েছে এমন সমস্ত মেশিনে যেমন লিখুন ব্যবহারের ক্ষেত্রে যেমন ফাইল সিস্টেম রয়েছে, তার ব্যতিক্রম নেই - তাই আপনি যদি দীর্ঘ সময় ধরে এটি ব্যবহার করতে চান তবে এটি রাখা উচিত মনে আমি এখন থেকে বড় ফাইল সিস্টেমে এক্সএফএস ব্যবহার করে এ থেকে সরে এসেছি।
মিহাই লিম্বান

3

আমি জানি এটি আপনার প্রশ্নের সরাসরি উত্তর নয়, তবে এই ক্ষেত্রে আমি মনে করি কোনও ডেটাবেস এটি হোস্ট করার জন্য আরও উপযুক্ত হতে পারে। ছোট ফাইলগুলি বাইনারি ফর্ম্যাটে একটি ডাটাবেস টেবিলের মধ্যে সংরক্ষণ করা যায় এবং উইলে পুনরুদ্ধার করা যায়। এই ফাইলগুলি যে সফ্টওয়্যারগুলি ব্যবহার করছে সেগুলিকে এটি সমর্থন করতে সক্ষম হওয়া উচিত ...


1
কেবল একটি শ্রেণিবিন্যাসের ডাটাবেস না হলে একটি ফাইল সিস্টেম কী? আপনার প্রস্তাবটিতে বিমূর্ততা, জটিলতা এবং সফ্টওয়্যারগুলির স্তর যুক্ত করা হয়েছে যা সম্ভবত ওয়্যারেন্টেড নয়। তদ্ব্যতীত, প্রশ্নের মালিক 'ইউনিক্স দর্শন' দিয়ে তাঁর কাজটি সম্পাদন করছেন যা আমি সন্দেহ করি যে আপনি উইন্ডোজ লোকের চেয়ে বেশি হওয়া পছন্দ করবেন না?
স্টু থম্পসন

3
প্রথমত, আমার কাছে ইউনিক্স বা ওই অঞ্চলের অন্য কিছুর বিপরীতে কিছুই নেই। ফাইল সিস্টেম এবং ডাটাবেসের মধ্যে বড় পার্থক্য রয়েছে এবং সে কারণেই উভয় প্রযুক্তি বিকাশ করা হয়েছিল। ডাটাবেসগুলি বিশাল পরিমাণ ক্ষুদ্র সত্তার সাথে কাজ করার জন্য ডিজাইন করা হয়েছে, যাতে তারা বেশিরভাগ ফাইল সিস্টেমের চেয়ে আরও ভাল কাজ করে। আমি কেবল ইঙ্গিত করেছিলাম যে এর সাথে আর কোনও রাস্তা যেতে পারে।
জেরোইন ল্যান্ডহির

1
লিনাক্সের একটি ফাইল সিস্টেমকে ডিফ্র্যাগ করার চেয়ে ডিবি ফাইলকে "ক্লিন / ভ্যাকুয়াম" করা অনেক সহজ। বেশিরভাগ / fs এর সমস্তই সেই কার্যকারিতাটি সরবরাহ করে না, এটি প্রয়োজনীয় নয় বলে। উপরে মিহাইর মন্তব্যটি লক্ষ্য করে, আপনি দেখতে পাচ্ছেন এটি কঠোরভাবে সত্য নয়।
গ্রিংগো সুভেভ

3

ইউনিক্স স্ট্যাক এক্সচেঞ্জের কেউ কেউ এই দৃশ্যের পরীক্ষার জন্য একটি উত্স তৈরি করেছে (উত্স সহ):

প্রশ্ন: প্রচুর ছোট ফাইল (এইচডিডি, এসএসডি নয়) সংরক্ষণের জন্য সবচেয়ে উচ্চ-পারফরম্যান্স লিনাক্স ফাইল সিস্টেমটি কী?

সেরা পঠিত পারফরম্যান্সটি রিসারফেস থেকে এসেছে বলে মনে হচ্ছে।


বিটিআরএফসগুলি মুছে ফেলার পরিবর্তে সবকিছুতে তুলনামূলক ভাল বা তুলনামূলক ফলাফল বলে মনে হচ্ছে। তবে, আপনি কতবার 300k ফাইল মুছবেন? আমি অতীতে আরএফএস পছন্দ করেছি তবে বিটিআরএফস ভবিষ্যতের জন্য আরও ভাল বাজি হতে পারে।
গ্রিংগো সুভেভ

3

আমার অভিজ্ঞতায়, ext2 ছোট ফাইলগুলির জন্য জল থেকে 4 বের করে দেয়। আপনি যদি লেখার সততা সম্পর্কে চিন্তা না করেন তবে দুর্দান্ত great উদাহরণস্বরূপ, subversion প্রচুর এবং প্রচুর এবং অনেক ছোট ফাইল তৈরি করে, যা ext4 এবং অন্যান্য ফাইল সিস্টেমগুলি (এক্সএফএস) চাপিয়ে দেয় (ক্রোন জব চালায় যা প্রতিটি অর্ধেক ঘন্টা বা প্রায় কার্যত সমস্যার সমাধান করে একটি ক্রোন জব চালায় যা ডাটা 2 কে এক্সট 2 থেকে এক্সটোর 4 এ নিয়ে যায়।)

এই কমান্ডগুলি চালনা ext2টিকে আরও দ্রুত করে তোলে (যদিও এই বিকল্পগুলির মধ্যে বেশিরভাগ ফাইল সিস্টেমটি ক্র্যাশ হওয়ার পরে অস্থির করে তোলে যদি না আপনি ক্র্যাশ হওয়ার আগে সিঙ্ক না চালিয়ে যান)। এই কমান্ডগুলির ছোট ফাইলগুলির সাথে ext4 এ প্রায় কোনও প্রভাব নেই।

echo 15 > /proc/sys/vm/swappiness
echo 10 > /proc/sys/vm/vfs_cache_pressure
echo 99 > /proc/sys/vm/dirty_ratio
echo 50 > /proc/sys/vm/dirty_background_ratio
echo 360000 > /proc/sys/vm/dirty_expire_centisecs
echo 360000 > /proc/sys/vm/dirty_writeback_centisecs
echo "2000" > /proc/sys/vm/vfs_cache_pressure

1

আমার ধারণা অনুমান 3 (বা এক্সট 4), সম্ভবত জেএফএস ভাল সমাধান হবে। আমি এক্সট 4 এবং বিটিআরএফ থেকে সতর্ক থাকব (ফাইল সিস্টেমগুলি কৌশলযুক্ত - আপনি সর্বশেষতম, নতুন স্টাফ ব্যবহার করতে চান তবে ব্যাকআপগুলি নিয়ে প্রস্তুত থাকুন)।

আপনার পছন্দ অনুসারে ফাইল সিস্টেম টিউন করার জন্য এমকেএফএস সময় আপনি টুইটার করতে পারেন এমন বিভিন্ন প্যারামিটার রয়েছে।

আমি অবশ্যই এক্সএফএসের বিরুদ্ধে সুপারিশ করব । এটি একটি খারাপ ফাইল সিস্টেমের কারণে নয়, তবে এটি তৈরি / মুছে ফেলা ব্যয়বহুল অপারেশন।


ডিরেক্টরি অনুসন্ধানে সমস্যা এড়াতে বুদ্ধিমান নামকরণের স্কিম ব্যবহার করুন, উদাহরণস্বরূপ:

<first letter of id>_<last letter of id>/<id>

বা অনুরূপ, আরও জটিল স্কিম। এটি আপনার ডিরেক্টরি অনুসন্ধান এবং এইভাবে সামগ্রিক অ্যাক্সেসের গতি বাড়িয়ে তুলবে। (এটি আমার মনে হয় ভি 7 থেকে ফিরে একটি পুরানো ইউনিক্স ট্রিক)


1
প্রথম এবং শেষ বর্ণটি ব্যবহার করে কী লাভ এবং কেবল প্রথম এন অক্ষর নয়?
Bene

এটি সম্ভাব্য স্কিমগুলির মধ্যে একটি - এটি কোনও সুবিধা হবে কিনা তা সূচকের জন্য ব্যবহৃত "কী" এর উপর নির্ভর করে। এই বিশেষ স্কিমটি আমি অ্যাপ্লিকেশনটির সাথে উল্লেখ করেছি যা সংস্থার লোকগুলিতে ডেটা সঞ্চয় করে এবং এইভাবে তারা আরও ভাল ইনডেক্সিং পেয়েছে। সর্বদা হিসাবে, আপনার সঠিক উত্তর না পাওয়া পর্যন্ত আপনাকে এটিকে আপনার ডেটা এবং তারপরে অভিযোজিত করতে হবে :)

1

বেশিরভাগ এফএস একটি ডিয়ারের মধ্যে 65 কেও বেশি ফাইল নিয়ে শ্বাসরোধ করবে, আমি মনে করি এটি এখনও এক্সটোর 4 এর ক্ষেত্রে সত্য। রিজার ফাইল সিস্টেমে সেই সীমা নেই (এমপিথ্রি.কমের লোকেরা এটি নিশ্চিত করার জন্য প্রদান করেছে)। অন্য কোনও কিছুর বিষয়ে নিশ্চিত নয়, তবে এটি ব্যবহারের একটি দৃশ্যের জন্য যা রিসারএফএস তৈরি করেছিল।


1
এটি রিজারএফস, রিজারএফএস নয়
ড্যানিয়েল রিকোভস্কি

এই উইকএন্ডে আমার 1000000 ফাইলের সাথে এক্সট 4 এ ডির ছিল। যতক্ষণ আপনি না করেন lsবা ট্যাব-সমাপ্তি এটি দ্রুত কাজ করে। সম্ভবত সূচকের কারণে।
ওলে টেঞ্জ

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