क्या हमें LAMP सर्वर पर स्वैप विभाजन की आवश्यकता है?


14

क्या हमें वास्तव में LAMP के साथ ubuntu-server पर विभाजन की आवश्यकता है? मुझे लगता है कि मुझे इसकी आवश्यकता नहीं है, लेकिन यह सुनिश्चित करने के लिए बेहतर है कि यह कुछ अप्रत्याशित व्यवहार का कारण नहीं होगा।
वास्तव में मेरे विचार थे:

  • सर्वर कभी हाइबरनेट नहीं होता है
  • अगर यह लोडिंग / ट्रैफिक को आकार देने, आदि के बारे में सोचने के लिए किसी की अदला-बदली कर रहा है ...

क्या मैं सही हूं कि मैं उत्पादन सर्वर के लिए स्वैप बंद कर सकता हूं?

धन्यवाद!

जवाबों:


14

क्या मैं सही हूं कि मैं उत्पादन सर्वर के लिए स्वैप बंद कर सकता हूं?

नहीं। हमेशा कुछ स्वैप स्थान रखें।

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

जब आप रैम से बाहर निकलते हैं और कोई स्वैप नहीं होता है, तो प्रक्रियाएं मर जाती हैं, चीजें स्टाल हो जाती हैं और बहुत समय आपका एकमात्र विकल्प रिबूट होता है। लेकिन जब तक आप उस रिबूट को करते हैं, चीजें शायद टूट जाएंगी।

मेरी दुनिया में, टूटना धीमे से भी बदतर है।

बेशक, यदि आप पाते हैं कि आपका सिस्टम लगातार स्वैप के बड़े हिस्से का उपयोग कर रहा है (यह अक्सर पुराने कैश्ड सामान को बाहर निकालने के तरीके के रूप में कुछ का उपयोग करेगा ), तो आपको स्पष्ट रूप से एक समस्या है ("RAM कृपया डालें"), लेकिन इसे होने के रूप में एक सुरक्षा जाल निश्चित रूप से अनुशंसित है।


SpamapS की टिप्पणी के जवाब में:

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

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

एक धीमी सर्वर आदर्श से कम है, लेकिन स्वैप हर समय चलने के लिए नहीं है, यह एक अंतिम उपाय है कि आप उन्हें ठीक करते समय चीजों को चलाते रहें।

आप यह भी मानते हैं कि मशीन पर केवल एक सेवा चल रही है। यह सच हो सकता है यदि आपके पास सब कुछ अलग करने के लिए मेगाबक्स है, लेकिन वास्तविक दुनिया में, चीजें एक साथ मिलती हैं। कई वेबसाइट, ssh डेमोंस, एफटीपी सर्वर, ईमेल सर्वर आदि। स्वैप में लीक होने वाली एक प्रक्रिया भी किसी अन्य सेवा को प्रभावित नहीं कर सकती है। स्वैप के बिना, सब कुछ तत्काल, यादृच्छिक समाप्ति का एक समान मौका है। इस पर आपका कोई नियंत्रण नहीं है।

बेशक स्वैप केवल जवाब नहीं है। जब आप राम से बाहर होते हैं, तो आपको सतर्क करने के लिए निगरानी की आवश्यकता होती है, लेकिन बस प्लग को खींचना और रीबूट करना अधिकांश लोगों के लिए जवाब नहीं है। मुझे यकीन है कि यह जो भी बहु-राष्ट्रीय वेबसाइट आपके लिए ज़िम्मेदार है, लेकिन हमारे लिए केवल नश्वर (जो इंटरनेट का अधिकांश हिस्सा बनाती है), यह वाणिज्यिक आत्महत्या है।


यहाँ एक ही अनुभव, थोड़े ... यह मेरे पक्ष में एक गलती थी एक जानबूझकर निर्णय नहीं। स्वैप के बिना एक सर्वर मरम्मत के लिए एक नरक है, खासकर अगर यह sshd को मारने का फैसला करता है।
जेवियर रिवेरा

