2010-06-08 7 views
15

संभव डुप्लिकेट:
How many files in a directory is too many?निर्देशिका में कितनी फ़ाइलें बहुत अधिक हैं (विंडोज़ और लिनक्स पर)?

मुझे बताया गया था कि एक निर्देशिका में बहुत सारी फ़ाइलें डाल लिनक्स, और Windows में प्रदर्शन समस्याएं पैदा कर सकता। क्या ये सच है? और यदि हां, तो इससे बचने का सबसे अच्छा तरीका क्या है?

+0

क्या करने की कोशिश करते समय प्रदर्शन समस्याएं? –

+2

यह सवाल है "कितने उपयोगकर्ता या प्रक्रियाएं बहुत अधिक हैं?"। यह पूरी तरह से संदर्भ, गतिविधि, और "भी" की आपकी परिभाषा पर आधारित है। उत्तर 100 से 10 मिलियन के बीच होने की संभावना है। – msw

+0

डुप्लिकेट: http://stackoverflow.com/questions/466521/how-many-files-in-a-directory-is-too- कई http://stackoverflow.com/questions/197162/ntfs-performance-and- बड़ी मात्रा-फाइल-और-निर्देशिका – leonbloy

उत्तर

10

this Microsoft article के अनुसार, निर्देशिका का लुकअप समय प्रविष्टियों की संख्या के वर्ग के अनुपात में आनुपातिक हो जाता है। (हालांकि यह एनटी 3.5 के खिलाफ एक बग था।)

Old Joel on Software Forum पर एक समान प्रश्न पूछा गया था। एक जवाब यह था कि प्रदर्शन 1000 से 3000 फाइलों के बीच गिरने लगता है, और एक पोस्टर ने 18000 फाइलों पर हार्ड सीमा को मारा। अभी भी एक और पोस्ट का दावा है कि 300,000 फाइलें संभव हैं लेकिन खोज समय तेजी से घटते हैं क्योंकि सभी 8.3 फाइलनामों का उपयोग किया जाता है।

बड़ी निर्देशिकाओं से बचने के लिए, उपनिर्देशिकाओं में से एक, दो या अधिक स्तर बनाएं और उन फ़ाइलों को हैश करें। हैश का सबसे सरल प्रकार फ़ाइल नाम के अक्षरों का उपयोग करता है। इसलिए abc0001.txt से शुरू होने वाली फ़ाइल को \ b \ c \ abc0001.txt के रूप में रखा जाएगा, मानते हुए कि आपने घोंसले के 3 स्तरों को चुना है। 3 शायद अधिक है - प्रति निर्देशिका दो वर्णों का उपयोग करके घोंसले के स्तर की संख्या कम हो जाती है। जैसे ab\abc0001.txt। आपको केवल घोंसले के दो स्तरों पर जाना होगा यदि आप अनुमान लगाते हैं कि किसी भी निर्देशिका में सीए से काफी अधिक होगा। 3000 फाइलें

+0

नेटवर्क सर्वर पर घोंसले उपनिर्देशिका ए-जेड + 0-9 के दो स्तरों के साथ मेरा स्वयं का अनुभव समस्याग्रस्त है। कुछ कारणों से विंडोज हमेशा फ़ाइलों को गिनने के लिए लेते हैं, भले ही प्रत्येक व्यक्तिगत उपनिर्देशिका में लगभग 10 फाइलें या उससे कम हो। –

+0

मैं पुष्टि कर सकता हूं कि आप एनटीएफएस पर प्रति फ़ोल्डर 250,000 फाइलें प्राप्त कर सकते हैं। यह वास्तव में उतना धीमा नहीं है जितना आप सोचेंगे कि क्या आप विंडोज एक्सप्लोरर सेटिंग्स को एडजस्ट करते हैं। –

8

विंडोज फ़ाइल सिस्टम वर्तमान में एनटीएफएस है। वॉल्यूम पर फ़ाइलों की अधिकतम मात्रा 4,294, 9 67,295 है। ड्राइव पर फ़ाइल कैटलॉग बी + ट्री में होता है जो आपको लॉग (एन) लुकअप देता है।

पुराने FAT32 पर फ़ोल्डर में 64K फ़ाइलों की एक सीमा थी। प्रति फ़ोल्डर एक सूची द्वारा इंडेक्सिंग भी किया गया था, इसलिए कुछ हज़ार प्रदर्शन के बाद भारी गिरावट आई। आपको शायद FAT32 के बारे में चिंता करने की आवश्यकता नहीं है, जब तक आपके दर्शकों में डॉस, विंडोज 95,98 या मिलेनियम (यक) न हो।

लिनक्स पर यह वास्तव में आपके द्वारा उपयोग की जा रही फ़ाइल सिस्टम पर निर्भर करता है (यदि आप ऐसा करने का निर्णय लेते हैं तो यह एनटीएफएस हो सकता है) extf3 प्रति निर्देशिका 32k फ़ाइलों की एक सीमा है। लुकअप भी बी + ट्री है और आपको LOG (N) लुकअप देगा

इसके बाद इसे देखने के बाद आपका प्रश्न वास्तव में फाइल सिस्टम की सीमाओं के संबंध में होना चाहिए।

+3

यदि वह कठिन सीमाओं को जानना चाहता था, तो यही वह पूछता था।"मुलायम" सीमाएं हैं जहां प्रदर्शन आदर्श से कम हो जाता है, और आप कठिन सीमाओं को मारने से पहले इन मुलायम सीमाओं में भाग लेंगे। –

संबंधित मुद्दे