একক ডিরেক্টরিতে ফাইল সিস্টেম প্রচুর পরিমাণে ফাইল


29

ঠিক আছে, এত বড় নয় তবে আমার এমন কিছু ব্যবহার করতে হবে যেখানে প্রায় ৩০,০০০ কেবি আকারের প্রায় ০,০০০ টি ফাইল একক ডিরেক্টরিতে সঞ্চিত থাকে (এটি এমন একটি প্রয়োজনীয় যাতে সহজে সংখ্যায় কম সংখ্যক ফাইল সহ সাব-ডিরেক্টরিতে বিভক্ত হয় না)।

ফাইলগুলি এলোমেলোভাবে অ্যাক্সেস করা হবে, তবে একবার তৈরি হয়ে গেলে একই ফাইল সিস্টেমে কোনও লেখক থাকবে না। আমি বর্তমানে Ext3 ব্যবহার করছি তবে এটি খুব ধীর সন্ধান করছে। কোন পরামর্শ?


3
কেন তাদের অবশ্যই একটি ডিরেক্টরিতে থাকতে হবে?
কাইল ব্র্যান্ড 18

1
Xfs এবং ext4- তে যথেষ্ট উন্নতি দেওয়া হলেও আমি মূল প্রশ্নের উত্তরোত্তর উত্তর সম্পর্কে আগ্রহী।

উত্তর:


15

আপনার এক্সএফএস বিবেচনা করা উচিত। এটি ফাইল সিস্টেম এবং ডিরেক্টরি স্তরে উভয়ই প্রচুর সংখ্যক ফাইলকে সমর্থন করে এবং বি + ট্রি ডেটা স্ট্রাকচারের কারণে কর্মক্ষমতা তুলনামূলকভাবে সুসংহতও রয়েছে বিপুল সংখ্যক এন্ট্রি সহ।

একটা ব্যাপার তাদের উইকি পৃষ্ঠার কাগজপত্র এবং প্রকাশনার যে বিস্তারিত নকশা সংখ্যক করতে। আমি আপনাকে এটি ব্যবহার করে দেখার পরামর্শ দিচ্ছি এবং এটি আপনার বর্তমান সমাধানের বিপরীতে বেনমার্ক করুন।


@ নীলার উত্তরের স্লাইড অনুসারে এক্সট 4 এই কাজের জন্য এক্সএফএসের চেয়ে উচ্চতর হবে।
মুল্লহাউসন

13

লিনাক্সে এক বিলিয়ন ফাইল

এই নিবন্ধটির লেখক বড় ফাইলগুলি গণনা করে ফাইল সিস্টেমে কিছু পারফরম্যান্স ইস্যুতে খনন করেছেন এবং বিভিন্ন ফাইল সিস্টেমের এক্সট 3, এক্সট 4 এবং এক্সএফএসের পারফরম্যান্সের কিছু চমৎকার তুলনা করেছেন। এটি একটি স্লাইড শো হিসাবে উপলব্ধ করা হয়েছে। http://events.linuxfoundation.org/slides/2010/linuxcon2010_wheeler.pdf

এমকেএফএস চালানোর সময় 1 এম 50 কেবি ফাইল তৈরির সময় ফাইল সিস্টেম মেরামতের সময় 1 মি ফাইল সরানো হচ্ছে


2
আমরা সত্যিই পছন্দ করি যে উত্তরে সামগ্রীগুলিতে নির্দেশক নয় এমন সামগ্রী রয়েছে। যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
ব্যবহারকারী 9517 GoFundMonica

@ আমি আশা করি পিডিএফ ডাউনলোড করার সাথে সাথে এটি আরও ভাল is
নেলাও

19
বাহ এইগুলি গ্রাফগুলি পড়ার পক্ষে ব্যতিক্রমী কিছু শক্ত ~
থোরস্মমনার

8

Ext3 তে একটি ডিরেক্টরিতে থাকা অনেকগুলি ফাইল বোন সাইটের স্ট্যাকওভারফ্লো ডট কম এ দৈর্ঘ্যে আলোচনা করা হয়েছে

