2012-03-16 8 views
19

मेरे पास स्क्रिप्ट हैं जो सैकड़ों त्वरित उत्तराधिकार, छोटी, अस्थायी फ़ाइलों को बनाने की आवश्यकता है और जल्द ही वापस पढ़ा जाता है, फिर अनलिंक किया जाता है।/tmp बनाम/dev/shm?

मेरा परीक्षण /tmp (डिस्क पर) या /dev/shm (फाइल सिस्टम-स्तर साझा स्मृति) में फ़ाइलों को डालकर किसी भी प्रदर्शन अंतर को कम करता है, यहां तक ​​कि मध्यम लोड के तहत भी लिनक्स पर। मैं इसे फाइल सिस्टम कैश में विशेषता देता हूं।

दी डिस्क अंततः कई छोटे लिखने-पढ़ने के लिए अस्थायी फ़ाइलों पर fileystem कार्यों के साथ मारा हो जाएगी, लेकिन, तुम क्यों (नहीं) /dev/shm डिस्क समर्थित निर्देशिका से अधिक की सिफारिश करेंगे? क्या आपने कैश किए गए वीएफएस पर साझा मेमोरी निर्देशिका के साथ बड़े प्रदर्शन में वृद्धि देखी है?

उत्तर

13

/dev/shm एक विशेष उद्देश्य के लिए है, न कि मनमाने ढंग से कार्यक्रमों द्वारा फाइलों को डालने के लिए।

इसके विपरीत, /tmpexactly made for this है। मेरे सिस्टम पर, /tmptmpfs है, साथ ही /var/tmp के विपरीत जो designed है बड़ी फ़ाइलों को रखने के लिए, संभावित रूप से लंबे समय तक रहना।

+1

+1 '/ dev/shm' एक सामान्य उद्देश्य 'tmpfs' होना लिनक्स का एक कार्यान्वयन विवरण है, किसी भी तरह से गारंटी नहीं है (उपलब्ध स्थान आमतौर पर किसी भी तरह सीमित है)। उनके लिए इच्छित उद्देश्य के लिए '/ tmp' और'/var/tmp' का उपयोग करें। और उपयोग और फाइल सिस्टम के आधार पर, यदि आप किसी फ़ाइल को बनाते और अनलिंक करते हैं, तो यह संभव है कि यह केवल कैश में होगा और कभी भी डिस्क को हिट नहीं करेगा। – ephemient

+0

@ephemient - एक फ़ाइल बनाते हैं और तत्काल अनलिंक करते हैं भले ही कैश अंततः डिस्क को दबाए, नहीं? – Xailor

+1

@glglgl - जिन प्रणालियों में हम तैनात कर रहे हैं (एक प्रबंधित सेवा परिदृश्य में)/tmp का समर्थन 'tmpfs' द्वारा नहीं बल्कि प्राथमिक sda1 डिस्क द्वारा किया जाता है। अन्यथा, मैं मानक के साथ रखने के लिए सहमत हूं, लेकिन यह इस समय हमारे तैनाती पर्यावरण है। – Xailor

3

यह अनिवार्य रूप से वही है (जब आपके पास स्वैपफ़ाइल होता है तो शर्म को भी डिस्क द्वारा निहित रूप से समर्थित किया जाता है)।

/tmp का लाभ यह है कि यह कठिन हो जाता है (आपकी हार्ड डिस्क पर विचार करना आपके स्वैपफ़ाइल से बड़ा है)। और यह भी अधिक व्यापक रूप से समर्थित है।

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