Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मूडल के प्रदर्शन को बेंचमार्क कैसे करें

मूडल, दुनिया की सबसे लोकप्रिय शिक्षण प्रबंधन प्रणाली (एलएमएस), आमतौर पर तेजी से बढ़ते और बड़े पैमाने के वातावरण में तैनात किया जा रहा है। सौभाग्य से, Moodle को उपलब्धता और मापनीयता को ध्यान में रखते हुए बनाया गया है, जिसमें बहुत सारे टूल हैं, जो हमें एक बड़े बुनियादी ढांचे को प्रबंधित करने में मदद करते हैं। बड़े पैमाने पर मूडल इन्फ्रास्ट्रक्चर को विभिन्न प्रकार की मशीनों पर स्थापित किया जा सकता है, नंगे धातु से लेकर कंपार्टमेंटलाइज्ड वर्चुअल कंटेनर (या कुबेरनेट्स पॉड्स) तक और इसमें आमतौर पर अलग लोड बैलेंसर्स, वेब सर्वर, कैश सर्वर, सेंट्रलाइज्ड / क्लस्टर्ड स्टोरेज सर्वर और के लिए मल्टी टियर आर्किटेक्चर शामिल होता है। डेटाबेस सर्वर।

इस ब्लॉग पोस्ट में, हम आपको अपनी Moodle साइट का बेंचमार्क प्रदर्शन करने का तरीका दिखाने जा रहे हैं, जो हमें यह समझने की अनुमति देगा कि हमारी Moodle साइट एक निश्चित अवधि में कैसा प्रदर्शन करती है। क्लस्टर्ड सेटअप में, मूडल क्लस्टर का प्रदर्शन हार्डवेयर संसाधनों, वर्चुअलाइजेशन ओवरहेड, सर्वरों के बीच नेटवर्क विलंबता, फायरवॉल, कैशिंग और कई अन्य कारकों से प्रभावित हो सकता है, और बेंचमार्क प्रदर्शन करना मूडल प्रदर्शन का परीक्षण और अनुमान लगाने का एक ठोस तरीका है। उत्पादन में लाइव होने से पहले।

बेंचमार्किंग प्लगइन की रिपोर्ट करें

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

प्लगइन इंस्टॉल हो जाने के बाद, साइट व्यवस्थापन पर जाएं -> रिपोर्ट -> बेंचमार्क -> बेंचमार्क प्रारंभ करें बेंचमार्क प्रदर्शन करने के लिए। बेंचमार्क परीक्षण 1 मिनट से कम समय तक चलने चाहिए और 2 मिनट में निरस्त कर दिए जाएंगे, यह बताते हुए कि आपके प्लेटफॉर्म पर चिंताएं हैं या नहीं। स्कोर जितना कम होगा, उतना अच्छा होगा, और यदि सब हरा है, तो यह आमतौर पर इंगित करता है कि हमारी मूडल साइट अच्छी स्थिति में होनी चाहिए। मूल रूप से 5 परीक्षण समूह हैं:

  • सर्वर गति
  • प्रोसेसर की गति
  • हार्ड ड्राइव की गति
  • डेटाबेस गति
  • पेज स्पीड लोड हो रही है

ऐसे मौकों पर जहां मूडल अनुमान से धीमा व्यवहार करता है, आप देखेंगे कि कुछ गैर-हरे बॉक्स बेंचमार्क रिपोर्ट में दिखाई देते हैं जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:

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

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

अपाचे JMeter

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

Moodle v2.5 और बाद के संस्करण के बाद से, यह JMeter के साथ लोड परीक्षण की प्रक्रिया को सरल बनाने के लिए JMeter के साथ दो अंतर्निहित स्क्रिप्ट - "मेक टेस्ट कोर्स" और "मेक JMeter टेस्ट प्लान" के माध्यम से आता है, दोनों साइट प्रशासन -> विकास , ऐड-ऑन मूडल प्रदर्शन तुलना के एक सेट द्वारा संवर्धित। मूडल वेब इंटरफ़ेस के माध्यम से इस सुविधा का उपयोग करने के लिए, आपको साइट व्यवस्थापन -> विकास -> डिबगिंग -> डीबग संदेश -> डेवलपर:डेवलपर्स के लिए अतिरिक्त मूडल डीबग संदेशों के तहत मूडल को डेवलपर मोड में बदलना होगा। /em> . अन्यथा, {Moodle}/admin/tool/generator/cli निर्देशिका के अंतर्गत उपलब्ध CLI टूल का उपयोग करें।

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

JMeter सर्वर परिनियोजित करना

