Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Katere so nastavitve konfiguracije ključa za optimizacijo podvajanja MySQL za velik promet


Katere so nastavitve konfiguracije ključa za optimizacijo podvajanja MySQL za velik promet


Ključne konfiguracijske nastavitve za optimizacijo podvajanja MySQL za okolje z visokim prometom vključujejo natančno nastavitev različnih parametrov replikacije in strežnika za uravnoteženje uspešnosti, zanesljivosti in doslednosti podatkov.

Uporabite aktivno/pasivno konfiguracijo:
V scenarijih z visokim prometom je priporočljivo uporabljati aktivno/pasivno arhitekturo replikacije, kjer en primarni strežnik MySQL (Master) obravnava vse operacije pisanja in več pasivnih replik (sužnjev). To učinkovito razdeli delovno obremenitev, kar omogoča, da replike služijo samo za branje, medtem ko glavni ročaji pišejo. Ta nastavitev se izogiba zapletenosti in konfliktnim vprašanjem aktivnih/aktivnih konfiguracij. Vendar pa lahko asinhrona replikacija, ki je pogosta v tej nastavitvi, uvede nekaj zamude med glavnim in replikami, zato bi morala logika aplikacije upoštevati zahteve po doslednosti branja.

Način podvajanja:
MySQL Replication podpira asinhrone in pol-sinhrone načine podvajanja. Asinhrona replikacija je privzeta in ponuja visoko zmogljivost, vendar s potencialnim zaostankom podvajanja. Polhrona replikacija izboljšuje skladnost podatkov, tako da mojster počaka, dokler vsaj ena replika potrdi, da prejme transakcijo, preden nadaljuje. To zmanjšuje tveganje za izgubo podatkov v situacijah preklopa, vendar doda zamude. Za velik promet je treba prilagoditi nastavitve časovne omejitve polhronskega načina (privzeto 10 sekund), da se zagotovi ustrezna kompromise med doslednostjo in uspešnostjo. Včasih se mešani načini uporabljajo, kadar kritična replika uporablja pol-sinhroning, drugi pa asinc uporabljajo za uravnoteženje razpoložljivosti in zmogljivosti.

Konfiguracija binarne beleženja:
Omogočite binarno prijavo na glavnem, tako da nastavite `log-bin` in dodelite edinstven` strežnik-id`. Izberite `binlog_format = vrstica`, če želite zabeležiti spremembe posameznih vrstic, ne pa izjav o natančnosti in doslednosti, zlasti v zapletenih delovnih obremenitvah. Konfigurirajte politike zadrževanja binarnih dnevnikov pametno, da uravnotežite sposobnost okrevanja in zahteve pomnilnika. Omogočite tudi `gtid_mode = on` in` enforce_gtid_consistency = on` za globalne identifikatorje transakcij, da poenostavimo upravljanje podvajanja in preklop, kar izboljšuje avtomatizacijo.

