सवाल मुझे / dev / shm / कब उपयोग करना चाहिए और मुझे कब / tmp / का उपयोग करना चाहिए?


मुझे कब उपयोग करना चाहिए /dev/shm/ और मुझे कब उपयोग करना चाहिए /tmp/? क्या मैं हमेशा उन पर निर्भर करता हूं जो यूनीज पर हैं?


111
2017-09-22 23:26


मूल




जवाब:


/dev/shm एक अस्थायी फ़ाइल भंडारण फाइल सिस्टम है, यानी, tmpfs, जो बैकिंग स्टोर के लिए रैम का उपयोग करता है। यह एक साझा स्मृति कार्यान्वयन के रूप में कार्य कर सकता है जो सुविधा प्रदान करता है भारतीय दंड संहिता

विकिपीडिया से:

हाल ही में 2.6 लिनक्स कर्नेल बिल्डों ने रैमडिस्क के रूप में साझा मेमोरी के रूप में / dev / shm की पेशकश शुरू कर दी है, विशेष रूप से एक विश्व-लेखन योग्य निर्देशिका के रूप में जो स्मृति में संग्रहीत है / etc / default / tmpfs में परिभाषित सीमा के साथ।    / dev / shm समर्थन कर्नेल कॉन्फ़िगरेशन फ़ाइल के भीतर पूरी तरह से वैकल्पिक है।   इसे डिफ़ॉल्ट रूप से फेडोरा और उबंटू वितरण दोनों में शामिल किया गया है, जहां इसे पुल्सियोडियो एप्लिकेशन द्वारा व्यापक रूप से उपयोग किया जाता है।   (महत्व दिया।)

/tmp जैसा परिभाषित किया गया है अस्थायी फ़ाइलों के लिए स्थान है फाइल सिस्टम पदानुक्रम मानक, जिसके बाद लगभग सभी यूनिक्स और लिनक्स वितरण होते हैं।

चूंकि राम डिस्क संग्रहण से काफी तेज है, इसलिए आप कर सकते हैं उपयोग /dev/shm के बजाय /tmp प्रदर्शन बढ़ावा के लिए, यदि आपकी प्रक्रिया I / O गहन है और व्यापक रूप से अस्थायी फ़ाइलों का उपयोग करती है।

अपने सवालों के जवाब देने के लिए: नहीं, आप हमेशा भरोसा नहीं कर सकते हैं /dev/shm उपस्थित होने के नाते, निश्चित रूप से स्मृति के लिए पंसद मशीनों पर नहीं। आपको उपयोग करना चाहिए /tmp जब तक कि आपके पास उपयोग करने का बहुत अच्छा कारण न हो /dev/shm

उसे याद रखो /tmp का हिस्सा हो सकता है / एक अलग माउंट के बजाय फाइल सिस्टम, और इसलिए आवश्यकतानुसार बढ़ सकता है। इसका आकार /dev/shm सिस्टम पर अतिरिक्त रैम द्वारा सीमित है, और इसलिए आप इस फाइल सिस्टम पर अंतरिक्ष से बाहर होने की अधिक संभावना रखते हैं।


83
2017-09-23 10:18



