एक डायरेक्टरी में अधिकतम कितनी फाइलें CentOS हो सकती हैं?


1

मैंने एक वीडियो खोज वेबसाइट के लिए बहुत जल्दी और गंदे कैशिंग सिस्टम लिखा है जो एक छिपे हुए "/ कैश /" निर्देशिका के अंदर gzips और caches bing खोज परिणाम देता है।

पहले कुछ महीनों तक सबकुछ सुचारू रूप से चल रहा था, जब तक कि मैंने कोई वीडियो प्रदर्शित नहीं करते हुए बहुत लोकप्रिय खोज परिणाम देखना शुरू कर दिया।

मैंने कैश फ़ोल्डर में देखा, और निश्चित रूप से पर्याप्त था, यह लगभग 30,000 कैश की गई फ़ाइलों से भरा हुआ था, उनमें से कई अब उनके अंदर कोई सामग्री नहीं बनाई जा रही थीं ... यहां तक ​​कि बहुत लोकप्रिय खोज शब्दों के लिए भी।

मैंने लगभग 10,000 कैश फ़ाइलें हटा दीं (जो 1 महीने से अधिक पुरानी थीं, या परिणामों के मामले में खाली थीं) और अब सब कुछ फिर से सुचारू रूप से काम करने लगता है।

जाहिर है मुझे निकट भविष्य में एक उचित MySQL कैशिंग सिस्टम लिखना होगा, लेकिन क्या एक निर्देशिका के अंदर बड़ी संख्या में फाइलें सेंटो को हिचकी का कारण बन सकती हैं?

शायद एक कैश्ड फ़ाइल खींचना और इसे खोल देना बहुत अधिक है?

मेरे पास एक ऐसा तंत्र है जो मुझे चेतावनी देता है जब भी कोई डाउनलोड सुचारू रूप से नहीं होता है। Bing सर्वर मुझे ब्लॉक नहीं कर रहा है, मुझे वास्तव में परिणाम दिए जा रहे हैं, मैं बस उन्हें कैश करने में विफल रहता हूं (इस अवसर पर) जब कैश फ़ोल्डर में फ़ाइलों की संख्या "बहुत बड़ी" हो जाती है।

सभी विचारों / टिप्पणियों का स्वागत है!

जवाबों:


2

यह इस बात पर निर्भर करता है कि आप किस तरह के फाइल सिस्टम का उपयोग कर रहे हैं। मेरा मानना ​​है कि ext2 और ext3, उदाहरण के लिए, 32000 सबफ़ोल्डर्स तक सीमित हैं (आपके पास कई या अधिक फाइलें हो सकती हैं, लेकिन प्रदर्शन भुगतना होगा ...); ext4 दो बार, और कुछ अन्य लोग अधिक या असीमित संख्या की अनुमति देते हैं। चर्चा के लिए सर्वर फाल्ट और विभिन्न लिनक्स फाइल सिस्टम प्रकारों को कवर करने वाले उत्तर के लिए यह प्रश्न देखें ।


आपको धन्यवाद, हाँ, मुझे विश्वास है कि उस विशेष कैश फ़ोल्डर में लगभग ३२,००० फाइलें थीं, ताकि सिर्फ अपराधी हो। 15 प्रतिनिधि होने के बाद मैं आपको वोट दूंगा!
DarkAsPitch


0

मैंने एफसी 7 और उबंटू पर विपरीत देखा है, जहां निर्देशिका कोई समस्या नहीं के साथ 100K फाइलों को संभालती है। इसके बजाय, एक समस्या है जब उप-निर्देशिकाओं की संख्या 32K या अधिक है - लेकिन केवल फाइलें नहीं।

चूंकि आप कहते हैं कि यह समाधान "बहुत जल्दी और गंदा था", शायद समस्या CentOS में नहीं बल्कि आपके कोड में है? या यहां तक ​​कि भाषा में भी आप उपयोग कर रहे हैं? क्या यह संभव है कि आपका कोड इन सभी फ़ाइलों को एक ही बार में खोलने के लिए अटेंड कर रहा है, ताकि यह फ़ाइल हैंडल या कुछ ऐसे संसाधन से बाहर चला जाए?


मुझे लगता है कि यह "सरल बेवकूफ रखें" दृष्टिकोण से अधिक है। कोड PHP में लिखा है। यह कैशे फ़ाइल पर फ़िलाटाइम के लिए जाँच करता है, यदि कोई नहीं मिला या फ़ाइल बहुत पुरानी है, तो यह बिंग से नई जानकारी प्राप्त करता है। मुझे लगता है कि यह 32,000 नंबर सही के बारे में लगता है। मैं नहीं कह सकता कि मैंने कितनी फाइलें डिलीट कीं, शायद 12,000 के आसपास - और कैश फोल्डर के अंदर अभी 20,000 बचे हैं और सब कुछ ठीक चल रहा है .. मेरा सबसे अच्छा अनुमान है कि अब तक मैजिक नंबर 32 है।
darkAsPitch

@darkAsPitch: दो बातें: [1] दोनों ही क्रोधित हैं और मैंने कहा कि 32K की सीमा उपनिर्देशिकाओं के पास है, न कि फाइलों की। क्या आप प्रति कैश प्रविष्टि का उपयोग कर रहे हैं? [२] मैंने इसे भयावह होने से बीस मिनट पहले बताया। मुझे इस बात की उत्सुकता है कि आप इस एक के बजाय उस जवाब को वोट देने के लिए तैयार क्यों हैं?
बील

0

असली जवाब बिंग के घटिया एपीआई के साथ करना है - आधिकारिक धागा एपीआई 2.0 मंच पर इस धागे को देखें: http://www.bing.com/community/Developer/f/12254/t/662869.aspx

मूल रूप से वे बेतरतीब ढंग से खोज प्रश्नों के लिए परिणाम छिपाते हैं - आपको उनके सर्वर को दो बार हिट करने के लिए मजबूर करते हैं, ताकि उनसे जानकारी प्राप्त करने के लिए आवश्यक हो। चूंकि कई बार "कोई परिणाम नहीं" प्रतिक्रिया के वास्तव में परिणाम होते हैं, आपको फिर से जांचना होगा।

आपके इनपुट के लिए सभी को धन्यवाद!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.