Topologija replikacije za uspešnost:
Za razmnoževanje skaliranja v scenarijih z velikim prometom je priporočljiva hierarhična topologija replikacije (imenovana tudi verižna ali replikacija). Glavnik se ponovi na vmesni strežnik (relejski suženj), ki se posledično ponovi na druge replike. To zmanjšuje obremenitev glavnega z prenosom omrežja in podvajanja prometa na vmesne replike. Ta topologija ublaži ozka grla omrežja in izboljša celoten pretok podvajanja. Vendar pa je potrebno omogočanje `log_slave_updates" na relejskih strežnikih, ki nosi zmogljivost nad glavo in zahteva natančno spremljanje, da prepreči zaostajanje za kaskadno replikacijo.

Vzporedna replikacija na sužnjih:
Omogočite vzporedno podvajanje na replikah, da izboljšate delovanje podvajanja. MySQL 5.6+ podpira večnamensko podrejeno SQL izvedbo. Konfiguracijske možnosti, kot so `Slave_parallel_workers`, omogočajo več replikacijskih SQL niti, da vzporedno uporabijo transakcije, kar zmanjšuje zaostajanje za razmnoževanje za delovne obremenitve z neodvisnimi transakcijami. Potrebna je skrbna uglaševanje za nastavitev optimalnih števila niti na podlagi značilnosti CPU -ja in delovne obremenitve, ne da bi pri tem povzročili spor.

Optimizacija omrežja in povezave:
Optimizirajte omrežno konfiguracijo za replikacijski promet z:
- Uporaba namenskih omrežnih vmesnikov za podvajanje.
- Omogočanje stiskanja tokov replikacij za zmanjšanje uporabe pasovne širine.
- Pravilno konfiguriranje pravil požarnega zidu, da se varno replikacijski promet varno omogoči.
-Uporaba šifriranja SSL (omogoči možnosti `--ssl`) za varen prenos podatkov, čeprav doda nekaj CPU-ja.
- Združevanje povezav lahko zmanjša nad glavo zaradi pogostih nastavitev povezave.

Optimizacija shranjevanja in V/I:
Uporabite hitro shranjevanje (prednostno SSD) na glavnem za pisanje binarnih dnevnikov, saj binarno beleženje neposredno vpliva na podvajanje. Na replikah razmislite o ločenih naprav za shranjevanje za rele dnevnike, da se izognete sporedu V/I. Optimizirajte nastavitve I/O Scheduler in parametre datotečnega sistema za pisanje, ker dnevniki podvajanja vključujejo zaporedne pisanje s periodičnimi FSYNC. Latenca diska neposredno vpliva na zaostajanje podvajanja in splošno delovanje.

Nastavitve časovne omejitve in ponovnega poskusa:
Prilagodite nastavitve časovne omejitve replikacije, kot je "sule_net_timeout", da zagotovite, da se priključki za razmnoževanje ne bodo prezgodaj znižali v omrežjih z visokim prometom ali z visoko zamudo. Poleg tega prilagodite `master_retry_count` in s tem povezane parametre ponovnega ponovnega ponovnega odpravljanja za boljšo odpornost med okvarami prehodnih omrežij.

Spremljanje in opozorilo:
Izvedite spremljanje za zaostajanje za razmnoževanje, omrežno pretok, disk V/I in uporabo CPU -ja. Orodja lahko opozorijo na pragove za zamudo podvajanja in druge anomalije, ki lahko kažejo na degradacijo zmogljivosti. Proaktivno spremljanje je v okolju z visokim prometom ključnega pomena za ohranjanje zdravja podvajanja.

Strategije preklopa in varnostne kopije:
Replike morajo biti redno podprte, poleg uporabe podvajanja za visoko razpoložljivost. Postopki preskusa pogosto. Uporabite GTID, da poenostavite obnovitev preklopa z enostavno identifikacijo zadnje izvedene transakcije in zagotovite, da se replike dohitijo brez izgube podatkov. V verižnih topologijah podvajanja zagotovite, da so relejski sužnji in replike listov v celoti sinhronizirani pred preklopom.

Dodatne nastavitve:
- Onemogočite nepotrebno beleženje in spremljanje replik, da zmanjšate režijske stroške.
- Uporabite `Sync_binlog = 1` na glavnem za trajnost, z zavestjo, da vpliva na delovanje diska.
- Nastavite `max_allowed_packet`, da obvladate velike transakcije v podvajanju brez napak.

Povzetek parametrov konfiguracije ključa:
- na mojstra:
- `server-id` (edinstven)
-`dnevnik-bin = mysql-bin`
- `binlog_format = vrstica`
- `gtid_mode = on`
- `Enforce_gtid_consistency = on`
- `Sync_binlog = 1` (za trajnost)
- na replike:
- `server-id` (edinstven drugačen od glavnega)
- `relay_log`
- `log_slave_updates` (če se uporablja kot vmesni rele)
- `Slave_parallel_workers` (> 1 za vzporedno podvajanje)
-`Slave-Net-Timeout ', uglašen za omrežne pogoje
- Način podvajanja:
- Omogoči pol-sinhrono podvajanje za kritične replike (`rpl_semi_sync_master_nabled = on`,` rpl_semi_sync_slave_enabled = on`)
- omrežje:
- SSL omogočeno za podvajanje
- omogočeno stiskanje, če je pretok omejen
- Skladiščenje:
- SSD za binarne in relejske dnevnike
- Ločeno diske za rele dnevnike, če je mogoče
- Topologija:
- Za porazdelitev obremenitve uporabite verižno ali hierarhično podvajanje.

Izvajanje teh nastavitev v kombinaciji z infrastrukturo, ki lahko ravna z visokim omrežjem in pretokom diska, bo zagotovilo, da bo podvajanje MySQL v velikem prometnem okolju optimalno delovalo z boljšim upravljanjem zaostajanja, tolerance na napake in doslednostjo podatkov.