मैं इसे कमांड के मानक त्रुटि आउटपुट से फ़ाइल में आउटपुट रीडायरेक्ट करने के लिए उपयोग करूँगा। तब मैं इस फाइल को पढ़ूंगा और इसे संसाधित करूंगा। मैं यह कई हज़ार बार करूँगा (यह एक लूप निर्माण की स्थिति का हिस्सा है)। मैंने सोचा कि इस मामले में स्मृति अच्छी होगी। लेकिन मैं यह भी पोर्टेबल होना चाहता हूँ। मुझे लगता है कि मैं जांचूँगा /dev/shm मौजूद है, अगर ऐसा होता है, या फॉलबैक का उपयोग करें /tmp। क्या यह अच्छा लगता है? - Deleted
मैं अनजाने में इसे भरने से बचाने के लिए न्यूनतम आकार और वर्तमान उपयोग स्तर / dev / shm के लिए एक चेक भी जोड़ूंगा। - nagul
लिनक्स 2.6 के तहत और बाद में / dev / shm को POSIX साझा स्मृति सिस्टम कॉल के लिए आरोहित किया जाना चाहिए जैसे shm_open () को काम करने के लिए। दूसरे शब्दों में अगर कुछ माउंट नहीं किया जाता है तो कुछ प्रोग्राम टूट जाएंगे - इसलिए यह होना चाहिए। यह सिर्फ एक राम डिस्क नहीं है। तो आपको यह सुनिश्चित करना चाहिए कि कुछ / dev / shm मुक्त है। - EdH
उपयोग करके कोई प्रदर्शन बढ़ावा नहीं है /dev/shm। /dev/shm डिस्क (स्वैप) द्वारा समर्थित स्मृति (tmpfs) है। /var/tmp डिस्क (ऑन-डिस्क फाइल सिस्टम) द्वारा समर्थित स्मृति (डिस्क कैश) है। अभ्यास में, प्रदर्शन वही है (tmpfs के पास थोड़ा सा किनारा है लेकिन इससे कोई फर्क नहीं पड़ता)। /tmp व्यवस्थापक को कॉन्फ़िगर करने के तरीके के आधार पर tmpfs हो सकता है या नहीं। उपयोग करने के लिए कोई अच्छा कारण नहीं है /dev/shm आपकी लिपियों में - Gilles
@GaretClaborn स्वैप द्वारा समर्थित स्मृति का उपयोग करने के बहुत अच्छे कारण हैं, लेकिन इसे सामान्य प्रक्रिया मेमोरी कहा जाता है। यदि आप फ़ाइल का उपयोग कर रहे हैं, तो इसे फाइल सिस्टम कहा जाता है, और सभी फाइल सिस्टम मेमोरी (कैश) होते हैं, जिन्हें फाइल सिस्टम टीएमएफएफ की तरह कुछ है तो स्वैप द्वारा समर्थित किया जाता है। स्वैप और अन्य स्टोरेज क्षेत्रों के बीच डिस्क स्थान आवंटित करना आमतौर पर व्यवस्थापक के वास्तविक में होता है। यदि कोई एप्लिकेशन उन फ़ाइलों को चाहता है जो रैम में रहें, /tmp सामान्य स्थान है (के साथ $TMPDIR उल्लंघन करने के लिए)। बनाने के लिए विकल्प /tmp स्वैप द्वारा समर्थित, अन्य डिस्क स्थान या कुछ भी प्रशासक नहीं है। - Gilles


के अवरोही क्रम में tmpfs संभावना:

┌───────────┬──────────────┬────────────────┐
│ /dev/shm  │ always tmpfs │ Linux specific │
├───────────┼──────────────┼────────────────┤
│ /tmp      │ can be tmpfs │ FHS 1.0        │
├───────────┼──────────────┼────────────────┤
│ /var/tmp  │ never tmpfs  │ FHS 1.0        │
└───────────┴──────────────┴────────────────┘

चूंकि आप एक लिनक्स विशिष्ट के बारे में पूछ रहे हैं tmpfs एक पोर्टेबल परिभाषित निर्देशिका बनाम माउंटपॉइंट हो सकता है tmpfs (अपने sysadmin के आधार पर और आपके distro के लिए डिफ़ॉल्ट क्या है), आपके प्रश्न में दो पहलू हैं, जो अन्य उत्तरों ने अलग-अलग जोर दिया है:

  1. इन निर्देशिकाओं का उपयोग कब करें अच्छा अभ्यास
  2. जब यह tmpfs का उपयोग करने के लिए उपयुक्त है

अच्छे आचरण

कंज़र्वेटिव संस्करण (से सम्मेलन का मिश्रण FHS और आम उपयोग):

  • संदेह में, उपयोग करें /tmp
  • उपयोग /var/tmp बड़े डेटा के लिए जो आसानी से राम में फिट नहीं हो सकता है।
  • उपयोग /var/tmp डेटा के लिए जो रीबूट (जैसे कैश की तरह) रखने के लिए फायदेमंद है।
  • उपयोग /dev/shm कॉलिंग के दुष्प्रभाव के रूप में shm_open()। लक्षित दर्शकों को बफर बाध्य किया जाता है जो अंतहीन रूप से अधिलेखित होते हैं। तो यह लंबे समय तक चलने वाली फाइलों के लिए है, जिनकी सामग्री अस्थिर है और बहुत बड़ी नहीं है।
  • यदि अभी भी संदेह है, तो उपयोगकर्ता को ओवरराइड करने का एक तरीका प्रदान करें। उदाहरण के लिए, mktemp कार्यक्रम सम्मानित करता है TMPDIR वातावरण विविधता।

