क्या /run/shm
(पूर्व में /dev/shm
) एक निर्देशिका बनाना और एक अनुप्रयोग के लिए एक अस्थायी निर्देशिका की तरह उपयोग करना अच्छा है?
पृष्ठभूमि: मैं एक प्रोग्राम के लिए ब्लैक बॉक्स टेस्ट लिख रहा हूं जो फाइलों और निर्देशिकाओं के साथ बहुत सारे सामान करता है। प्रत्येक परीक्षण के लिए मैं बहुत सारी फाइलें और निर्देशिका बनाता हूं और फिर प्रोग्राम चलाता हूं और फिर फाइलों और निर्देशिकाओं के अपेक्षित सेट बनाता हूं और फिर तुलना करने के लिए अलग-अलग रन बनाता हूं। मेरे पास अब लगभग 40 परीक्षण हैं और उन्हें चलाने में पहले से ही 2 सेकंड का समय लग रहा है। चीजों को गति देने की उम्मीद करते हुए मैं किसी तरह की रैमडिस्क पर एक निर्देशिका में परीक्षण चलाना चाहता हूं।
राम डिस्क के बारे में शोध करना मैंने एक प्रश्न पर जवाब देते हुए कहा कि यह एक निर्देशिका बनाने /dev/shm
और एक अस्थायी निर्देशिका की तरह उपयोग करने के लिए ठीक है । कुछ और शोधों पर मैंने डेबियन से विकी पृष्ठ पर यह कहते हुए ठोकर खाई कि यह /dev/shm
सीधे प्रयोग करने में त्रुटि है । मुझे shm_*
कार्यों का उपयोग करना चाहिए । दुर्भाग्य से shm_*
फ़ंक्शन शेल स्क्रिप्ट में उपयोग के लिए उपलब्ध नहीं हैं।
अब मैं उलझन में हूं। यह अस्थायी निर्देशिका की तरह /run/shm
(पूर्व में /dev/shm
) उपयोग करना ठीक है या नहीं ?
/tmp
है कि अधिक अर्थपूर्ण होगा। यदि आपके उपयोगकर्ताओं के पास /dev/shm
चीजों को गति देने के लिए अस्थायी फ़ाइलों का उपयोग करने के लिए पर्याप्त रैम है , तो वे इसे वहां माउंट करेंगे। लेकिन अगर उनके पास पर्याप्त रैम नहीं है, और वहां बढ़ते हुए वे अपने कंप्यूटर को स्वैप फ़ाइलों का उपयोग करने के लिए सभी प्रक्रियाओं को मजबूर करके धीमा कर देते हैं, तो वे अपने राम को अधिक महत्वपूर्ण चीजों के लिए सहेज लेंगे, और /tmp
फाइल सिस्टम के लिए साधारण डिस्क स्थान का उपयोग करेंगे । दूसरे शब्दों में, /tmp
अधिक ट्यून करने योग्य है।
/tmp
साझा मेमोरी में भी माउंट करते हैं।