कैश का उपयोग करने पर उच्च डिस्क I / O?


9

कुछ दिनों पहले मैंने एक डिस्क I / O प्रतीक्षा और डिस्क गतिविधि ड्रॉप (जो बहुत अच्छा था) को देखा। फिर मैंने यह भी देखा कि मेरा कैश भरा हुआ था (*) और खंडित था। फिर मैंने कैश फ्लश किया। उसके बाद, डिस्क विलंबता और डिस्क गतिविधि पिछले स्तर तक कूद गई (जो खराब थी)।

IOtop से पता चलता है कि [jbd2 / sda2-8] और [फ्लश -8: 00] हमेशा डिस्क उपयोग के शीर्ष पर होते हैं। यह एक डेल R210, हार्डवेयर RAID 1 (H200) है जिसमें बहुत सारी मुफ्त मेमोरी (कुल 16 जीबी, जिसमें से लगभग 8 जीबी बफर / कैश हैं)।

(*) कैश PHP के लिए APC opcode cache है, जो PHP स्क्रिप्ट के निष्पादन के लिए डिस्क एक्सेस को कम करता है। कैश पूर्ण और खंडित था क्योंकि इसमें विकास आवृत्ति की फाइलें शामिल थीं। जब मैंने उस पर ध्यान दिया, तो मैंने उन्हें फ़िल्टर किया।

सवाल यह है कि जब सैद्धांतिक रूप से घट जाना चाहिए तो डिस्क I / O क्यों बढ़ जाता है? नीचे मुनिन से कुछ रेखांकन दिए गए हैं। 6 फरवरी से 8 फरवरी तक कैश भरा हुआ था।

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें APC कैश वर्तमान में ठीक है।

चूँकि मैंने @ cyberx86 द्वारा बताया गया था, उसके बाद apc.mmap_file_mask पर टिप्पणी की

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें

और कुछ दिनों के बाद https://serverfault.com/a/362152/88934


2
वह ग्राफ IO में वृद्धि नहीं दिखाता है।
Psusi

1
यदि आप फ़ाइल-समर्थित मेमोरी मैपिंग (जैसे apc.mmap_file_mask=/tmp/apc.XXXXXX) का उपयोग करते हैं, तो आप उन्नत I / O देख सकते हैं। apc.mmap_file_maskसाझा मेमोरी (जैसे /apc.shm.XXXXXX) या /dev/zero(अनाम mmapped मेमोरी) का उपयोग करने के लिए सेटिंग का प्रयास करें ।
साइबरबरी

1
@psusi 6 फरवरी 12 बजे से 8 फरवरी दोपहर 12 बजे तक कम था, फिर वृद्धि हुई।
jcisio

@ cyberx86 मैंने अभी इसे बदल दिया है (अनाम mmapped स्मृति का उपयोग करने के लिए उस पंक्ति पर टिप्पणी की है) और यह उस सहायता की तरह दिखता है। मैं देखने के लिए कुछ मिनटों की निगरानी करूंगा। धन्यवाद।
jcisio

2
@psusi ऐसी कई समस्याएं थीं जिन्हें मैं केवल फिर से शुरू कर सकता हूं, व्याख्या नहीं: 1 / एपीसी कैश मिस (लेकिन उन PHP फ़ाइलों के लिए ओएस कैश हिट, इसलिए बहुत कम डिस्क I / O, कम प्रतीक्षा समय लेकिन अधिक avg I / O समय , जो कि ज्यादातर MySQL InnoDB ट्रांजेक्शन कमिट करते हैं) 2 / APC कैश हिट होता है, लेकिन APC फाइलों का उपयोग कर रहा था (तब OS कैश मिस, न जाने क्यों) 3 / संक्षिप्त, मेरा सवाल है "जब कैश बुरी तरह से काम करता है, तो (लगभग) कोई डिस्क नहीं है मैं / ओ "- आप जो कह रहे हैं वह पूरी तरह से इसके विपरीत है।
jcisio

जवाबों:


10

यदि आप फ़ाइल-समर्थित मेमोरी मैपिंग (जैसे apc.mmap_file_mask=/tmp/apc.XXXXXX) का उपयोग करते हैं, तो आप उन्नत I / O देख सकते हैं।

apc.mmap_file_maskसाझा मेमोरी (जैसे /apc.shm.XXXXXX) या /dev/zero(अनाम mmapped मेमोरी) का उपयोग करने के लिए सेटिंग का प्रयास करें । अनाम अपरिष्कृत मेमोरी का उपयोग करने के लिए सेटिंग को अपरिभाषित रखने से चूक होती है।

आमतौर पर, मिमी की गई फ़ाइलें एक बहुत अच्छी बात हैं:

  • मेमोरी में पूरी तरह से कुछ स्टोर करने की तुलना में, एमएमपीड फ़ाइलों को आमतौर पर कम मेमोरी की आवश्यकता होती है
  • किसी फ़ाइल को कुछ सहेजने की तुलना में, mmped फ़ाइलों को कम डिस्क I / O की आवश्यकता होती है (क्योंकि लिखते हैं एक साथ एकत्र किया जा सकता है)।

हालाँकि, विशुद्ध रूप से मेमोरी में कुछ स्टोर करने की तुलना में, वे I / O जोड़ते हैं - जब फ़ाइल लगातार बदल रही है। Mmapped फ़ाइलों का उपयोग नहीं करने का नकारात्मक पक्ष दृढ़ता की कमी है - आपका कैश पुनः आरंभ नहीं होगा, क्योंकि यह केवल मेमोरी में संग्रहीत होता है।

कोई इसलिए सुझाव दे सकता है कि जब कैश भर रहा था और स्थिर हो रहा था, तो यह सबसे अधिक परिवर्तन से गुजर रहा था, जिसे लगातार डिस्क में लिखना पड़ता था; एक बार कैश भर जाने के बाद, प्रत्येक ऑब्जेक्ट के लिए ttl ने उस दर को धीमा कर दिया, जिसमें कैश में डेटा को बदल दिया जा रहा था, जो परिवर्तन को कम करता है और डिस्क को कम करता है।


4

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

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें

सर्वर लोड (यह पहले से ही काफी कम था, इसलिए मैंने बदलाव की खोज नहीं की थी)।

यहां छवि विवरण दर्ज करें


क्या आप अपने द्वारा किए गए परिवर्तन प्रदान कर सकते हैं?
मिर्चेया वुटकोविसी

प्रश्न टिप्पणी और स्वीकृत उत्तर पढ़ें। मैंने टिप्पणी कीapc.mmap_file_mask=/tmp/apc.XXXXXX
jcisio

अरे, आपको परेशान करने के लिए क्षमा करें। क्या आपने कभी mmap_file_mask लाइन पर टिप्पणी करने का कोई दुष्प्रभाव देखा है?। मैं एक ही समस्या देख रहा हूँ ... और यह स्पष्ट रूप से मेरे I / O उपयोग के मुद्दों को हल करता है। लेकिन मैं सोच रहा था ... अगर और कुछ नहीं टूटेगा! धन्यवाद!
जॉर्ज लेन्ड्रो पेरेज़

मुझे उस लाइन पर टिप्पणी करने में कोई समस्या नहीं हुई।
jcisio
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.