दिलचस्प बात यह है कि MySQL 5.5 में, अब आपके पास कई इनोडब बफर बफर हो सकते हैं।
आपके द्वारा परवाह किए जाने वाले पैरामीटर हैं
लगभग एक महीने में, मुझे एक ग्राहक के लिए 112 इनोडब बफर बफर लागू करने के लिए स्लेट किया गया है। मैं आपको बताऊंगा कि यह कैसे हुआ।
UPDATE 2011-02-27 21:57 EDT
मुझे पता चला कि innodb_buffer_pool_instances के लिए अधिकतम मान 64 है मैंने 144 GB कॉन्फ़िगर करने का निर्णय लिया है, इसलिए मैंने innodb_buffer_pool_instances को 18 और innodb_buffer_pool_instances से 8 पर सेट किया है। मैं वर्तमान में 450GB के साथ सर्वर लोड कर रहा हूं
UPDATE 2011-04-28 13:44 EDT
मैंने कई InnoDB बफर पूल की कोशिश की। बहुत अधिक थ्रेडिंग लॉकिंग और विवाद था। मैं 162GB बफ़र पूल + में रीड_io_threads और राइट_io_threads को 64 (अधिकतम मान) पर सेट करने के लिए बदल गया। इसने बेहतर तरीके से काम किया।
अद्यतन 2012-07-03 17:27 EDT
मैंने MySQL के बारे में कुछ अद्भुत सीखा। यदि आप एक एकल अखंड InnoDB बफर पूल आवंटित करते हैं जो कि भौतिक CPU की संख्या से विभाजित कुल स्थापित है , तो आपका पूर्ण InnoDB बफर पूल के कारण ओएस को नियमित अंतराल मेमोरी स्वैपिंग के लिए उकसाएगा। MySQL 5.5 का विकल्प जिसे innodb_buffer_pool_instances के रूप में जाना जाता है, का उपयोग बफर पूल को विभाजित करने के लिए किया जा सकता है। कल, मैंने पिछले वर्ष अपने उत्तर में उल्लेखित ग्राहक के लिए इसे ठीक से लागू किया। मेरे पास अभी भी क्लाइंट के बफ़र पूल के लिए 162GB है। मैंने सर्वर के innodb_buffer_pool_instances विकल्प को 2 पर सेट किया है क्योंकि प्रत्येक DB सर्वर दोहरी हेक्साकोर है। मैं इसे 12 पर सेट करने के बारे में सोच रहा था, लेकिन फिर एक सहयोगी ने मुझे MySQL और Swappiness पर जेरेमी कोल से एक ब्लॉग दिखाया। इसे पढ़ने के बाद, मैंने इसे अपने ग्राहक के लिए तुरंत अभ्यास में डाल दिया। मैंने यह कमान चलाई
numactl --hardware
मैंने प्रत्येक भौतिक कोर में 96GB के रूप में 192GB सर्वर रैम की मैपिंग देखी। इसलिए, मैं 2 को innodb_buffer_pool_instances सेट करता हूं। चीजें अभी अच्छी लग रही हैं। मैं यह देखने के लिए अपने उत्तर को अपडेट करूंगा कि यह अगले 2 montns के लिए मेमोरी स्वैपिंग को कैसे प्रभावित करता है।