व्यावहारिक संस्करण:

उपयोग /dev/shm जब tmpfs का उपयोग करना महत्वपूर्ण है, /var/tmp जब यह महत्वपूर्ण नहीं है, अन्यथा /tmp

जहां tmpfs excels

fsync tmpfs पर एक नो-ऑप है। यह सिस्कोल (आईओ) प्रदर्शन (और फ्लैश दीर्घायु, यदि आप इसके बारे में परवाह करते हैं) का नंबर एक दुश्मन है, हालांकि यदि आप स्वयं को tmpfs (या eatmydata) बस fsync को हराने के लिए, तो आप (या श्रृंखला में कुछ अन्य डेवलपर) कुछ गलत कर रहे हैं। इसका मतलब यह है कि स्टोरेज डिवाइस की ओर लेन-देन आपके उद्देश्य के लिए अनावश्यक रूप से दानेदार हैं - आप प्रदर्शन के लिए कुछ बचत बिंदुओं को छोड़ने के लिए स्पष्ट रूप से तैयार हैं, क्योंकि अब आप उन्हें सबसे अच्छा समझौता करने के चरम पर चले गए हैं। साथ ही, यह लेनदेन प्रदर्शन भूमि में है जहां एसएसडी रखने के कुछ सबसे बड़े लाभ हैं - किसी भी सभ्य एसएसडी को कताई डिस्क संभवतः ले सकती है (7200 आरपीएम = 120 हर्ट्ज) की तुलना में इस दुनिया को निष्पादित करने जा रही है। , अगर नोटिसिंग इसे एक्सेस कर रहा है), फ्लैश मेमोरी कार्ड का उल्लेख न करें, जो इस मीट्रिक पर व्यापक रूप से भिन्न होता है (कम से कम नहीं, क्योंकि यह अनुक्रमिक प्रदर्शन के साथ एक ट्रेडऑफ है, जिसे वे रेट करते हैं, जैसे एसडी कार्ड क्लास रेटिंग)। तो सावधान रहें, तेजी से एसएसडी के साथ डेवलपर्स, अपने उपयोगकर्ताओं को इस उपयोग मामले में मजबूर नहीं करने के लिए!

एक हास्यास्पद कहानी सुनना चाहते हैं? मेरा पहला fsync सबक: मेरे पास एक नौकरी थी जिसमें नियमित रूप से स्क्लाइट डेटाबेस (टेस्टकेस के रूप में रखा गया) का एक गुच्छा नियमित रूप से "अपग्रेडिंग" शामिल होता था। एक डेटाबेस को अपग्रेड करने के लिए "अपग्रेड" फ्रेमवर्क स्क्रिप्ट का एक गुच्छा चलाएगा, प्रत्येक को कम से कम एक लेनदेन कर देगा। बेशक, मैंने अपने डेटाबेस को समांतर में उन्नत किया (समानांतर में 8, क्योंकि मुझे एक शक्तिशाली 8 कोर सीपीयू से आशीर्वाद मिला था)। लेकिन जैसा कि मैंने पाया, वहां कोई समांतरता गति नहीं थी (बल्कि थोड़ा सा मारो) क्योंकि प्रक्रिया पूरी तरह से आईओ बंधी थी। हिंसक रूप से, एक स्क्रिप्ट में अपग्रेड फ्रेमवर्क को लपेटकर प्रत्येक डेटाबेस को कॉपी किया गया /dev/shm, इसे वहां अपग्रेड किया गया, और इसे वापस डिस्क पर कॉपी किया गया था 100 गुना तेज (अभी भी समानांतर में 8 के साथ)। एक बोनस के रूप में, पीसी था प्रयोग करने योग्य भी, डेटाबेस को अपग्रेड करते समय भी।

जहां tmpfs उचित है

