"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > कैसे MySQL ट्यूनिंग लारवेल प्रदर्शन को बेहतर बनाती है

कैसे MySQL ट्यूनिंग लारवेल प्रदर्शन को बेहतर बनाती है

2024-07-30 को प्रकाशित
ब्राउज़ करें:675

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

हमारा अनुमान है कि MySQL ट्यूनिंग वेब ऐप्स के प्रदर्शन को महत्वपूर्ण रूप से प्रभावित कर सकती है। यदि हम MySQL ट्यूनिंग के मूल्य का प्रदर्शन कर सकते हैं, तो हमारा मानना ​​है कि उद्यम और संगठन इस अभ्यास को बड़े पैमाने पर शामिल करने के इच्छुक हो सकते हैं।

लारवेल एप्लिकेशन के प्रदर्शन में सुधार कैसे करें

ट्यूनिंग के साथ एप्लिकेशन प्रदर्शन में सुधार एक व्यापक दृष्टिकोण के साथ सबसे अच्छा हासिल किया जाता है जो निम्नलिखित क्षेत्रों को संबोधित करता है:

  • सर्वर संसाधन - सीपीयू, मेमोरी, स्टोरेज
  • सॉफ़्टवेयर कॉन्फ़िगरेशन - Linux, Nginx, Php...
  • डेटाबेस प्रबंधन प्रणाली (DBMS) कॉन्फ़िगरेशन - MySQL, PostgreSQL
  • डेटाबेस योजना को अनुकूलित करें और अनुक्रमणिका बदलें
  • अनुप्रयोगों को अनुकूलित करें - कोड, क्वेरीज़, आर्किटेक्चर…

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

परीक्षण दृष्टिकोण

लारवेल ऐमियोस के लिए हमारी परीक्षण प्रक्रिया हमें सीडेड डेटा का उपयोग करके कॉन्फ़िगरेशन से पहले और बाद में ऐप के प्रदर्शन की तुलना करने देती है। पहले डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ परीक्षण चलाने से, हम ट्यून किए गए कॉन्फ़िगरेशन की तुलना करने के लिए मूल्यवान नियंत्रण परिणाम प्राप्त करते हैं।

हमने प्रत्येक एप्लिकेशन को तैयार करने और उसका परीक्षण करने के लिए निम्नलिखित प्रक्रिया का उपयोग किया:

  1. लारवेल ऐमियोस तैनात करें।
  2. डेटा के साथ बीज डेटाबेस।
  3. JMeter के लिए परीक्षण तैयार करें।
  4. 10 मिनट के लिए परीक्षण चलाएं - ब्लेज़मीटर प्रदर्शन परीक्षण प्लेटफ़ॉर्म का उपयोग करके जेएमटर परीक्षण चलाएं।
  5. मारियाडीबी कॉन्फ़िगरेशन को ट्यून करें - डिफ़ॉल्ट कॉन्फ़िगरेशन परीक्षण के बाद, हमारा सेटअप वही रहा, लेकिन मारियाडीबी को कार्यभार, सर्वर संसाधनों और डेटाबेस आकार के लिए ट्यून किया गया था।
  6. पुनः चलाएँ परीक्षण - ट्यून किए गए कॉन्फ़िगरेशन के लिए ब्लेज़मीटर का उपयोग करके JMeter परीक्षण दोहराया गया।

हमने Github पर परीक्षणों के दौरान JMeter परीक्षण, MySQL स्थिति और MySQL वेरिएबल प्रकाशित किए।

हमने कौन से मेट्रिक्स देखे?

इस शोध के दौरान हमने जिन मेट्रिक्स को देखा वे हैं:

  1. प्रतिक्रिया समय (विलंबता) अनुरोध भेजने और सर्वर साइड पर इसे संसाधित करने से लेकर क्लाइंट को पहली बाइट प्राप्त होने तक का समय है। यह महत्वपूर्ण मीट्रिक है जो आपको सर्वर प्रदर्शन के बारे में जानकारी देता है।
  2. प्रति सेकंड क्वेरीज़ एक मीट्रिक है जो मापता है कि डेटाबेस सर्वर प्रति सेकंड कितनी क्वेरी निष्पादित करता है।
  3. सीपीयू का उपयोग

हमने कार्यभार की तुलना करने के लिए सीपीयू उपयोग और क्वेरी प्रति सेकंड मेट्रिक्स एकत्र किए।

लारवेल ऐमियोस

Aimeos Laravel ऑनलाइन दुकानें, मार्केटप्लेस और B2B ऐप्स बनाने के लिए एक लोकप्रिय ई-कॉमर्स वेब ऐप फ्रेमवर्क है। Aimeos के साथ, उपयोगकर्ता Laravel के लिए API-प्रथम ईकॉमर्स दुकानें बना सकते हैं जो 1 बिलियन से अधिक वस्तुओं का समर्थन कर सकती हैं। यह 30 से अधिक भाषाओं में उपलब्ध है और इसके 300,000 से अधिक इंस्टाल हैं।

परीक्षण सेटअप

Aimeos का परीक्षण करने के लिए, हमने दस उपयोगकर्ताओं के साथ परीक्षण शुरू किया, लेकिन हमें उपयोगकर्ताओं की संख्या कम करनी पड़ी क्योंकि हम परीक्षण को डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ पूरा नहीं कर सके।

