सेटिंग्स का अनुकूलन करना हमेशा एक नाजुक मामला होता है और वास्तव में उन मापदंडों को सेट करना जो अधिकतम प्रदर्शन देंगे, केवल आवेदन प्रक्रिया के दौरान ही संभव है, जब पहले से ही लोड आँकड़े हैं और अड़चनें दिखाई देती हैं।
लेकिन DBMS शुरू करते समय शुरुआती अनुकूलन करना बहुत उपयोगी है। इस पोस्ट में, mysqltuner और pgtune उपयोगिताओं के साथ MySQL और PostgreSQL को स्वचालित रूप से अनुकूलित करने के तरीकों पर चर्चा की गई है।
MySQL
Mysql ऑप्टिमाइज़ेशन के लिए, एक सरल और उपयोग में आसान mysqltuner उपयोगिता है।
आप इसे जिथब पर मुफ्त उपयोग के लिए प्राप्त कर सकते हैं, अर्थात्
यहां । या एक कमांड के साथ लोड करें:
wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
यह उपयोग करना सरल है: mysqltuner.pl को mysql के साथ सर्वर पर अपलोड करें, फ़ाइल के लिए लॉन्च अधिकार सेट करें (या इसे चलाएँ: perl mysqltuner.pl), लॉगिन / पासवर्ड अनुरोध के लिए विशेषाधिकार प्राप्त विशेषाधिकार के साथ एक खाता दें और सिफारिशें देखें।
हम अनुशंसाओं को कॉन्फ़िगर में रखते हैं, mysql- सर्वर को पुनरारंभ करते हैं। या हम mysql कंसोल के माध्यम से "फ्लाई पर" का उपयोग करते हैं यदि परियोजना पहले से ही चल रही है और पुनरारंभ करना अवांछनीय है।
Mysql कॉन्फ़िगरेशन युक्तियों के अतिरिक्त, उपयोगिता भी तालिकाओं और विखंडन के बारे में जानकारी प्रदर्शित करती है यदि mysql का उपयोग कुछ समय के लिए किया गया है।
इंडेक्स को अक्सर भुला दिया जाता है, जो सिस्टम संसाधनों की खपत को बहुत बढ़ाता है।
इंडेक्स प्लेसमेंट उन लोगों को सौंपा जाता है जिन्होंने डेटाबेस की संरचना तैयार की है, लेकिन आप इसे स्वयं कर सकते हैं।
डीफ़्रैग्मेन्टेशन के लिए, ऑप्टिमाइज़ टबल को mysql कंसोल से चलाएं, लेकिन इसे एक ही बार में phpMyAdmin जैसे इंटरफ़ेस के माध्यम से सभी तालिकाओं के लिए करना अधिक सुविधाजनक है।
परियोजना की प्रक्रिया में आगे के अनुकूलन के लिए हम पहले से ही स्थिति को देख रहे हैं और आवश्यक मापदंडों को बढ़ाते हैं।
इस लेख में मेरे सहयोगी द्वारा उपयोगी जानकारी का वर्णन किया गया है।
बेहतर प्रदर्शन के लिए, मानक MySQL सर्वर को बदलने के लिए पर्कोना सर्वर का उपयोग करना उपयोगी है।
प्रदर्शन के ग्राफ से लाभ का अंदाजा लगाया जा सकता है।
Habré पर Percona Server के बारे में पहले से ही बहुत सारे लेख हैं, लेकिन भविष्य में मैं इस विधानसभा का उपयोग करने में अपना अनुभव साझा करूंगा।
PostgreSQL
PostgreSQL सेटिंग्स को ट्यून करने के लिए,
pgtune नामक एक उपयोगी उपयोगिता भी है।
Mysqltuner के विपरीत, उपयोगिता अनुशंसाएं नहीं देती है, लेकिन तुरंत एक कॉन्फ़िगरेशन फ़ाइल बनाती है जिसमें पोस्टग्रैसक्यूएल चलाने वाले सिस्टम के लिए इष्टतम पैरामीटर के साथ postgresql.conf होता है।
उपयोग पैटर्न निम्नानुसार है:
pgtune -i $PGDATA/postgresql.conf -o $PGDATA/postgresql.conf.pgtune
जहाँ $ PGDATA निर्देशिका के लिए postgresql.conf सर्वर कॉन्फिग के साथ पथ है। आउटपुट postgresql.conf.pgtune फ़ाइल है, जिसमें उपयोगिता द्वारा चयनित पैरामीटर सेट किए गए हैं। उपयोगिता इन मापदंडों को ब्लॉक के बाद फाइल के अंत तक लिखती है
आप स्वचालित रूप से निर्धारित सर्वर विशेषताओं के आधार पर पैरामीटर मान सेट करने के लिए अतिरिक्त मापदंडों का उपयोग कर सकते हैं, लेकिन अपने स्वयं के विवेक पर:
-M या --memory - सर्वर पर कुल रैम का आकार, जिसके आधार पर PostgreSQL के लिए मेमोरी संसाधन आवंटित किए जाते हैं;
-T या - टाइप - डेटाबेस के प्रकार को निर्दिष्ट करता है: DW, OLTP, वेब, मिश्रित, डेस्कटॉप;
-c या - कनेक्शन - डेटाबेस के लिए कनेक्शन की अधिकतम संभव संख्या; यदि कोई मूल्य निर्दिष्ट नहीं है, तो यह डेटाबेस के प्रकार के आधार पर निर्धारित किया जाता है;
-D या --debug - PostgreSQL में डीबग मोड को सक्षम करता है
-S या --settings - उस निर्देशिका में स्थापित करता है जिसमें कॉन्फ़िगरेशन फ़ाइल स्थित है।
उपयोगिता समाप्त होने के बाद, यदि आवश्यक हो (तो उदाहरण के लिए, एक गैर-मानक पोर्ट सेट करें या लॉगिंग कॉन्फ़िगर करें), उत्पन्न postgresql.conf.pgtune फ़ाइल को संपादित करें, इसके साथ postgresql.conf कॉन्फ़िगरेशन फ़ाइल को बदलें, और PostgreSQL- सर्वर को पुनरारंभ करें।
मुझे किसी भी प्रश्न / टिप्पणी / परिवर्धन की खुशी होगी!