रविवार, 14 अप्रैल 2019

सरल KeepaliveD की स्थापना की

इसलिए अभी काफी समय से आसपास रखा गया है .... हालांकि यह अभी भी कई लोगों के लिए एक रहस्य है।
तो यह एक बहुत ही सरल उदाहरण है कि MySQL के साथ कैसे काम किया जा सकता है। उम्मीद है, यह सवालों के साथ उन लोगों की मदद कर सकता है।

हम दास स्थापित करने के लिए एक सरल गुरु होगा। अर्थ .. हम एक को लिखते हैं जब तक कि हम किसी घटना के लिए दूसरे को विफल नहीं करते।

पहली - स्थापित रखें


# यम खोज को रखा गया
Keepaliven .x86_64: लोड बैलेंसर और उच्च उपलब्धता सेवा

  नाम और सारांश केवल मेल खाते हैं , हर चीज के लिए "सभी खोजें" का उपयोग करें।
# yum -y स्थापित रखें

अब आपके पास एक config फाइल होनी चाहिए

# ls -ltr /etc/keepalived/keepalived.conf  

ऑरिजनल रखें क्योंकि आप हमेशा बैकअप लेते हैं ... सही है ...।
# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.orig

तो आपको एक ipaddress पता लगाने की आवश्यकता है जिसे आप अपने वर्चुअल आईपी के लिए उपयोग कर सकते हैं। मैंने इस उदाहरण के लिए 192.168.0.123 उठाया।

इसके बाद, हम अपनी नई कॉन्फिगर फाइल के लिए उपयोग की जाने वाली स्क्रिप्ट सेट करेंगे।

कुछ बातें मैंने यहाँ कीं ।।
मैं रखने के लिए एक .cnf फ़ाइल को छोड़ दिया और एक लॉग इन / / / सब रखा।
यह उदाहरण के लिए सरल बनाता है ताकि आप ऐसा कर सकें या अपनी स्वयं की cnf फ़ाइलों का उपयोग कर सकें।

पटकथा:

cat /etc/keepalived/keepalived_check.sh  
#! / bin / bash

# मॉनिटर mysql स्टेटस

# अगर यह नोड mysql मर चुका है

# और इसका गुलाम जिंदा है, तो इसकी रखवाली बंद करो। अन्य नोड आईपी को बांध देगा।



निर्यात MYSQL_HOME = / etc / रखवाली /

निर्यात पथ = $ MYSQL_HOME / बिन: $ पथ



mysql = "/ usr / bin / mysql"

mysqladmin = "/ usr / bin / mysqladmin"

delay_file = "$ MYSQL_HOME / slave_delay_second.log"

slave_host = $ 1





ALIVE = $ ($ mysqladmin --defaults-file = $ MYSQL_HOME / .my.localhost.nf   पिंग | grep जिंदा | wc -l);

REMOTEALIVE = $ ($ mysqladmin --defaults-file = $ MYSQL_HOME / .my.remotehost.cnf   पिंग | grep जिंदा | wc -l);



अगर [[$ ALIVE-1]]

फिर

#echo "MySQL नीचे है"

        अगर [[$ REMOTEALIVE -eq 1]]

        फिर

#         गूंज "चुप रहो जिंदा रहो"

            systemctl रोक रखना  

#       गूंज "रखवाले रोक"

        फाई

#अन्य

# माय "MySQL ऊपर है"

#दिनांक

फाई



बाहर निकलें 0 # किया गया

नई कॉन्फ़िग फ़ाइल

cat /etc/keepalived/keepalived.conf
Global_defs {



      सूचना_मेल {

        anothermysqldba@gmail.com  

      }



      notification_email_from othermysqldba@gmail.com  

      smtp_server लोकलहोस्ट

      smtp_connect_timeout 30



      }







vrrp_script check_mysql {

   स्क्रिप्ट "/etc/keepalived/keepalived_check.sh"

   अंतराल २

   वजन 2

}