Tmpfs का उचित उपयोग अस्थिर डेटा के अनावश्यक लेखन से बचने के लिए है। प्रभावी रूप से अक्षम करना वापस लिखनासेटिंग की तरह /proc/sys/vm/dirty_writeback_centisecs नियमित फाइल सिस्टम पर अनंतता के लिए।

प्रदर्शन के साथ यह बहुत कम है, और यह विफल रहा है fsync का दुरुपयोग करने से बहुत छोटी चिंता है: लिखने का समय निर्धारित करता है कि पेजकैच सामग्री के बाद डिस्क सामग्री को कितनी आलसी अद्यतन किया जाता है, और 5 सेकंड का डिफ़ॉल्ट कंप्यूटर के लिए लंबा समय होता है - एक पृष्ठ पृष्ठकैच में जितनी बार चाहें फ़ाइल को ओवरराइट कर सकता है, लेकिन डिस्क पर सामग्री केवल 5 सेकंड में एक बार अपडेट की जाती है। जब तक एप्लिकेशन इसे fsync के साथ नहीं ले जाता है, वह है। इस समय इस बारे में सोचें कि एप्लिकेशन कितनी बार एक छोटी फाइल को आउटपुट कर सकता है, और आप देखते हैं कि क्यों हर एक को झुकाव एक बड़ी समस्या होगी।

क्या tmpfs आपको मदद नहीं कर सकता है

  • प्रदर्शन पढ़ें। यदि आपका डेटा गर्म है (जो बेहतर होगा यदि आप इसे tmpfs में रखने पर विचार करते हैं), तो आप पेजकेश को वैसे भी दबाएंगे। अंतर तब होता है जब पेज कैश पर नहीं मारा जाता है; यदि यह मामला है, तो नीचे "जहां tmpfs sux" पर जाएं।
  • लघु जीवित फाइलें। ये पेजकाचे में अपने पूरे जीवन जी सकते हैं (जैसा कि गंदा पेज) कभी लिखे जाने से पहले। जब तक आप इसे मजबूर नहीं करते fsync बेशक।

जहां tmpfs sux

रखना सर्दी डेटा। आपको यह सोचने का लुत्फ उठाया जा सकता है कि स्वैप से फाइलों की सेवा करना सामान्य फाइल सिस्टम के समान ही कुशल है, लेकिन कुछ कारण हैं कि यह क्यों नहीं है:

  • सबसे आसान कारण: समकालीन स्टोरेज डिवाइस (चाहे हार्डडिस्क या फ्लैश आधारित हो) कुछ भी नहीं है, उचित फाइल सिस्टम द्वारा व्यवस्थित रूप से व्यवस्थित काफी अनुक्रमिक फ़ाइलों को पढ़ने से ज्यादा प्यार करता है। 4KiB ब्लॉक में स्वैपिंग उस पर सुधार करने की संभावना नहीं है।
  • छिपी हुई लागत: स्वैपिंग बाहर। Tmpfs पेज हैं गंदा - उन्हें पृष्ठकैच से बेदखल करने के लिए कहीं भी (स्वैप करने के लिए) लिखा जाना चाहिए, जैसा कि समर्थित फ़ाइल के विपरीत है स्वच्छ पेज जिन्हें तत्काल गिराया जा सकता है। यह स्मृति के लिए प्रतिस्पर्धा करने वाली हर चीज पर एक अतिरिक्त लेखन जुर्माना है - उन tmpfs पृष्ठों के उपयोग से अलग समय पर किसी और चीज को प्रभावित करता है।

43
2018-01-24 21:20