निर्देशों को सरल बनाने के लिए, हम अपने सभी आदेशों को रूट उपयोगकर्ता के रूप में निष्पादित करते हैं। JMeter सर्वर पर, सभी आवश्यक पैकेज स्थापित करें:

$ sudo apt install apache2 mysql-client mysql-server php libapache2-mod-php graphviz aspell ghostscript clamav php7.4-pspell php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-ldap php7.4-zip php7.4-soap php7.4-mbstring

मूडल प्रदर्शन तुलना टूल द्वारा उपयोग किए जाने के लिए एक विशेषाधिकार प्राप्त MySQL उपयोगकर्ता बनाएं। पहले डेटाबेस बनाने की कोई आवश्यकता नहीं है:

$ mysql -uroot -p
mysql> CREATE USER 'moodleperformance'@'localhost' IDENTIFIED BY 'mys3cret';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'moodleperformance'@'localhost';
mysql> exit

डाटारूट और बैकअप निर्देशिका बनाएं:

$ mkdir /var/moodledata
$ chmod -R 777 /var/moodledata
$ mkdir /root/backups

जावा इंस्टॉल करें:

$ apt update
$ apt install default-jre

अपाचे जेएमटर को आधिकारिक साइट से डाउनलोड करें और इसे /ऑप्ट डायरेक्टरी में स्टोर करें:

$ wget https://downloads.apache.org//jmeter/binaries/apache-jmeter-5.4.tgz
$ tar -xzf apache-jmeter-5.4.tgz -C /opt

गीथूब से मूडल प्रदर्शन तुलना उपकरण प्राप्त करें और इसे /var/www/html पर अपाचे वेबसर्वर डिफ़ॉल्ट दस्तावेज़ रूट के अंतर्गत रखें, और कॉन्फ़िगरेशन फ़ाइलों को उनके टेम्पलेट्स से भी कॉपी करें:

$ cd /var/www/html
$ git clone https://github.com/moodlehq/moodle-performance-comparison
$ cd moodle-performance-comparison
$ cp webserver_config.properties.dist webserver_config.properties
$ cp jmeter_config.properties.dist jmeter_config.properties

jmeter_config.properties खोलें और निम्न पंक्ति संपादित करें:

jmeter_path=/opt/apache-jmeter-5.4

JMeter परीक्षण योजना चलाना

इस टूल का उपयोग करके मूडल बेंचमार्क चलाने का सबसे आसान तरीका स्थानीय मूडल बेंचमार्क चलाना है, जहां स्क्रिप्ट स्वचालित रूप से जीथब से मूडल एप्लिकेशन को खींचेगी, डेटाबेस सेट करेगी और स्थानीय परीक्षण वातावरण के लिए आवश्यक कॉन्फ़िगरेशन सेट करेगी। हमें webserver_config.properties में निम्नलिखित निर्दिष्ट करने की आवश्यकता है:

dbtype="mysqli"
dbhost="localhost"
dbuser="moodleperformance"
dbpass="mys3cret"
wwwroot="http://18.141.187.189/moodle-performance-comparison/moodle"
dataroot="/var/moodledata"
backupsdir="/root/backups"

जहां 18.141.187.189 इस जेएमटर सर्वर का सार्वजनिक आईपी पता है। बेंचमार्क किए जाने वाले मूडल को http://18.141.187.189/moodle-performance-comparison/moodle पर एक्सेस किया जा सकता है। एक बार उपरोक्त कॉन्फ़िगर हो जाने के बाद, /var/www/html/moodle-performance-comparison पर नेविगेट करें:

$ cd /var/www/html/moodle-performance-comparison

पहली बात यह है कि मूडल परीक्षण साइट को डेटा के एक सेट के साथ शुल्क देना है। मूडल साइट का आकार निम्नलिखित द्वारा निर्धारित किया जा सकता है:

आकार

परीक्षण योजना

XS

1 उपयोगकर्ता, 5 लूप और 1 रैंप-अप अवधि

S

30 उपयोगकर्ता, 5 लूप और 6 रैंप-अप अवधि

M

100 उपयोगकर्ता, 5 लूप और 40 रैंप-अप अवधि

L

1000 उपयोगकर्ता, 6 लूप और 100 रैंप-अप अवधि

XL

5000 उपयोगकर्ता, 6 लूप और 500 रैंप-अप अवधि

XXL

10000 उपयोगकर्ता, 7 लूप और 800 रैंप-अप अवधि

और XS आकार के साथ मूडल साइट बनाने के लिए पहले_run_setup.sh स्क्रिप्ट चलाएँ:
$ ./before_run_setup.sh XS
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.