मेरे पास लगभग 16 जीबी रैम है, इसका आधा भाग तेज आईओ के लिए कैश किया गया है, बाकी लैम्प के लिए है, स्वैप हमेशा फ्री होता है, या कुछ समय में कुछ हीग होता है, लेकिन मुझे लगता है कि यह हमेशा बंद रहता है ...
अरमान

3
सफल वेबसाइटों की दुनिया में, अनुत्तरदायी टूट से भी बदतर है। उपयोगकर्ता वास्तव में एक FAST विफलता की सराहना करेंगे (जो, आपके जावास्क्रिप्ट फ्रंटएंड कोड को सुंदर ढंग से btw को संभालना चाहिए), लेकिन वे आपको धीमे होने के लिए घृणा करेंगे। स्वैप खाई, यह सिर्फ अपरिहार्य देरी। -1
स्पैम्स

1
@ ओली: एन + 1 चलाने से अब मेगाबक्स या बहुत अधिक रुपये नहीं लगते हैं। वास्तव में यह शायद ही विशेष कौशल लेता है। यह अपरिहार्य है कि किसी भी कारण से एक सर्वर नीचे चला जाएगा, और इसे गैर-मुद्दा होने से रोकने के लिए कठिन नहीं है। यदि आपके पास सब कुछ करने वाला एक अकेला एलएएमपी सर्वर है, तो अधिक लागत क्या है; दो और अधिक और एक लोड बैलेंसर सेट करना (EC2 पर t1.micros और EBS स्नैपशॉट के साथ, यह बहुत सस्ता हो सकता है), या आपकी साइट अपने सबसे बड़े दिन असामान्य रूप से धीमी हो रही है? Google से डेटा की जांच करें ... मुझे लगता है कि इसका स्पष्ट बिट। H
1BAD1

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

4

मैं उत्पादन सर्वर पर स्वैप होने से असहमत हूं।

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

SSD स्वैप एक विशेष मामला है और कम से कम तलाश के समय को धीमा कर देगा जो आमतौर पर सिस्टम को मारता है। हालाँकि, लेखन अभी भी धीमा है, इसलिए आप अभी भी एक लंबी प्रतीक्षा कर रहे हैं, लंबे समय तक नियंत्रण प्रक्रिया से बाहर निकलने के लिए।

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

यदि आप PHP का उपयोग कर रहे हैं, तो मेमोरी सीमाएँ सक्षम करें, और अपनी विफलताओं के लिए अपने लॉग की निगरानी करें। यहां एक चाल है, उत्पादन की तुलना में अपने देव सर्वर पर सीमा कम निर्धारित करें । यदि आप Apache के तहत mod_php का उपयोग कर रहे हैं, तो MaxRequestsPerChild को कुछ हज़ार पर सेट करें, ताकि समय के साथ बड़े होने से पहले httpd की मृत्यु हो जाए। इन सबसे ऊपर, स्मृति उपयोग की निगरानी करें! समय के साथ बार-बार मेमोरी रेंगती है, और आपको समय-समय पर समस्या को हल करने के दौरान समय-समय पर एक टपका हुआ सेवा को पुनरारंभ करने की आवश्यकता होती है।


1
अपने अनुभव साझा करने के लिए धन्यवाद। मैं इसी तरह की समस्याओं के साथ हिसाब कर रहा था, जब ssh Inf ले रहा था। मैंने केवल प्रक्रियाओं को सीमित मेमोरी के लिए मजबूर किया, जो मुझे ssh को चलाने और छोटी-छोटी स्क्रिप्ट्स को ठीक करने की अनुमति दे रही थी।
अरमान

उत्पादन में स्वैप स्पेस पर सबसे दिलचस्प चर्चाओं में से एक जो मैंने इंटरनेट पर देखी है। (पूरा सूत्र, समर्थक और विपक्ष)
dpb

3

स्वैप स्पेस का उपयोग तब किया जाता है जब आपका सिस्टम यह निर्णय लेता है कि उसे सक्रिय प्रक्रियाओं के लिए भौतिक मेमोरी की आवश्यकता है और उपलब्ध अप्रयुक्त भौतिक मेमोरी उपलब्ध है। यदि सिस्टम को अधिक स्मृति संसाधनों या स्थान की आवश्यकता होती है, तो भौतिक मेमोरी में निष्क्रिय पृष्ठों को स्वैप स्थान पर ले जाया जाता है, इसलिए अन्य उपयोगों के लिए उस भौतिक मेमोरी को मुक्त कर दिया जाता है।

