ডিরেক্টরিতে কতগুলি ফাইল রয়েছে? (নেট থেকে ডেটা ডাউনলোড করা)


19

গ্রিটিংস,

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

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

আমি ভাবছিলাম যে কোন পর্যায়ে এই সমস্ত ফাইল একই ডিরেক্টরিতে থাকার মাধ্যমে একটি পারফরম্যান্স প্রভাব দেখতে পাব? (যদি কোন)



উত্তর:


12

আপনি যে ফাইল সিস্টেমটি ব্যবহার করছেন তা অনুযায়ী পারফরম্যান্স পরিবর্তিত হয়।

  • চর্বি: এটি ভুলে যান :) (ঠিক আছে, আমার মনে হয় সীমাটি প্রতি ডিরেক্টরি অনুসারে 512 টি ফাইল)
  • এনটিএফএস: ধারণা করা হয়েছে যে এটি ফোল্ডারে প্রতি 4 বিলিয়ন ফাইল ধরে রাখতে পারে, এটি তুলনামূলকভাবে দ্রুত হ্রাস পায় - এক হাজারের কাছাকাছি আপনি পারফরম্যান্সের সমস্যাগুলি লক্ষ্য করতে শুরু করবেন, কয়েক হাজার এবং আপনি দেখবেন এক্সপ্লোরার বেশ কিছুক্ষণের জন্য স্তব্ধ হয়ে উপস্থিত হবে।
  • EXT3: শারীরিক সীমা 32,000 ফাইল, কিন্তু পারফ কয়েক হাজার ফাইলের পরেও ভোগে।

  • EXT4: তাত্ত্বিকভাবে সীমাহীন

  • রিসারএফএস, এক্সএফএস, জেএফএস, বিটিআরএসএফ: এটি একটি ডিরেক্টরিতে প্রচুর ফাইলের জন্য ভাল কারণ তারা আরও আধুনিক এবং অনেকগুলি ফাইল হ্যান্ডেল করার জন্য ডিজাইন করা হয়েছে (অন্যরা সেই দিনগুলিতে আবার ডিজাইন করেছিলেন যখন এমবিতে এইচডিডি পরিমাপ করা হত না) । পারফরম্যান্স প্রচুর ফাইলের জন্য (এক্সট 4 সহ) অনেক ভাল কারণ তারা উভয়ই আপনার পছন্দসই ফাইলটি পাওয়ার জন্য বাইনারি অনুসন্ধান টাইপের অ্যালগরিদম ব্যবহার করেন (অন্যরা আরও লিনিয়ার ব্যবহার করেন)।


6
এটা ভুল. EXT3 এ 32000 ফাইলের সীমা নেই। এখানে 32000 উপ-ডিরেক্টরিগুলির সীমা রয়েছে। আমি এখানে প্রায় 300000 ফাইল সহ একটি ডিরেক্টরি পেয়েছি এবং এটি দুর্দান্ত সম্পাদন করে।
ডেভিডশেল্ডন

1
বেশ সত্য - ফাইল সীমাটি ইনোডগুলিতে পুরো ফাইল সিস্টেমের সীমা, তবে আপনি 32k লিঙ্কগুলিতে সীমাবদ্ধ (অর্থাত্ subdirs)।
gbjbaanb

বর্তমান এনটিএফএসের বিবৃতিটিও সত্য নয়, এটি 4,294,967,295 (2 ^ 32 - 1) পর্যন্ত ধরে রাখতে পারে: টেকনিকেট.মাইক্রোসফট /en-us/library/cc781134%28WS.10%29.aspx
ফ্লেগ্রগ্রিন্দার

ফাইলগুলির সাথে সাব-ডিরেক্টরিগুলি বিভ্রান্ত করবেন না, সেন্টোস মেশিনে আমার 32000 সাব-ডিরেক্টরি ছিল, সীমাতে পৌঁছেছে, আমি সেই ডিরেক্টরিতে সমস্ত ফাইল সরিয়েছি এবং এখনও ঠিক কাজ করি।
অ্যাড্রিয়ানটিএনটি


8

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

কেবলমাত্র খারাপ দিকটি আমি দেখতে পাচ্ছি যে নতুনকে দ্বিতীয় সেভারের সাথে সিঙ্ক করার জন্য আমাকে rsyncপুরো ডিরেক্টরিটি চালাতে হবে, এবং এটি কেবলমাত্র সাম্প্রতিক সহস্র বা তার বেশি উপস্থিত একটি সাব ডিরেক্টরি সিঙ্ক করতে বলতে পারছি না।


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

+1 এটি আসলে প্রশ্নের উত্তর দেয়।
কুবানচেক

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

3

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

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


তবে ফাইলটি অ্যাক্সেস করা সরাসরি অনুসন্ধান ডিরেক্টরিগুলির সাথে বাধাগুলি সরিয়ে দেবে বা কোনও ডিরেক্টরিতে অ্যাক্সেস করার পরেও কি অন্তর্নিহিত অনুসন্ধান কল থাকবে? (লিনাক্স, ডেবিয়ান)
স্টিভ