vrrp_instance VI_1 {



      राज्य मास्टर

      इंटरफ़ेस enp0s8   # <--- व्हाट्स इंटरफेम नॉमल योर रियल आईपी / sbin / ifconfig

        # आईपी लिंक शो के साथ मिला

      virtual_router_id 51

      प्राथमिकता १०१

      advert_int 1

      nopreempt   # केवल उच्च प्राथमिकता नोड पर आवश्यक है

      प्रमाणीकरण {

        ऑरल_टाइप PASS

        11_11 पर

      }





      track_script {

        check_mysql

      }



      virtual_ipaddress {

        192.168.0.123  

      }




}



यह सब बहुत अच्छा है लेकिन क्या यह काम करता है ...।

तो हमारे पास 2 होस्ट हैं

[रूट @ सेंटोसा रखा हुआ] # होस्टनाम

centosa

[root @ centosb Keepalived] # hostname
centosb

रखना शुरू कर दिया

[रूट @ सेंटोसा को रखा गया है] # सिस्टमटाल की स्थिति को बनाए रखा गया है
● Keepalived.service - LVS और VRRP उच्च उपलब्धता मॉनिटर
   भरी हुई: भरी हुई (/usr/lib/systemd/system/keepalived.service; विकलांग; वेंडर प्रेसर: अक्षम)
   सक्रिय: निष्क्रिय (मृत)
[रूट @ सेंटोसा को रखा गया] # सिस्टेक्टल को फिर से रखा गया
[रूट @ सेंटोसा को रखा गया है] # सिस्टमटाल की स्थिति को बनाए रखा गया है
Keepalived.service - LVS और VRRP उच्च उपलब्धता मॉनिटर
   भरी हुई: भरी हुई (/usr/lib/systemd/system/keepalived.service; विकलांग; वेंडर प्रेसर: अक्षम)
    सक्रिय: सक्रिय (चल रहा है)

[रूट @ सेंटोसा को रखा गया] # ssh 192.168.0.123 'hostname'
root@192.168.0.123 का पासवर्ड:  

centosa

कनेक्शन कार्य पहले से ही साबित करें

[रूट @ सेंटोसा रखा हुआ] # mysql --defaults-file = .my.remotehost.cnf --host = 192.168.0.101   -host "select @@ hostname"
+ ------------ +
| @@ होस्टनाम |
+ ------------ +
| centosb     |
+ ------------ +
[रूट @ सेंटोसा को रखा गया] # mysql --defaults-file = .my.remotehost.cnf --host = 192.168.0.102   -host "select @@ hostname"
+ ------------ +
| @@ होस्टनाम |
+ ------------ +
| centosa     |
+ ------------ +

डबल चेक करें कि यह चल रहा है ...

[root @ centosa keepalived] # सिस्टेक्स्टल स्टेटस कीपेल्ड | grep सक्रिय
    सक्रिय: सक्रिय  

[root @ centosb Keepalived] # systemctl स्टेटस को सुरक्षित रखा गया | grep सक्रिय
    सक्रिय: सक्रिय  

वर्तमान वीआईपी का परीक्षण करें ... mysql को रोकें और वही वीआईपी परिवर्तन होस्ट देखें ...

[रूट @ सेंटोसा को रखा गया] # mysql --defaults-file = .my.remotehost.cnf --host = 192.168.0.123   -host "select @@ hostname"
+ ------------ +
| @@ होस्टनाम |
+ ------------ +
| centosa     |
+ ------------ +
[रूट @ सेंटोसा को रखा गया] # सिस्टेक्स्ल ने मायस्कल्ड को रोक दिया  
[रूट @ सेंटोसा को रखा गया] # mysql --defaults-file = .my.remotehost.cnf --host = 192.168.0.123   -host "select @@ hostname"
+ ------------ +
| @@ होस्टनाम |
+ ------------ +
| centosb     |
+ ------------ +

मंगलवार, 9 अप्रैल 2019

