समय-समय पर "मेरा" सर्वर स्टॉल करता है क्योंकि यह मेमोरी और स्वैप स्पेस दोनों से बाहर निकलता है। (यह पिंग का जवाब देता है, लेकिन इससे अधिक कुछ भी नहीं, शश भी नहीं)।
मुझे बताया गया है कि लिनक्स मेमोरी ओवरकमिटमेंट करता है, जहां तक मैं समझता हूं कि बैंक पैसे के साथ ऐसा ही करते हैं: यह वास्तव में उपलब्ध से अधिक मेमोरी प्रोसेस करने के लिए अनुदान देता है, यह मानते हुए कि अधिकांश प्रक्रियाएं वास्तव में उन सभी मेमोरी का उपयोग नहीं करती हैं, जो वे पूछते हैं, कम से कम सभी एक ही समय में नहीं।
कृपया मान लें कि यह वास्तव में यही कारण है कि मेरा सिस्टम कभी-कभी लटका हुआ है, चलो यहां चर्चा नहीं करते हैं कि क्या यह मामला है या नहीं (देखें कि सर्वर पर सभी सेवाओं के कारण क्या हो सकता है, फिर भी पिंग का जवाब दे? और यह पता कैसे करें ) ।
इसलिए,
मैं कैसे अक्षम या CentOS में अत्यधिक मेमोरी ओवरकॉम्पिटेशन को कम कर सकता हूं? मैंने पढ़ा है कि दो सेटिंग्स हैं जिन्हें vm.overcommit_memory (मान 0, 1, या 2) और vm.overcommit_ratiom कहा जाता है, लेकिन मुझे नहीं पता कि मुझे उन्हें कहां खोजना है और उन्हें बदलना है (कुछ कॉन्फ़िगरेशन फ़ाइल उम्मीद से), मुझे किन मूल्यों की कोशिश करनी चाहिए , और क्या मुझे परिवर्तनों को प्रभावी बनाने के लिए सर्वर को रिबूट करने की आवश्यकता है।
और क्या यह सुरक्षित है? मैं किस दुष्प्रभाव की उम्मीद कर सकता था? जब overcommit_memory के लिए गुगली करते हैं तो मुझे डरावनी चीजें मिलती हैं जैसे लोग कहते हैं कि उनका सर्वर अब बूट नहीं हो सकता है ...।
चूँकि स्मृति उपयोग में अचानक वृद्धि का कारण mysql है, जो php द्वारा किए गए प्रश्नों के कारण होता है, जिन्हें http अनुरोधों की सेवा करते समय कहा जाता है, मैं बस कुछ php स्क्रिप्ट को पूरा करने में विफल होने की उम्मीद करूंगा और इसलिए समय-समय पर कुछ 500 प्रतिक्रियाएं जब सर्वर बहुत व्यस्त है, जो एक जोखिम है जो मैं ले सकता हूं (निश्चित रूप से बेहतर है कि पूरे सर्वर दुर्गम हो गया है और इसे मुश्किल से रिबूट करना है)।
या यह वास्तव में मेरे सर्वर को गलत सेटिंग्स चुनने पर रीबूट करने में असमर्थ होने का कारण बन सकता है?