मेरे उबंटू 14.04 / dev / shm में / run / shm से लिंक है, जिसमें कमांड डीएफ के अनुसार फाइल सिस्टम "none" है। आकार लगभग 2 जी है, हालांकि। - jarno
@jarno सबसे पहले, tmpfs माउंटपॉइंट्स की संख्या का अर्थीकरण, मैं एक कार्यान्वयन विस्तार कॉल करेंगे। दूसरा, डिवाइस का नाम आपको भ्रमित न करने दें - / proc / mounts (यह देखने के लिए सही जगह है) में देखें, और आप देखेंगे कि यह प्रकार "tmpfs" है जबकि युक्ति यहां "कोई नहीं" है। हां, डिवाइस का नाम tmpfs में कुछ भी नहीं है - आप कर सकते हैं mount -t tmpfs "jarno is great" /mnt/jarno यदि आप चाहते हैं! तीसरा, डिफ़ॉल्ट आकार रैम की आधा राशि है - मुझे लगता है कि आपके पास 4 जीआईबी रैम है। - user2394284
क्या कोई ऐसा विकल्प है जो एक निश्चित RAM आकार आवंटित करता है और कभी भी स्वैप का उपयोग करने का वादा करता है? - palswim
@palswim: वह एक रैमडिस्क होगा। मुझे इसके लिए कोई विकल्प नहीं दिख रहा है tmpfs, उस tmpfs 'पूर्ववर्ती के अलावा स्वैपिंग का समर्थन नहीं किया था। प्रक्रियाएं अपने पृष्ठों को रैम में लॉक कर सकती हैं, जो रैम में tmpfs पृष्ठों को लॉक करने से तर्कसंगत रूप से कम पागल है, क्योंकि ओओएम हत्यारा उत्तरार्द्ध को मुक्त करने में असमर्थ है, क्या आपको स्मृति से बाहर निकलना चाहिए। - user2394284


ठीक है, यहाँ वास्तविकता है।

दोनों tmpfs और एक सामान्य फाइल सिस्टम डिस्क पर एक स्मृति कैश हैं।

Tmpfs मेमोरी और स्वैपस्पेस का उपयोग करता है क्योंकि यह बैकिंग स्टोर है, एक फाइल सिस्टम डिस्क के विशिष्ट क्षेत्र का उपयोग करता है, न ही फाइल सिस्टम के आकार में सीमित है, एक जीबी रैम से कम मशीन पर 200 जीबी टीएमएफएफ होना संभव है आपके पास पर्याप्त स्वैपस्पेस है।

अंतर तब होता है जब डेटा डिस्क पर लिखा जाता है। एक tmpfs के लिए डेटा केवल तभी लिखा जाता है जब स्मृति बहुत अधिक हो जाती है या डेटा जल्द ही उपयोग नहीं किया जा सकता है। ओटीओएच सबसे सामान्य लिनक्स फाइल सिस्टम हमेशा डिस्क पर डेटा का कम या कम सेट सेट करने के लिए डिज़ाइन किए जाते हैं ताकि उपयोगकर्ता प्लग खींच सके तो वे सबकुछ खो नहीं सकते हैं।

निजी तौर पर, मुझे ऑपरेटिंग सिस्टम रखने के लिए उपयोग किया जाता है जो क्रैश और यूपीएस सिस्टम (उदाहरण: लैपटॉप बैटरी) नहीं है, इसलिए मुझे लगता है कि ext2 / 3 फाइल सिस्टम उनके 5-10 सेकंड चेकपॉइंट अंतराल के साथ बहुत पागल हैं। Ext4 फाइल सिस्टम 10 मिनट के चेकपॉइंट के साथ बेहतर है, सिवाय इसके कि यह उपयोगकर्ता डेटा को दूसरी कक्षा के रूप में मानता है और इसकी रक्षा नहीं करता है। (ext3 वही है लेकिन आप इसे 5 सेकंड चेकपॉइंट के कारण नहीं देखते हैं)

यह लगातार चेकपॉइंटिंग का मतलब है कि अनावश्यक डेटा लगातार डिस्क पर लिखा जा रहा है, यहां तक ​​कि / tmp के लिए भी।

तो नतीजा यह है कि आपको स्वैप स्पेस को उतना बड़ा बनाने की आवश्यकता है जितनी आपको अपनी / tmp होने की आवश्यकता है (भले ही आपको एक स्वैपफ़ाइल बनाना है) और आवश्यक स्थान के tmpfs को / tmp पर आरोहित करने के लिए उस स्पेस का उपयोग करें।

कभी भी / dev / shm का उपयोग न करें।