कभी-कभी धीमा डेटाबेस .. डेटाबेस नहीं है ...

इसलिए मुझे हाल ही में यह देखने के लिए कहा गया था कि अपडेटेड MySQL 5, .6 पुराने 5.5 की तुलना में धीमा क्यों था

इसलिए मैंने मानक चर और कैश और इत्यादि को देखते हुए चारों ओर से शुरुआत की

परीक्षण मामला एक साधारण दिनचर्या थी जो 5.5 की तुलना में 5.6 पर चलने के लिए लगभग दोगुनी थी।

मिश्रण में जोड़ने के लिए .. 5.6 संस्करण में Innodb_buffer_pool_size और कुल मिलाकर अधिक राम दोगुना था।

इसलिए मैंने MySQLslap के साथ कुछ परीक्षण शुरू किए ...

मैसकल्सलैप परीक्षण इसे 5.6 पर धीमा दिखाता है

5.6:
mysqlslap --defaults-file = ./। my.cnf --concurrency = 150 - मान = 130 -query = / test.sql --create-schema = applicationdata --verbose
बेंचमार्क
सभी प्रश्नों को चलाने के लिए सेकंड की औसत संख्या: 0.028 सेकंड
सभी प्रश्नों को चलाने के लिए सेकंड की न्यूनतम संख्या: 0.019 सेकंड
सभी प्रश्नों को चलाने के लिए अधिकतम सेकंड: 0.071 सेकंड
प्रश्नों को चलाने वाले ग्राहकों की संख्या: 150
प्रति ग्राहक औसत प्रश्नों की संख्या: 1

5.5:
mysqlslap --defaults-file = ./। my.cnf --concurrency = 150 - मान = 130 --query = / test.sql --create-schema = applicationdata --verbose
बेंचमार्क
सभी प्रश्नों को चलाने के लिए सेकंड की औसत संख्या: 0.015 सेकंड
सभी प्रश्नों को चलाने के लिए न्यूनतम सेकंड: 0.011 सेकंड
सभी प्रश्नों को चलाने के लिए अधिकतम सेकंड: 0.024 सेकंड
प्रश्नों को चलाने वाले ग्राहकों की संख्या: 150
प्रति ग्राहक औसत प्रश्नों की संख्या: 1


यह सब सार्वजनिक बेंचमार्क के खिलाफ जाता है
http://dimitrik.free.fr/blog/archives/2013/02/mysql-performance-mysql-56-ga-vs-mysql-55-32cores.html

इसलिए मैंने डिस्क स्तर की जाँच की -

5.6:
# dd if = / dev / zero of = test bs = 1048576 count = 2048
में 2048 + 0 रिकॉर्ड
2048 + 0 रिकॉर्ड बनाया
2147483648 बाइट्स (2.1 जीबी) की नकल, 25.7401 एस, 83.4 एमबी / एस

# dd if = का परीक्षण = / dev / null bs = 1048576
में 2048 + 0 रिकॉर्ड
2048 + 0 रिकॉर्ड बनाया
2147483648 बाइट्स (2.1 जीबी) कॉपी, 29.1527 एस, 73.7 एमबी / एस

5.5:
# dd if = / dev / zero of = test bs = 1048576 count = 2048
में 2048 + 0 रिकॉर्ड
2048 + 0 रिकॉर्ड बनाया
2147483648 बाइट्स (2.1 जीबी) कॉपी, 19.9214 सेकंड, 108 एमबी / एस

# dd if = का परीक्षण = / dev / null bs = 1048576
में 2048 + 0 रिकॉर्ड
2048 + 0 रिकॉर्ड बनाया
2147483648 बाइट्स (2.1 जीबी) कॉपी, 20.0243 सेकंड, 107 एमबी / एस



यहाँ 5.5 के साथ डिस्क MySQL की परवाह किए बिना धीमी है। तो इस मामले में .... डिस्क की गति को ठीक करने के लिए देखो .. MySQL ठीक चल रहा था और होगा।