सर्वर में यह स्थिति कई बार होगी।

ए)। एक गैर-अनुकूलित स्क्रिप्ट बड़ी मात्रा में मेमोरी
बी का उपभोग कर सकती है )। बैकअप जैसे लिपियों में हमेशा भारी मेमोरी की खपत होती है
c)। भारी यातायात

इसलिए कुछ अदला-बदली करने के लिए यह एक अच्छा अभ्यास है।

अधिक जानकारी: https://help.ubuntu.com/community/SwapFaq


समझाने के लिए धन्यवाद। यदि किसी के पास एक छोटी-छोटी स्क्रिप्ट है, तो किसी भी स्थिति में आप सर्वर को क्रैश कर देंगे, सिस्टम की सीमाएँ आपकी स्क्रिप्ट को नियंत्रित कर सकती हैं, है ना?
अरमान

aneeshep, यदि आप भारी ट्रैफ़िक के दौरान स्वैप कर रहे हैं, तो आपका सिस्टम 100x धीमा होने जा रहा है, क्योंकि यह सामान्य रूप से होना चाहिए। आम तौर पर स्वीकार्य नहीं है।
स्पैम्स

2

स्वैप का उपयोग करने से आपको सर्वर अस्थिरता के खिलाफ एक अतिरिक्त सुरक्षा मिलेगी। अच्छी तरह से ऐसे समय हो सकते हैं जब रैम बाहर चल रहा है, और बिना स्वैप के सर्वर पर एक नरम दुर्घटना हो सकती है।

मैं शायद अब अल्पसंख्यक में हूं जब मैं कहता हूं, यह अभी भी समझ में आता है, जैसे वे अनुशंसा करते थे, आपके पास मुख्य मेमोरी के रूप में दो बार स्वैप करने की आवश्यकता होती है। 96GB रैम वाले सिस्टम पर भी।

यह ज्यादा खर्च नहीं करता है, और यदि आपको एक दिन इसकी आवश्यकता है, तो आपको खुशी होगी कि आप इसे प्राप्त कर चुके हैं। स्वैप को सक्षम करने का कारण केवल एक बहुत ही सरल लागत-लाभ विश्लेषण है। कर दो! :-)


0

मैं ओली को सुंदर के लिए धन्यवाद देना चाहता हूं - मुझे पुराना पता है - जवाब। मुझे लगता है कि विभाजन एक हमेशा हरा विषय है! मैं पूरी तरह से ओली के पोस्ट की लाइन से सहमत हूं और मैं इसे साझा करना चाहूंगा - निश्चित रूप से अनुचित - स्क्रिप्ट मैं अपने सर्वर के स्वैप उपयोग की निगरानी के लिए उपयोग करता हूं।

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

मैं प्रोडक्शन के माहौल में हर आधे घंटे में इस स्क्रिप्ट का इस्तेमाल करता हूं। यदि स्वैप उपयोग हो तो यह मुझे एक सूचना भेजेगा! = 0k मैं चीजों की वास्तव में गलत होने से पहले , ज्यादातर समय समस्या की जांच / कार्रवाई करने में सक्षम हो जाऊंगा ।

आपसे अपेक्षा रखता है: बिना किसी जाँच के, bash, top, echo, awk, और एक वर्किंग मेल कमांड।

उम्मीद है की वो मदद करदे।

#!/bin/bash
CURRSWAP=$(top -b -n1 |grep Swap |awk '{print $4}')
ECOMM="echo $CURRSWAP means healthy, I wont take any action."
CURRDATE=$(date)
MAILDST="your@email.addr"

case $CURRSWAP in
  [0]k) $ECOMM
        exit 0
        ;;
  *)    echo -e "Server: $HOSTNAME \n Date: $CURRDATE \n Current Swap partition usage: $CURRSWAP" | mail -s "Warning from $HOSTNAME" -- $MAILDST
        exit 0
        ;;
esac
exit 0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.