আমার মতে ext3 এ একটি ডিরেক্টরিতে 60,000 ফাইল আদর্শ থেকে অনেক দূরে তবে আপনার অন্যান্য প্রয়োজনীয়তার উপর নির্ভর করে এটি যথেষ্ট ভাল হতে পারে।


5

ঠিক আছে. আমি রিসারএফএস, এক্সএফএস, জেএফএস, এক্সট3 (দির_হ্যাশ সক্ষম) এবং এক্সট্রোডিভ (২.6.২6 কার্নেল) ব্যবহার করে কিছু প্রাথমিক পরীক্ষা করেছি। আমার প্রথম ধারণাটি ছিল যে সমস্তগুলি যথেষ্ট দ্রুত ছিল (আমার মৌমাছির ওয়ার্কস্টেশনে) - এটি দেখা যাচ্ছে যে রিমোট প্রোডাকশন মেশিনটির মোটামুটি স্লো প্রসেসর রয়েছে।

এমনকি প্রাথমিক পরীক্ষার সময়ও আমি রিজারএফএসের সাথে কিছুটা অদ্ভুততা অনুভব করেছি যে এটি বাতিল করে দিয়েছে। দেখে মনে হচ্ছে যে জেএফএসের অন্য সকলের তুলনায় সিপিইউর 33% কম চাহিদা রয়েছে এবং তাই এটি দূরবর্তী সার্ভারে পরীক্ষা করবে। যদি এটি যথেষ্ট ভাল সম্পাদন করে তবে আমি এটি ব্যবহার করব।


5

আমি একটি অ্যাপ্লিকেশন লিখছি যা প্রচুর পরিমাণে এবং প্রচুর ফাইল সঞ্চয় করে তবে আমার খনি বড় এবং এর মধ্যে আমার 10 মিলিয়ন রয়েছে যে আমি একাধিক ডিরেক্টরিতে বিভক্ত হব।

ডিফল্ট "লিঙ্কযুক্ত তালিকা" প্রয়োগের কারণে ext3 ধীর হয়। সুতরাং আপনার যদি একটি ডিরেক্টরিতে প্রচুর ফাইল থাকে তবে এর অর্থ অন্যটি খোলার বা তৈরি করা ধীর এবং ধীর হতে চলেছে। এইচটিআ্রি সূচক বলে এমন কিছু আছে যা ext3 এর জন্য পাওয়া যায় যা তথ্যের সাথে ব্যাপকভাবে উন্নতি করে। তবে, এটি কেবল ফাইল সিস্টেম তৈরিতে উপলব্ধ। এখানে দেখুন: http://lonesysadmin.net/2007/08/17/use-dir_index-for-your-new-ext3-filesystems/

যেহেতু আপনাকে ফাইল সিস্টেমটি পুনর্নির্মাণ করতে হবে এবং ext3 সীমাবদ্ধতার কারণে, আমার সুপারিশটি হ'ল আপনি ext4 (বা এক্সএফএস) ব্যবহার করে দেখুন। আমি মনে করি ext4 ছোট ফাইলগুলির সাথে কিছুটা দ্রুত এবং দ্রুত পুনর্নির্মাণ রয়েছে। Htree সূচিটি যতটা আমি সচেতন হিসাবে ext4 এ ডিফল্ট। জেএফএস বা রিজারের সাথে আমার সত্যিই কোনও অভিজ্ঞতা নেই তবে আমি শুনেছি লোকেদের আগে এটির প্রস্তাব দেওয়া।

বাস্তবে, আমি সম্ভবত বেশ কয়েকটি ফাইল সিস্টেম পরীক্ষা করতাম। কেন এক্সট 4, এক্সএফএস এবং জেএফএস ব্যবহার করে দেখুন না এবং কোনটি সামগ্রিকভাবে সর্বোত্তম পারফর্মেন্স দেয়?