#######################################################################
Installing Moodle (ec58cefefb2722f61f77c9a2b6a12d40a8c078a0)

Moodle site configuration finished successfully.
Creating Moodle (ec58cefefb2722f61f77c9a2b6a12d40a8c078a0) database and dataroot backups
mysqldump: [Warning] Using a password on the command line interface can be insecure.

Upgrading Moodle (ec58cefefb2722f61f77c9a2b6a12d40a8c078a0) to master

#######################################################################
'Before' run setup finished successfully.

Note the following files were generated, you will need this info when running
testrunner.sh in a different server, they are also saved in test_files.properties.
- Test plan: /var/www/html/moodle-performance-comparison/moodle/testplan.jmx
- Test users: /var/www/html/moodle-performance-comparison/moodle/testusers.csv
- Dataroot backup: /root/backup/dataroot_backup_202101090901
- Database backup: /root/backup/database_backup_202101090901.sql

Now you can:
- Change the site configuration
- Change the cache stores
And to continue with the test you should:
- Run restart_services.sh (or manually restart web and database servers if
  this script doesn\'t suit your system)
- Run test_runner.sh

बेंचमार्क शुरू करने से पहले, वेब और डेटाबेस सर्वर को फिर से शुरू करने की सिफारिश की जाती है ताकि हमें एक अच्छा बेसलाइन परिणाम मिले:

$ ./restart_service.sh
#######################################################################
Services restarted successfully.

Now you can begin running the tests with test_runner.sh.

अब हम test_runner.sh स्क्रिप्ट का उपयोग करके JMeter बेंचमार्क चलाने के लिए तैयार हैं:

$ ./test_runner.sh Group1 Run1
#######################################################################
Test running... (time for a coffee?)

Jan 09, 2021 9:03:55 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.

Warning: Nashorn engine is planned to be removed from a future JDK release

#######################################################################
Test plan completed successfully.

To compare this run with others remember to execute after_run_setup.sh before
it to clean the site restoring the database and the dataroot.

अब हमने अपना पहला रन पूरा कर लिया है और एक सादे मूडल साइट पर प्रदर्शन किया है। इस बिंदु पर, आप अपने डेटाबेस सर्वर, PHP, अपाचे वेब सर्वर या मूडल से संबंधित किसी भी अन्य घटक के लिए कोई भी प्रदर्शन ट्यूनिंग और ट्वीकिंग कर सकते हैं और तुलना करने के लिए दूसरा रन चला सकते हैं कि क्या ट्यूनिंग लागू हो रही है। दूसरा बेंचमार्क बनाने से पहले, हमें परीक्षण मूडल साइट को तैयार करने और साफ करने के लिए after_run_setup.sh स्क्रिप्ट को निष्पादित करना होगा जहां स्क्रिप्ट डेटाबेस और मूडल डेटारूट को पुनर्स्थापित करेगी:

$ ./after_run_setup.sh

अब हम दूसरा बेंचमार्क चलाने के लिए तैयार हैं:

$ ./test_runner.sh Group1 Run2
#######################################################################
Test running... (time for a coffee?)

Jan 09, 2021 9:03:55 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.

Warning: Nashorn engine is planned to be removed from a future JDK release

#######################################################################
Test plan completed successfully.

To compare this run with others remember to execute after_run_setup.sh before
it to clean the site restoring the database and the dataroot.

बेंचमार्क परिणाम


बेंचमार्क परिणाम http://18.141.187.189/moodle-performance-comparison/ पर प्रदर्शित और पहुंच योग्य होने चाहिए। निम्नलिखित पूरे पृष्ठ का स्क्रीनशॉट आपको मिलने वाले परिणामों का एक उदाहरण है:

तुलना हमें यह समझने की अनुमति देती है कि रनों के बीच मूडल साइट के किन पहलुओं या घटकों में सुधार किया गया है। एक महत्वपूर्ण औसत प्राप्त करने के लिए बेंचमार्क को कई बार निष्पादित करना अच्छा है, अंततः यह निर्णय लेने से पहले कि क्या किसी विशेष ट्यूनिंग ने मूडल साइट पर अच्छे या बुरे परिणाम पेश किए हैं।

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में पोल ​​और सर्वे के लिए डेटाबेस डिजाइन करने के लिए गाइड

  2. MySQL में किसी तिथि से लघु माह का नाम कैसे प्राप्त करें

  3. PHP को MySQL से कैसे कनेक्ट करें

  4. पायथन के माध्यम से कनेक्ट करते समय मैं डिफ़ॉल्ट MySQL कनेक्शन टाइमआउट कैसे बदल सकता हूं?

  5. मैसकल स्ट्रिंग स्प्लिट