हमने 500 एमबी डेटा के साथ डेटाबेस को सीड किया।
हमारी परीक्षण अवधि 10 मिनट थी।

हमने इस्तेमाल किया:

  • ऑपरेटिंग सिस्टम के रूप में स्थापित डेबियन 11 के साथ AWS EC2 इंस्टेंस c5.xlarge,
  • अपाचे एक वेब सर्वर के रूप में,
  • मारियाडीबी 10.5 डेटाबेस आकार 500 एमबी के साथ डिफ़ॉल्ट कॉन्फ़िगरेशन पर सेट है।

MySQL कॉन्फ़िगरेशन

Aimeos Laravel के लिए प्रयुक्त कॉन्फ़िगरेशन इस प्रकार है:

Laravel Aimeos 500Mb के लिए ट्यून किया गया कॉन्फ़िगरेशन

query_cache_type=1
query_cache_size=134217728
query_cache_limit=16777216
query_cache_min_res_unit=4096
thread_cache_size=0
key_buffer_size=8388608
max_allowed_packet=1073741824
sort_buffer_size=2097152
read_rnd_buffer_size=262144
bulk_insert_buffer_size=8388608
myisam_sort_buffer_size=8388608
innodb_buffer_pool_chunk_size=134217728
innodb_buffer_pool_size=805306368
max_heap_table_size=16777216
tmp_table_size=16777216
join_buffer_size=8388608
max_connections=151
table_open_cache=2048
table_definition_cache=1408
innodb_flush_log_at_trx_commit=1
innodb_log_file_size=201326592
innodb_log_buffer_size=16777216
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_thread_concurrency=0
innodb_purge_threads=4
optimizer_search_depth=0
thread_handling=pool-of-threads
thread_pool_size=2

परीक्षण परिणाम

Aimeos Laravel परीक्षण के परिणामों ने डिफ़ॉल्ट और ट्यून किए गए कॉन्फ़िगरेशन के बीच नाटकीय प्रदर्शन में सुधार दिखाया।

MySQL के अनुकूलन के परिणामस्वरूप औसत सर्वर प्रतिक्रिया समय में महत्वपूर्ण सुधार हुआ, जो कि घटकर 1.4 सेकंड से 800 मिलीसेकंड से कम हो गया।

प्रतिक्रिया समय (विलंबता) में 42% की गिरावट आई और औसत सीपीयू उपयोग में 86% की गिरावट आई, जबकि क्वेरी प्रति सेकंड में अविश्वसनीय 291% की वृद्धि हुई। प्रति सेकंड 12 से 35 प्रश्न।

परिणामों का ग्राफ़ नीचे उपलब्ध है:

How MySQL Tuning Improves the Laravel Performance प्रतिक्रिया समय (एमएस), Aimeos ने MySQL कॉन्फ़िगरेशन बनाम डिफ़ॉल्ट को ट्यून किया
How MySQL Tuning Improves the Laravel Performance सीपीयू उपयोग (%), ऐमियोस ट्यून्ड MySQL कॉन्फ़िगरेशन बनाम डिफ़ॉल्ट
How MySQL Tuning Improves the Laravel Performance प्रति सेकंड प्रश्न, Aimeos ने MySQL कॉन्फ़िगरेशन बनाम डिफ़ॉल्ट को ट्यून किया

सामुदायिक योगदानकर्ता

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

निष्कर्ष

Aimeos Laravel का उपयोग करते हुए हमारी परीक्षण प्रक्रिया ने डेटाबेस को कॉन्फ़िगर करने के बाद प्रतिक्रिया समय (विलंबता), सीपीयू उपयोग, और प्रति सेकंड क्वेरीज़ में नाटकीय सुधार दिखाया। सर्वर कॉन्फ़िगरेशन.

प्रतिक्रिया समय (विलंबता) 42% के बीच गिर गया, जबकि सीपीयू उपयोग 86% गिर गया। Aimeos Laravel 500एमबी में प्रति सेकंड क्वेरीज़ में 291% की वृद्धि हुई।

निष्कर्ष में, MySQL ट्यूनिंग डेटाबेस प्रबंधन का एक अनिवार्य पहलू है जो लारवेल अनुप्रयोगों के प्रदर्शन पर महत्वपूर्ण प्रभाव डाल सकता है। खराब प्रदर्शन करने वाले वेब एप्लिकेशन के कारण पेज लोड समय में वृद्धि, धीमी अनुरोध हैंडलिंग और खराब उपयोगकर्ता अनुभव हो सकता है, जो एसईओ और बिक्री को नकारात्मक रूप से प्रभावित कर सकता है। MySQL ट्यूनिंग के साथ वेब ऐप्स के प्रदर्शन को अनुकूलित करके, उद्यम और संगठन बिक्री, पेजव्यू, रूपांतरण दर और एसईओ रैंकिंग बढ़ा सकते हैं।

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

रिलीम जैसे टूल का उपयोग करके, डेटाबेस को इष्टतम प्रदर्शन के लिए स्वचालित रूप से कॉन्फ़िगर किया जा सकता है, जिससे सॉफ्टवेयर विकास टीमों पर बोझ कम हो जाता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/drupaladmin/how-mysql-tuning-improves-the-laravel-performance-282j?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3