जब तक, आप इसे बहुत छोटी (शायद mmap'd) आईपीसी फाइलों के लिए उपयोग नहीं कर रहे हैं और आप सुनिश्चित हैं कि यह मौजूद है (यह मानक नहीं है) और मशीन में पर्याप्त मेमोरी + स्वैप उपलब्ध है।


16
2017-12-31 17:03



निष्कर्ष निकालने के अलावा, "कभी भी उपयोग / dev / shm" सहमत नहीं है। आप उन मामलों में / dev / shm का उपयोग करना चाहते हैं जहां आप डिस्क पर फ़ाइल को लिखना नहीं चाहते हैं, और आप डिस्क I / o को कम करना चाहते हैं। उदाहरण के लिए, मुझे एक FTP सर्वर से बहुत बड़ी ज़िप फ़ाइलों को डाउनलोड करने की आवश्यकता है, उन्हें अनजिप करें, और फिर उन्हें डेटाबेस में आयात करें। मैं / dev / shm को अनजिप करता हूं ताकि दोनों अनजिप और आयात संचालन के लिए एचडीडी को केवल स्रोत और गंतव्य के बीच आगे बढ़ने की बजाय आधा ऑपरेशन करने की आवश्यकता हो। यह प्रक्रिया को तेजी से गति देता है। यह कई लोगों का एक उदाहरण है, लेकिन मैं मानता हूं कि यह एक विशिष्ट उपकरण है। - Nathan Stretch


अस्थायी फ़ाइलों के लिए / tmp / का प्रयोग करें। जब आप साझा मेमोरी चाहते हैं तो / dev / shm / का उपयोग करें (यानी, फ़ाइलों के माध्यम से इंटरप्रोसेस संचार)।

आप वहां / tmp / पर भरोसा कर सकते हैं, लेकिन / dev / shm / अपेक्षाकृत हाल ही में लिनक्स केवल एक चीज है।


4
2017-09-23 00:03



क्या कोई प्रदर्शन पहलू भी नहीं है? चूंकि / dev / shm को अक्सर एक tmpfs वॉल्यूम के रूप में आरोहित किया जाता है और अनिवार्य रूप से एक RAM-disk है? - Deleted
आप एक tmpfs फाइल सिस्टम के रूप में माउंट / tmp भी कर सकते हैं, मैं अपनी नेटबुक पर (धीमी) एसएसडी को लिखने को कम करके कुछ चीजों को गति देने के लिए ऐसा करता हूं। ऐसा करने के नुकसान हैं, ज़ाहिर है (मुख्य रूप से रैम का उपयोग, लेकिन मेरी नेटबुक में आम तौर पर वैसे भी ज्यादा रैम है)। - David Spillett
मेरे विशिष्ट मामले के लिए मैं इसे एक प्रकार की प्रक्रिया संचार के लिए उपयोग करूंगा। मैं किसी एप्लिकेशन से मानक त्रुटि के आउटपुट को कैप्चर करता हूं और सामग्री पर कार्य करता हूं (और मुझे अभी भी मानक आउटपुट की आवश्यकता नहीं है, इसलिए मैं कोई भी नहीं कर सकता 1>/dev/null 2>&1। मैं यह कई हज़ार बार करता हूं इसलिए एक tmpfs अच्छा होगा। हालांकि अगर मैं स्क्रिप्ट जारी करता हूं तो मैं टीएमएफएफ पर भरोसा नहीं कर सकता हूं /tmp जैसा कि मुझे लगता है कि यह आम नहीं है। यदि यह अधिक आम है /dev/shm तो यह मेरे लिए बेहतर है। लेकिन मैं पोर्टेबिलिटी आदि के बारे में दिशानिर्देशों की तलाश में हूं। - Deleted


एक और बार जब आपको / dev / shm (लिनक्स 2.6 और ऊपर के लिए) का उपयोग करना चाहिए, तब आपको एक गारंटीकृत tmpfs फ़ाइल सिस्टम की आवश्यकता होती है क्योंकि आप नहीं जानते कि आप कर सकते हैं डिस्क में संग्रहित करें।

केंद्रीय सर्वर पर जमा करने के लिए अपनी रिपोर्ट बनाते समय एक निगरानी प्रणाली जिसे मैं परिचित हूं, अस्थायी फ़ाइलों को लिखने की जरूरत है। यह प्रैक्टिस में कहीं अधिक संभावना है कि कुछ फाइल सिस्टम को लिखने से रोक देगा (या तो डिस्क स्पेस से बाहर या अंतर्निहित RAID विफलता ने सिस्टम को हार्डवेयर रीड-ओनली मोड में धक्का दिया है) लेकिन आप अभी भी अलर्ट के साथ लापरवाही कर पाएंगे इसके बारे में कुछ सर्पिल सभी उपलब्ध स्मृति जैसे कि tmpfs अनुपयोगी होगा (और बॉक्स मर जाएगा नहीं)। इस तरह के मामलों में, एक निगरानी प्रणाली रैम को लिखना पसंद करेगी ताकि संभावित रूप से पूर्ण डिस्क या मृत / मरने वाले हार्डवेयर के बारे में अलर्ट भेजने में सक्षम हो सके।


1
2017-09-05 22:08





/ dev / shm का उपयोग साझा वर्चुअल मेमोरी सिस्टम विशिष्ट डिवाइस ड्राइवरों और प्रोग्राम्स के लिए किया जाता है।

यदि आप एक प्रोग्राम बना रहे हैं जिसके लिए वर्चुअल मेमोरी ढेर की आवश्यकता है जिसे वर्चुअल मेमोरी में मैप किया जाना चाहिए। यह दोगुना हो जाता है इसलिए यदि आपको उस स्मृति को सुरक्षित रूप से एक्सेस करने में सक्षम होने के लिए एकाधिक प्रक्रियाओं या धागे की आवश्यकता होती है।

तथ्य यह है कि सिर्फ इसलिए कि ड्राइवर इसके लिए tmpfs का एक विशेष संस्करण उपयोग करता है, इसका मतलब यह नहीं है कि आपको इसे सामान्य tmpfs विभाजन के रूप में उपयोग करना चाहिए। इसके बजाय, अगर आप अपनी अस्थायी निर्देशिका के लिए चाहते हैं तो आपको बस एक और tmpfs विभाजन बनाना चाहिए।


0
2017-10-11 23:22





पीआरएल में, किसी भी मशीन (सभी चल रहे लिनक्स मिंट) पर 8 जीबी न्यूनतम होने के कारण, मुझे लगता है कि डीबी_फाइल-आधारित (फाइल में डेटा स्ट्रक्चर) जटिल एल्गोरिदम करने की एक अच्छी आदत है जिसमें लाखों पढ़ते हैं और लिखते हैं / dev / shm

किसी अन्य प्रकार की बैच फ़ाइल का उपयोग करते हुए, अन्य भाषाओं में, नेटवर्क स्थानांतरण में प्रारंभ और बंद होने से बचने के लिए, हर जगह एक साथ रहने के लिए, क्लाइंट-सर्वर वायुमंडल में सर्वर पर स्थित फ़ाइल पर स्थानीय रूप से काम करना), मैं प्रतिलिपि बनाउंगा पूरी तरह से (300-900 एमबी) फ़ाइल / dev / shm पर फ़ाइल, आउटपुट के साथ प्रोग्राम को / dev / shm पर चलाएं, परिणामों को सर्वर पर वापस लिखें, और / dev / shm से हटाएं

स्वाभाविक रूप से, अगर मेरे पास कम रैम था, तो मैं ऐसा नहीं करूँगा। आमतौर पर, / dev / shm की इन-मेमोरी फ़ाइल सिस्टम आपके उपलब्ध रैम का आधा आकार आकार के रूप में पढ़ती है। हालांकि, राम का सामान्य उपयोग स्थिर है। तो आप वास्तव में 2 जीबी या उससे कम डिवाइस पर ऐसा नहीं कर सके। पैराफ्रेश को हाइपरबोले में बदलने के लिए, राम में अक्सर चीजें होती हैं कि सिस्टम भी अच्छी तरह से रिपोर्ट नहीं करता है।


0
2017-09-27 21:02



(मुझे लगता है कि यह मूल रूप से पूछा गया था की भावना में है।) मेरा मूल अर्थ यह है कि जब तक मेरे पास पर्याप्त स्मृति है, तब तक मैं राम डिस्क के रूप में / dev / shm का उपयोग कर आरामदायक हूं। यदि यह किसी भी तरह से ऐसा करने में अक्षम है, तो आपको ऐसा करने से नहीं रोकना चाहिए, लेकिन एक प्रश्न को ट्रिगर करना चाहिए जैसे "मेरे पास लिनक्स पर रैम डिस्क कैसे हो सकती है?"। जवाब / dev / shm है - David Grove