2016-08-28 13 views
5

मेरे पास एक डॉकर कंटेनर है जो डिस्क पर पढ़ने/लिखने के बहुत सारे करता है। मैं यह जांचना चाहता हूं कि क्या होता है जब मेरा पूरा डॉकर फाइल सिस्टम स्मृति में होता है। मैंने यहां कुछ जवाब देखे हैं जो कहते हैं कि यह वास्तविक प्रदर्शन सुधार नहीं होगा, लेकिन यह परीक्षण के लिए है।डॉकर: मेमोरी फाइल सिस्टम में

आदर्श समाधान जो मैं परीक्षण करना चाहता हूं वह प्रत्येक छवि के सामान्य भागों को साझा करना और आवश्यकता होने पर आपकी मेमोरी स्पेस पर प्रतिलिपि बनाना है।

रनटाइम के दौरान बनाए गए प्रत्येक कंटेनर फ़ाइलों को स्मृति में भी अलग किया जाना चाहिए। यह निष्क्रिय समय में 5 जीबी से अधिक और प्रसंस्करण समय में 7 जीबी तक नहीं होना चाहिए।

सरल समाधान प्रत्येक कंटेनर के लिए सभी साझा फ़ाइलों (यहां तक ​​कि ओएस के उन हिस्सों का उपयोग नहीं करते) को डुप्लिकेट करेंगे।

उत्तर

5

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

यदि आप जानते हैं जहाँ आपके आरडब्ल्यू गतिविधि हो रहा है (यह एक चल कंटेनर के docker diff जाँच करने के लिए काफी आसान है), मेरे लिए सबसे अच्छा विकल्प एक tmpfs अपने कंटेनर, जो मूल रूप डोकर द्वारा समर्थित है में उस स्थान पर रखा होगा (docker run reference से):

$ docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image 
+0

बिल्कुल सही! 'डॉकर diff' mention का उल्लेख करने के लिए धन्यवाद –

1

डॉकर डिफ़ॉल्ट रूप से अपनी निर्देशिका में छवि, कंटेनर और वॉल्यूम डेटा स्टोर करता है। कंटेनर एचडी मूल छवि और 'कंटेनर परत' से बने होते हैं।

आप इसे RAM disk का उपयोग करके सेट अप कर सकते हैं। आप कुछ रैम आवंटित करेंगे, इसे माउंट करेंगे, और इसे अपनी पसंद की फाइल सिस्टम के साथ प्रारूपित करेंगे। फिर move your docker installation घुड़सवार रैम डिस्क पर और इसे मूल स्थान पर वापस सिमलिंक करें।

Setting up a Ram Disk

Best way to move the Docker directory

जाहिर है इस डोकर के रूप में परीक्षण के लिए ही उपयोगी है और यह चित्र, मात्रा, कंटेनर, आदि रिबूट पर खो जाएगा है।

+0

मैं कंटेनर HD स्मृति और मेजबान पर नहीं डोकर स्थापना में होना चाहता हूँ। – qballer

+0

डॉकर डिफ़ॉल्ट रूप से इसकी निर्देशिका में छवि, कंटेनर और वॉल्यूम डेटा स्टोर करता है। कंटेनर एचडी मूल छवि और 'कंटेनर परत' से बने होते हैं। https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/ –

+0

शायद इसका उपयोग करने के लिए बेहतर है, लेकिन मैंने कोशिश नहीं की है: https://docs.docker.com/registry/storage-drivers/inmemory/इसके अलावा, लिनक्स और अन्य ओएस में डिस्क कैशिंग में अंतर्निहित है, इसलिए आपके कंटेनर की डिस्क एक्सेस वास्तविक डिस्क को किसी भी तरह से मार नहीं सकती है। – sudo

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