কোনও বিকাশকারী আমাকে এমন কিছু বলেছিলেন যা অ্যাপ্লিকেশন কোডটিতে জিনিসগুলি গতি বাড়িয়ে তুলতে পারে তা হ'ল "স্ট্যাট + ওপেন" কল করা নয় বরং "ওপেন + এফস্ট্যাট" করা। প্রথমটি দ্বিতীয়টির চেয়ে উল্লেখযোগ্যভাবে ধীর। নিশ্চিত যে এটির উপর আপনার কোনও নিয়ন্ত্রণ বা প্রভাব রয়েছে কিনা Not

আমার পোস্টটি এখানে স্ট্যাকওভারফ্লোতে দেখুন। লিনাক্সে 10 মিলিয়ন ফাইল পর্যন্ত সংরক্ষণ এবং অ্যাক্সেস করার জন্য সেখানে কয়েকটি খুব দরকারী উত্তর এবং লিঙ্ক রয়েছে।


3

Dir_index সক্ষম করতে টিউন 2fs ব্যবহার করতে পারে। এটি সক্ষম কিনা তা দেখতে:

sudo tune2fs -l /dev/sda1 | grep dir_index

এটি সক্ষম না হলে:

sudo umount /dev/sda1   
sudo tune2fs -O dir_index /dev/sad1
sudo e2fsck -D /dev/sda1
sudo mount /dev/sda1

তবে আমার একটা অনুভূতি রয়েছে যে আপনি হয়ত ভুল পথে চলে যাচ্ছেন ... কেন ফ্ল্যাট সূচক তৈরি করা হয়নি এবং এর ভিত্তিতে এলোমেলোভাবে নির্বাচন করতে কিছু কোড ব্যবহার করুন না কেন। এরপরে আপনি আরও অনুকূলিত গাছের কাঠামোর জন্য উপ ডিরেক্টরি ব্যবহার করতে পারেন।


1
/dev/sad1অনুলিপি / পাস্তা ত্রুটি রোধ ইচ্ছাকৃত ছিল ?
আনোয়ার

2

ext3 এবং নীচে প্রতি ডিরেক্টরিতে 32768 ফাইল পর্যন্ত সমর্থন করে। ext4 ফাইলগুলির প্রকৃত গণনায় 65536 অবধি সমর্থন করে তবে আপনাকে আরও বেশি রাখার অনুমতি দেবে (এটি কেবল তাদের ডিরেক্টরিতে সংরক্ষণ করে না, যা বেশিরভাগ ব্যবহারকারীর উদ্দেশ্যে বিবেচনা করে না)।

এছাড়াও, ext * ফাইল সিস্টেমে ডিরেক্টরিগুলি যেভাবে সংরক্ষণ করা হয় তা মূলত একটি বড় তালিকা হিসাবে is আরও আধুনিক ফাইল সিস্টেমে (রিজার, এক্সএফএস, জেএফএস) এগুলি বি-ট্রি হিসাবে সংরক্ষণ করা হয়, যা বড় সেটগুলির জন্য অনেক বেশি দক্ষ।


2
একটি সংখ্যক ফাইলকে ডায়ারে সমর্থন করা যুক্তিসঙ্গত গতিতে এটি করা একই জিনিস নয়। আমি এখনও জানি না যে এক্সট 4 আরও ভাল কিনা, তবে ডিরেক্টরিতে যখন কয়েক হাজারেরও বেশি ফাইল থাকে তখনও ডিআরআইএনডেক্স চালু থাকলেও এটি ext3 অনেক ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে কমবে।
ক্যাস

1

আপনি ফাইলের পরিবর্তে ফাইল আইনোড সংরক্ষণ করতে পারেন: ফাইলের নামগুলি সমাধান করার ক্ষেত্রে ইনোড নম্বরগুলি অ্যাক্সেস করা খুব দ্রুত হওয়া উচিত


এখন আমাকে বল. আপনি কিভাবে ইনোড নম্বর দিয়ে একটি ফাইল খুলবেন?
ম্যাট

1
@ ম্যাট, মনে হচ্ছে উত্তর দেওয়ার পরে প্রশ্নটি বদলে গেছে। অথবা আমি 1.5 বছর আগে অনেক বেশি বোকা ছিলাম :)))
কলিপ্টো

0

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


-1

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


-1

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

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