फाइल ट्रांसफर के दौरान डिस्क I/O के कारण होने वाला OOM किलर
नमस्ते, मैं मुनो हूं।
अपने नए घर में सस्ते में होम सर्वर स्थापित किए हुए कुछ दिन हो गए हैं। एक समस्या जिसके बारे में मैं पहले से ही उत्सुक था, वह बहुत अधिक मेमोरी होने के बावजूद भी उत्पन्न हो गई।
क्या हुआ?
मेरा वर्तमान वातावरण थोड़ा असामान्य है, या यों कहें कि मेमोरी क्षमता 16GB + 8GB है, जो कि एक अधूरा सेटअप है, लेकिन कृपया समझें कि यह बचे हुए पुर्जों से बनाया गया था।
हालांकि, 24GB RAM के साथ, जो आजकल सामान्य हो सकता है, यह मेरे लिए काफी समृद्ध स्थिति थी, इसलिए मुझे लगा कि OOM जैसी कोई चीज़ नहीं होगी, लेकिन Linux कर्नेल से एक डांट जैसी OOM घटना हुई।
एप्लिकेशन जैसे कि Apache, php-fpm, और Redis, प्रत्येक द्वारा आवंटित मेमोरी बहुत कम होती है...
फाइल ट्रांसफर से जूझना
यह तब हुआ जब मैं अपने पैतृक घर में रखे होम सर्वर से scp के माध्यम से फाइलें लाने की कोशिश कर रहा था, या जब मैं कुछ इमेज को एक साथ aria2c का उपयोग करके 2TB HDD में सहेज रहा था।
तो, यह सवाल उठता है कि केवल इस लेखन प्रक्रिया से OOM क्यों होता है? ऐसा इसलिए है क्योंकि फाइलों को पहले मेमोरी में प्राप्त किया जाता है और फिर रिकॉर्डिंग क्षेत्र में लिखा जाता है, इसलिए गति बढ़ाने के लिए उन्हें एक बार कैश के रूप में मेमोरी में स्वीकार करना आवश्यक है।
ऐसा लगता है कि scp -r के साथ सैकड़ों GB की फाइलें, खासकर जब उन फाइलों में रैंडम I/O प्रोसेसिंग शामिल होती है, तो वे वास्तव में बहुत सारे संसाधनों का उपभोग करती हैं।
और चूंकि यह प्रति-प्रक्रिया मेमोरी उपयोग के अंतर्गत नहीं आता है, इसलिए इसे top के साथ जांचने पर भी एक ही प्रक्रिया में नहीं देखा जा सकता है, और यह केवल Linux कर्नेल से संबंधित है, इसलिए इसे पहचानना काफी मुश्किल है।
संक्षेप में, ऐसा लगता है कि I/O प्रतीक्षा के कारण, मेमोरी में अस्थायी रूप से संग्रहीत डेटा की मात्रा लेखन गति के साथ तालमेल नहीं बिठा पाती है, जिससे धीरे-धीरे संसाधनों की कमी हो जाती है।
बदले जा सकने वाले कर्नेल पैरामीटर
कर्नेल की ओर से, कैश की मात्रा जैसी सेटिंग्स को कॉन्फ़िगर किया जा सकता है, और मैंने उन्हें समायोजित करने की कोशिश की, लेकिन मुझे ज्यादा प्रभाव महसूस नहीं हुआ।
2.2. VFS ट्यूनिंग विकल्प: अनुसंधान और प्रयोग Red Hat उत्पाद दस्तावेज़
Linux पेज कैश सेटिंग्स को बदलकर राइट I/O को ट्यून करने पर नोट्स - YOMON8.NET
यह घटना इस व्यक्ति के समान है।
धीमी डिस्क I/O के कारण OOM किलर को बुलाया गया - #17 by Whis-key - समस्या निवारण - Storj सामुदायिक मंच (आधिकारिक)
काफी समय बाद Storj शब्द देखा... हालांकि मेरा मुफ्त कोटा अपने आप हटा दिया गया था...
यह अविश्वसनीय है कि मुझे केवल HDD में लिखने से मेमोरी की कमी के बारे में चिंता करनी पड़ रही है...।
यह अक्सर कहा जाता है कि मेमोरी के संबंध में, "Linux RAM के प्रति आशावादी है, जबकि Windows निराशावादी है।" हालांकि, मैं मेमोरी का पूरा उपयोग करके प्रदर्शन को अधिक कुशल बनाने के इरादे को समझ सकता हूं, लेकिन मैं किसी तरह इस I/O प्रतीक्षा के कारण होने वाली समस्या का समाधान करना चाहता हूं।