3
সরাসরি ফাইল অ্যাক্সেস করলে এই সমস্যাগুলি প্রশমিত হবে। আমি ext3 এ পরীক্ষা করেছি এবং 500000 ফাইল যুক্ত ডিরেক্টরিতে নাম দ্বারা একটি ফাইল অ্যাক্সেস করা 1000 এর একটির তুলনায় উল্লেখযোগ্যভাবে ধীর নয় vious স্পষ্টতই একটি lsকরা একটি সমস্যা।
ডেভিডশেল্ডন

সঠিক নামটি জানার সময় অ্যাক্সেস দ্রুত হওয়া উচিত। সমস্যাটি বেশিরভাগ এমন কোনও কোড বা কমান্ড যা ফাইলগুলির একটি তালিকা পেতে চায় be
উইম টেন ব্রিংক

1

আমার থাম্বের নিয়মটি হ'ল যদি 1000 এর বেশি ফাইল থাকে এবং ফোল্ডারটি ব্রাউজ করা হয় (যেমন ইন্টারনেট বা এক্সপ্লোরারের মাধ্যমে) বা অন্যথায় 5000 ফাইল।


0

@ স্কাফম্যান যেমন উল্লেখ করেছেন, সীমাবদ্ধতা অপারেটিং সিস্টেমের উপর নির্ভর করে। আপনি পুরানো ওএসএসের সীমাবদ্ধতায় প্রভাবিত হওয়ার সম্ভাবনা রয়েছে। আমার মনে আছে সোলারিসের একটি পুরানো সংস্করণ প্রতি ডিরেক্টরি 32768 ফাইলের মধ্যে সীমাবদ্ধ ছিল।

সাধারণ সমাধানটি হ'ল কিছু ধরণের হ্যাশিং ব্যবহার করা, অর্থাত সাইরাস ইমামাপ সার্ভার ব্যবহারকারীদের বর্ণমালার হ্যাশ দ্বারা বিভক্ত করে:

/var/spool/imap/a/user/anna/
/var/spool/imap/a/user/albert/
/var/spool/imap/d/user/dan/
/var/spool/imap/e/user/ewan/

1
ধন্যবাদ, একবার কোনও ডায়ারে 2k এর বেশি ফাইল হয়ে গেলে আমি অবশ্যই কিছু জায়গায় থাকতাম! :)
স্টিভ

এই প্রশ্নের কয়েকটি ভাল উত্তর রয়েছে: সার্ভারফল্ট /
ডেভি

আমার থাম্বের সাধারণ নিয়মটি হ'ল ডিরেক্টরিতে প্রায় 20,000 টিরও বেশি ফাইল ভাল ধারণা নয়। বেশিরভাগ আধুনিক ফাইল সিস্টেমগুলি সেই অনেকগুলি ফাইলের সাথে ঠিক আছে। আপনি একবার ডিরেক্টরিতে 32 কে ফাইল হিট করলে কিছু ফাইল সিস্টেম যেমন ext3 এর গুরুতর পারফরম্যান্স সমস্যা হতে শুরু করে।
ফিল হলেনব্যাক

ফিল - আপনার কাছে এক্সট3 সহ 32 কেও বেশি ফাইলের পারফরম্যান্স সম্পর্কিত কোনও তথ্য আছে, আমি 300k এরও বেশি মুহুর্তে কোনও কিছুই দেখছি না সম্ভবত এটি এমন কিছু যা আমার ব্যবহারের ধরণকে প্রভাবিত করছে না।
ডেভিডশেল্ডন

আমার আগের চাকরির বৈজ্ঞানিক সফ্টওয়্যার একটি ডিরেক্টরিতে প্রচুর ছোট (কয়েক কে প্রতি কে) ফাইল তৈরি করে। আমরা অবশ্যই দেখেছি যে 32k ফাইল ডিরেক্টরি ফাইল পড়ার সময়গুলি প্রচুর পরিমাণে শ্যুট হয়ে যায়। ডিরেক্টরিতে কেবল 'ls' চালাতে অনেকগুলি ফাইল এক মিনিট বা তারও বেশি সময় নিতে পারে।
ফিল হলেনব্যাক

0

আপনি যদি সরাসরি কোনও ফাইল অ্যাক্সেস করে থাকেন তবে কোনও ডিরেক্টরিতে ফাইলের সংখ্যা কোনও গতির সমস্যা নয়।

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

সর্বাধিক ফাইলের আকারের ext3 সম্পর্কে তার উত্তরে gbjbaanb ভুল। সাধারণত আপনার ডিস্কে সাধারণত ফাইলের সংখ্যা সীমাবদ্ধ করে ext। আপনি আপনার ইনোড সারণিতে ইনোডগুলি রেখে আরও বেশি ফাইল তৈরি করতে পারবেন না। তিনি অনেকগুলি ফাইল নিয়ে আরও পারফরম্যান্সের জন্য পুনরায় অসম্পূর্ণ পরামর্শ দেওয়ার ক্ষেত্রে সঠিক


0

এনটিএফএস (উইন্ডোজ 7, ​​64 বিট) এ 10 কে ফাইলযুক্ত ফোল্ডারটি পরীক্ষা করা হয়েছে। কোনও ভিউতে 10K চিত্রের ফোল্ডার (তালিকা, আইকন ইত্যাদি) কোনও বুদ্ধিমানের বিলম্ব ছাড়াই কাজ করে এবং স্ক্রোল করে।

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