मेरे पास एक एप्लिकेशन है जो 16 ^ 5 फाइलें (1048576) बनाता है। मैं इसे सभी को एक ही फ़ोल्डर में बनाने के लिए कॉन्फ़िगर कर सकता हूं या उन्हें जो भी मैं चाहता हूं, उन्हें अलग कर सकता हूं (प्रत्येक फ़ोल्डर पर 1, 2, 3 या 4 सबफ़ोल्डर होने पर)। उदाहरण:
/*
या
/a/*
.
.
.
/f/*
या
/a/a/*
/a/b/*
.
.
.
/f/f/*
या
/a/a/a/*
.
.
.
/f/f/f/*
या
/a/a/a/a/*
/a/a/a/b/*
.
.
.
/f/f/f/f/*
सभी फाइलों में 4KB से कम है। मैं इसे स्टोर करने के लिए Ubuntu 12.10 64bits और एक ext4 विभाजन का उपयोग कर रहा हूं। क्या फ़ोल्डर संरचना इस मामले के लिए सबसे अच्छी संरचना होगी? शायद अन्य फाइलसिस्टम इस मामले के लिए सबसे उपयुक्त होगा, कोई विचार?
वैसे भी मैं इस एल्गोरिथ्म को चलाने की कोशिश कर रहा हूं, मुझे 9999999 फाइलें खोलने में सक्षम होना चाहिए:
user@pc$ ulimit
unlimited
user@pc$ cat /proc/sys/fs/file-max
9999999
user@pc$ cat /etc/sysctl.conf
fs.file-max = 9999999
हालाँकि, जब मैं इसे एक सिंगल फोल्डर में सब कुछ बचाकर चलाता हूं, तो फोपेन कॉल लगभग 999999 फाइलों में विफल हो जाती है:
user@pc$ ls database/ | wc -l
999958
अजीब रूप से यह 999999 सिस्टम फ़ाइलों में फ़ाइल-मैक्स के लिए मेरा पिछला मूल्य था। मैंने निश्चित रूप से मूल्य को अपडेट करने से पहले अपनी मशीन को रिबूट किया है, शायद यह बहुत बड़ा है और फिर यह अंतिम रखता है। क्या गलत हो सकता है?