सिंक कमांड क्या करता है?


15

मुझे पता है कि यह क्या करता है ... मुझे लगता है कि मैं उत्सुक हूं कि यह एक आवेदन में एक समस्या को ठीक कर रहा है जो मुझे विरासत में मिला है। मैंने काफी बड़े टॉमकैट एप्लिकेशन को संभाला, जो कि फ्लेक्स क्लाइंट्स के एक समूह के लिए Red5 सर्वर के रूप में काम करता है, और वास्तविक समय के इंटरैक्शन डेटा का एक बहुत संभालता है, जो अंततः एक रेल एपी के लिए फ्लश हो जाता है। यह मुद्दा समय के साथ लोड के तहत चल रहा था, इन ग्राहकों की प्रतिक्रिया 3-400 एमएस तक बढ़ रही थी, जहां आमतौर पर यह <100 एमएस था। ग्राहक को शक था कि यह एक मेमोरी इश्यू है जिसकी हम कभी पुष्टि नहीं कर सकते। एक दिन एक स्टेजिंग सर्वर मैं अनुरोधों पर आधारिक रूप से लोड लेना बंद कर रहा था या बेहद धीमी गति से चल रहा था। जिस पर मैंने भेजा

sync && echo 3 > /proc/sys/vm/drop_caches

और जादुई रूप से सर्वर जीवन के लिए वापस आ गया और पूरी गति से इन कनेक्शनों की सेवा करने लगा। क्या यह संयोग था या यह व्यवहार समझ में आता है और क्यों?


4
वे दो आज्ञाएँ हैं। आपने किस पर प्रभाव देखा?
माइकल हैम्पटन

linuxtidbits.wordpress.com/2008/02/20/purge-memory ने उन्हें एक साथ चलाने का सुझाव दिया ताकि मुझे पता न चले
j_mcnally

इसे आगे यहाँ
रिफलैक्ट किया गया

4
य़ह कहना कठिन है। जब तक यह बुरी तरह से गलत नहीं किया गया था, आप इन आदेशों को सर्वर पर कुछ भी फायदेमंद करने की उम्मीद नहीं करेंगे। लेकिन यह निश्चित रूप से अधिक सावधानीपूर्वक अध्ययन के बिना खारिज नहीं किया जा सकता है। यदि यह फिर से होता है, तो सिर्फ syncया सिर्फ कोशिश करें echo। फिर यह पता लगाने की कोशिश करें कि सर्वर इस धीमे मामलों में धीमा क्यों है (क्या सीपीयू अधिकतम है? क्या आईओ अधिकतम है? सिस्टम पेजिंग है?)
डेविड श्वार्ट्ज

जवाबों:


20

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

किसी भी तरह:

  • रनिंग man syncआपको बताएगा कि सिंक क्या करता है [एफएस बफ़र्स फ्लश करता है]
  • googling 'linux drop_caches' आपको बताएगा कि इसमें नंबर 3 की गूंज कैश से सभी अनावश्यक मेमोरी पेज जारी करती है [यह एक स्वस्थ प्रणाली पर आवश्यक नहीं होना चाहिए]
  • command1 && command2 टूट जाता है 'अगर कमांड 1 सफलतापूर्वक समाप्त होता है तो कमांड 2 चलाएं'
    • इसके लिए भागीदार command1 || command2उर्फ है 'अगर कमांड 1 विफल हो जाता है तो कमांड 2 चलाएं'

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


धन्यवाद, मुझे यकीन नहीं है, मुझे लगा कि यह एक बहुत ही अल्पकालिक समाधान था। मुझे लगता है कि मैं कुछ अंतर्दृष्टि चाहता था कि यह क्यों काम कर सकता है। सर्वर EC2 पर है इसलिए एचडी ईओएल विचार के बारे में निश्चित नहीं है।
j_mcnally 21

@j_mcnally EC2? खैर, मैं केवल अनुमान लगा सकता हूं कि आपका विशेष उदाहरण कैसा दिखता है, लेकिन यह शायद ईबीएस जैसे कारकों का एक संयोजन है जो हर समय सुपर परतदार होते हैं, छोटे रैम आवंटन और स्वैप विभाजन की अनुपस्थिति।
समिच

तो क्या आप कह रहे हैं कि समाधान वास्तव में मान्य योग्य हो सकता है?
j_mcnally

@j_mcnally दुख की बात है, यदि आप एक zillion- डॉलर प्रति माह IO अनुकूलित उदाहरणों में से एक पर नहीं हैं, तो संभवतः हाँ।
सेमिच

5

AWS बेहोश दिल के लिए नहीं है, और आपको सिर्फ एक कारण का सामना करना पड़ा। एडब्ल्यूएस पर खराब डिस्क I / O स्थिति अच्छी तरह से ज्ञात है, और इसके शीर्ष पर किसी भी अनुप्रयोग के निर्माण के लिए विचार करने के लिए प्रमुख कारकों में से एक है। डिस्क-अनुकूलित इंस्टेंसेस और कुछ अन्य ट्रिक्स हैं (जैसे ईबीएस संस्करणों में से एक RAID 0 का निर्माण) जो आप मामलों को बेहतर बनाने की कोशिश कर सकते हैं। यह सुनिश्चित करने के लिए कि कर्नेल डिस्क I / O को बफर कर सकता है, बड़े इंस्टेंस (कम से कम m1.large) का उपयोग करें।


हाँ m1.large का उपयोग कर। ये सर्वर ऐप के लिए तैयार हैं और फिर घंटों बाद फटे हैं ... इसलिए डिस्क io के लिए समय आदि के निवेश के बारे में निश्चित नहीं है। मैं हर किसी के इनपुट और सुझावों की सराहना करता हूं कि फिक्स ठीक नहीं होने पर भी ठीक लग सकता है। एक बार फिर धन्यवाद।
j_mcnally
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.