Kā noregulēt un optimizēt MySQL 5.7 veiktspēju Ubuntu 18.04 VPS vai speciālajā serverī

Ievads

Pirms darba sākšanas jums ir jāsaprot faktori, kas ietekmē MySQL veiktspēju, lai jūs varētu iemācīties pareizi iestatīt un optimizēt MySQL serveri un iegūt pareizos rezultātus. Galvenie faktori ir:


  • Izgūstamo datu apjoms
  • Pieejamie resursi, t.i., CPU, atmiņa (RAM)
  • Slodze, ko darbina MySQL serveris>

Zemas MySQL servera veiktspējas cēloņi ir:

  • Slikta datu bāzes dizains
  • Aparatūras vājās vietas
  • Slikta kodēšana
  • Slikta indeksācija
  • Neefektīva konfigurācija

Īpaša piezīme: kā redzat, vairākus no šiem faktoriem var novērst, jauninot uz labāku tīmekļa mitināšanas pakalpojumu. HostAdvice piedāvā jums labākos MySQL mitināšanas pakalpojumu sniedzējus, pamatojoties uz ekspertu un lietotāju atsauksmēm.

Mysqltuner un tuning-primer instalēšana

Instalējiet mysqltuner

Mysqltuner ir augstas veiktspējas MySQL tuning Perl skripts, kas sniedz momentuzņēmumu par MySQL servera veselības stāvokli un sniedz īpašus ieteikumus, kā uzlabot, palielināt veiktspēju, stabilitāti un efektivitāti.

Palaidiet zemāk esošās komandas, lai instalētu mysqltuner

USD cd / tmp
$ sudo wget https://raw.github.com/major/MySQLTuner-perl/master/mysqltuner.pl – kluss – no-check-sertifikāts – output-document = / usr / local / bin / mysqltuner
$ sudo chmod u + x / usr / local / bin / mysqltuner

Instalējiet tuning-primer

Tuning Primer ir apvalka skripts, kas iegūst informāciju no MySQL servera iekšējiem elementiem un sniedz ieteikumus par servera mainīgo pielāgošanu.

Palaidiet zemāk esošās komandas, lai instalētu tuning gruntējumu:

$ sudo apt install bc -y
$ sudo wget http://www.day32.com/MySQL/tuning-primer.sh – output-document = / usr / local / bin / tuning-primer
$ sudo chmod u + x / usr / local / bin / tuning-primer

MySQL servera iestatīšana un optimizēšana

MySQL servera iestatīšana tiek veikta MySQL konfigurācijas failā.

/etc/mysql/mysql.conf.d/mysqld.cnf

Palaist mysqltuner.

$ sudo mysqltuner
$ sudo mysqltuner
>> MySQLTuner 1.7.9 – majors Hayden
>> Kļūdu ziņojumi, funkciju pieprasījumi un lejupielādes vietnē http://mysqltuner.com/
>> Papildu opcijām un izvades filtrēšanai izmantojiet “–help”

[-] Izlaistās versijas pārbaude attiecībā uz skriptu MySQLTuner
[OK] Pieteicies, izmantojot akreditācijas datus no Deian uzturēšanas konta.
[Labi] Pašlaik darbojas atbalstītā MySQL versija 5.7.22-0ubuntu18.04.1
[OK] Darbojas ar 64 bitu arhitektūru

——– Ieteikumi žurnālfailā ——————————————————————
[-] Žurnāla fails: /var/log/mysql/error.log(18K)
[Labi] pastāv žurnāla fails /var/log/mysql/error.log
[OK] Žurnāla fails /var/log/mysql/error.log ir lasāms.
[OK] Žurnāla fails /var/log/mysql/error.log nav tukšs
[OK] Žurnāla fails /var/log/mysql/error.log ir mazāks par 32 Mb
[!!] /var/log/mysql/error.log satur 14 brīdinājumus.
[!!] /var/log/mysql/error.log satur 3 kļūdas.
[-] mapē /var/log/mysql/error.log tika atklāti 3 sākumi
[-] 1) 2018-06-06T17: 55: 47.928847Z 0 [Piezīme] / usr / sbin / mysqld: gatavs savienojumiem.
[-] 2) 2018-06-06T17: 55: 44.798684Z 0 [Piezīme] mysqld: gatavs savienojumiem.
[-] 3) 2018-06-06T17: 55: 41.931105Z 0 [Piezīme] mysqld: gatavs savienojumiem.
[-] mapē /var/log/mysql/error.log tika atklātas 2 izslēgšanas
[-] 1) 2018-06-06T17: 55: 46.410548Z 0 [Piezīme] mysqld: izslēgšana pabeigta
[-] 2) 2018-06-06T17: 55: 43.758366Z 0 [Piezīme] mysqld: izslēgšana pabeigta

——– Uzglabāšanas motora statistika —————————————————————–
[-] Statuss: + ARHĪVS + BLACKHOLE + CSV – FEDERATĪVA + InnoDB + ATMIŅA + MRG_MYISAM + MyISAM + PERFORMANCE_SCHEMA
[-] Dati InnoDB tabulās: 16K (tabulas: 1)
[Labi] Kopējais sadrumstaloto tabulu skaits: 0

——– Drošības ieteikumi ——————————————————————
[Labi] Nevienam datu bāzes lietotājam nav anonīmu kontu
[Labi] Visiem datu bāzes lietotājiem ir piešķirtas paroles
[-] Kļūda # 80860 MySQL 5.7: neaktivizējiet paroli, kad ir aktivizēta validate_password

——– CVE drošības ieteikumi ————————————————————–
[-] Izlaists, jo nav definēta opcija –cvefile

——– Veiktspējas metrika ———————————————————————–
[-] Uz priekšu: 9m 8s (110 q [0.201 qps], 38 conn, TX: 187K, RX: 10K)
[-] lasa / raksta: 98% / 2%
[-] Binārā reģistrēšana ir atspējota
[-] Fiziskā atmiņa: 3,6G
[-] Max MySQL atmiņa: 352.4M
[-] Cita procesa atmiņa: 175.4M
[-] Kopējais buferis: 192,0M globāli + 1,1M par pavedienu (maksimāli 151 pavedieni)
[-] P_S Maksimālais atmiņas lietojums: 72B
[-] Galera GCache Max atmiņas lietojums: 0B
[Labi] Maksimālais sasniegtais atmiņas patēriņš: 194.1M (5.26% no instalētās RAM)
[Labi] Maksimāli iespējamā atmiņas izmantošana: 352.4M (9.54% no instalētās operatīvās atmiņas)
[OK] Kopējā iespējamā atmiņas izmantošana ar citu procesu ir saderīga ar pieejamo atmiņu
[OK] Lēni vaicājumi: 0% (0/110)
[OK] Vislielākais pieejamo savienojumu izmantojums: 1% (2/151)
[Labi] pārtraukti savienojumi: 0,00% (0/38)
[!!] nosaukuma izšķirtspēja ir aktīva: katram jaunam savienojumam tiek veikta apgrieztā nosaukuma izšķirtspēja, un tas var samazināt veiktspēju
[!!] Vaicājuma kešatmiņa var būt atspējota mutex apgalvojuma dēļ.
[!!] Vaicājuma kešatmiņas efektivitāte: 0,0% (0 kešatmiņā / 49 atlasīti)
[Labi] Kešatmiņas plūmju žāvēšana dienā: 0
[Labi] Kārtojumi, kuriem nepieciešamas pagaidu tabulas: 0% (0 temp veida / 2 veida)
[OK] Bez indeksiem neviens nepievienojas
[OK] Diskā izveidotas pagaidu tabulas: 4% (36 diskā / kopā 846)
[Labi] Vītņu kešatmiņas trāpījumu līmenis: 94% (2 izveidoti / 38 savienojumi)
[Labi] Tabulas kešatmiņas trāpījumu līmenis: 95% (atvērts 591 / atvērts 620)
[OK] Izmantotais atvērtā faila ierobežojums: 1% (50 / 5K)
[OK] Galda slēdzenes tiek iegūtas uzreiz: 100% (158 tūlītējas / 158 slēdzenes)

——– Darbības shēma ————————————————————————
[-] P_S izmantotā atmiņa: 72B
[-] Sistēmas shēma ir instalēta.

——– ThreadPool metrika ————————————————————————
[-] ThreadPool stat ir atspējots.

——– MyISAM metrika —————————————————————————-
[!!] Izmantotais atslēgas buferis: 18,3% (izmantots 3 miljoni / 16 miljoni kešatmiņas)
[OK] Taustiņu bufera izmērs / kopējais MyISAM indekss: 16,0M / 43,0K
[!!] Lasīšanas atslēgas bufera trāpījumu līmenis: 94,1% (118 kešatmiņā / 7 lasījumi)

——– InnoDB metrika —————————————————————————-
[-] InnoDB ir iespējots.
[-] InnoDB pavedienu vienlaicīgums: 0
[Labi] ir aktivizēts InnoDB fails tabulā
[Labi] InnoDB bufera baseins / datu lielums: 128,0M / 16,0K
[!!] InnoDB žurnālfaila lielums / InnoDB bufera portfeļa lielums (75%): 48,0M * 2 / 128,0M ir jābūt vienādam ar 25%
[Labi] InnoDB bufera portfeļa gadījumi: 1
[-] InnoDB bufera baseina paketes skaits: 1 uz 1 bufera baseina instancēm
[Labi] Innodb_buffer_pool_size ir saskaņots ar Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances
[!!] InnoDB lasīšanas bufera efektivitāte: 88,39% (1933 hits / 2187 kopā)
[!!] InnoDB rakstīšanas žurnāla efektivitāte: 0% (5 hits / 0 kopā)
[Labi] InnoDB žurnāls gaida: 0.00% (0 gaida / 5 raksta)

——– AriaDB metrika —————————————————————————-
[-] AriaDB ir atspējots.

——– TokuDB metrika —————————————————————————-
[-] TokuDB ir atspējots.

——– XtraDB metrika —————————————————————————-
[-] XtraDB ir atspējots.

——– RocksDB metrika —————————————————————————
[-] RocksDB ir atspējots.

——– Zirnekļa metrika —————————————————————————-
[-] Zirneklis ir atspējots.

——– Pievienojiet metriku —————————————————————————
[-] savienojums ir atspējots.

——– Galera metrika —————————————————————————-
[-] Galera ir atspējota.

——– Replikācijas metrika ———————————————————————–
[-] Galera sinhrona replikācija: NĒ
[-] Šim serverim nav replikācijas vergu (-u).
[-] Binlog formāts: ROW
[-] XA atbalsts ir iespējots: ieslēgts
[-] Daļēji sinhrona replikācijas maģistrs: nav aktivizēts
[-] Daļēji sinhrona replikācija Vergs: Nav aktivizēts
[-] Šis ir patstāvīgs serveris

——– Ieteikumi —————————————————————————
Vispārīgi ieteikumi:
Kontrolējiet brīdinājuma līniju (-as) failā /var/log/mysql/error.log
Kontrolējiet kļūdu līniju (-as) failā /var/log/mysql/error.log
MySQL tika palaists pēdējo 24 stundu laikā – ieteikumi var būt neprecīzi
Konfigurējiet savus kontus, izmantojot tikai ip vai apakštīklus, pēc tam atjauniniet konfigurāciju, izmantojot skip-name-resolution = 1
Pirms mainīt innodb_log_file_size un / vai innodb_log_files_in_group, izlasiet šo: http://bit.ly/2wgkDvS
Mainīgie mainīgie:
query_cache_size (= 0)
query_cache_type (= 0)
query_cache_limit (> 1 miljons vai izmantojiet mazākas rezultātu kopas)
innodb_log_file_size vajadzētu būt (= 16 miljoni), ja iespējams, tāpēc InnoDB kopējais žurnālfailu lielums ir vienāds ar 25% no bufera baseina lieluma.

Koncentrējieties uz pēdējo izvades daļu sadaļā “Ieteikumi” un pārbaudiet mainīgos lielumus, kas jāpalielina.

Izveidojiet mysql konfigurācijas faila dublējumu un rediģējiet faktisko konfigurācijas failu.

$ sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Pielāgojiet faila mainīgo atbilstoši ieteikumiem. Jūs varat komentēt noklusējuma mainīgo vērtības un palielināt mainīgo vērtības līdz divreiz lielākai noklusējuma vērtībai. Patiesībā var paiet dažas dienas, lai nākt klajā ar labākajām jūsu servera vērtībām.

Pēc izmaiņu veikšanas restartējiet mysql serveri.

$ sudo systemctl restartējiet mysql

Īpaša piezīme: ja neizdodas restartēt, dodieties atpakaļ un komentējiet jaunās vērtības un sāciet koriģēt pa vienam un redziet, kurš mainīgais pielāgojums izraisa servera kļūmi

Ja serveris veiksmīgi ielādējas atkārtoti, palaidiet mysqltuner un pārbaudiet, vai ir vēl kādi ieteikumi par mainīgo vērtību korekciju.

Veiciet līdzīgu procesu gruntēšanas iestatīšanai.

Palaist tuning gruntējumu

$ sudo tuning-primer
$ sudo tuning-primer

— MYSQL PERFORMANCE TUNING PRIMER —
– Autors: Metjū Montgomerijs –

MySQL versija 5.7.22-0ubuntu18.04.1 x86_64

Laiks, kas pavadīts saitā = 0 dienas 0 stundas 1 min 49 sek
Vid. qps = 0
Jautājumu kopskaits = 15
Savienotie pavedieni = 1

Brīdinājums: serveris nedarbojas vismaz 48 stundas.
Var nebūt droši izmantot šos ieteikumus

Lai uzzinātu vairāk informācijas par to, kā katrs no šiem
izpildlaika mainīgie ietekmē veiktspējas apmeklējumu:
http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
Apmeklējiet vietni http://www.mysql.com/products/enterprise/advisors.html
lai iegūtu informāciju par MySQL Uzņēmējdarbības uzraudzības un konsultāciju pakalpojumu

LĒNI JAUTĀJUMI
Lēnā vaicājumu žurnāls NAV iespējots.
Pašreizējais long_query_time = 10.000000 sek.
Jums ir 0 no 36, kas prasa vairāk nekā 10.000000 sek. lai pabeigtu
Liekas, ka jūsu long_query_time ir kārtībā

BINĀRS ATJAUNINĀJUMA ŽURNĀLS
Binārā atjauninājumu žurnāls NAV iespējots.
Jūs nevarēsit veikt atjaunošanu pēc laika
Skatiet vietni http://dev.mysql.com/doc/refman/5.7/en/point-in-time-recovery.html

DARBINIEKU VEIDI
Pašreizējā thread_cache_size = 8
Pašreizējā diegu cache = 0
Pašreizējais threads_per_sec = 0
Vēsturiski threads_per_sec = 0
Jūsu thread_cache_size ir kārtībā

MAX savienojumi
Pašreizējie max_savienojumi = 151
Pašreizējie pavedieni ir savienoti = 1
Vēsturiski max_used_connections = 1
Izmantoto savienojumu skaits ir 0% no konfigurētā maksimālā.
Jūs izmantojat mazāk nekā 10% no jūsu konfigurētajiem max_savienojumiem.
Maksimālo savienojumu samazināšana varētu palīdzēt izvairīties no pārmērīgas atmiņas iedalīšanas
Skat "ATMIŅAS LIETOŠANA" sadaļu, lai pārliecinātos, ka nepiešķir pārāk daudz līdzekļu

Nav iespējots InnoDB atbalsts!

ATMIŅAS LIETOŠANA
Maksimālā atmiņa, kas jebkad piešķirta: 177 miljoni
Konfigurēti maksimālie buferi vienā pavedienā: 160 M
Konfigurēti maksimālie globālie buferi: 176 miljoni
Konfigurēts maksimālais atmiņas ierobežojums: 336 M
Fiziskā atmiņa: 3,60 G
Šķiet, ka maksimālais atmiņas limits ir pieļaujamo normu robežās

GALVENĀ BUFERIS
Pašreizējā MyISAM indeksa telpa = 43 K
Pašreizējais key_buffer_size = 16 miljoni
Taustiņu kešatmiņas nokavēšanas līmenis ir 1: 2
Atslēgas bufera brīvā attiecība = 81%
Jūsu atslēgas bufera_izmērs, šķiet, ir kārtībā

JAUTĀJUMU KARTE
Vaicājuma kešatmiņa ir iespējota
Pašreizējais query_cache_size = 16 miljoni
Pašreizējais query_cache_used = 16 K
Pašreizējais query_cache_limit = 1 miljons
Pašreizējā vaicājuma kešatmiņas atmiņas aizpildīšanas koeficients = .10%
Pašreizējais query_cache_min_res_unit = 4 K
Šķiet, ka jūsu query_cache_size ir par daudz.
Varbūt jūs varat izmantot šos resursus citur
MySQL kešatmiņā netiks saglabāti vaicājumu rezultāti, kuru lielums ir lielāks par query_cache_limit

SORT Operācijas
Pašreizējais sort_buffer_size = 256 K
Pašreizējais read_rnd_buffer_size = 256 K
Kārtošanas operācijas nav veiktas
Šķiet, ka kārtošanas buferis ir kārtībā

APVIENOJAS
Pašreizējais join_buffer_size = 260,00 K
Jums ir bijuši 0 vaicājumi, kuros pievienošanās nevarēja pareizi izmantot indeksu
Šķiet, ka jūsu pievienošanās indeksus izmanto pareizi

ATVĒRTU DOKUMENTU IEROBEŽOJUMS
Pašreizējie open_files_limit = 5000 faili
Open_files_limit parasti jāiestata vismaz 2x-3x
table_cache, ja izmantojat daudz MyISAM.
Jūsu open_files_limit vērtība, šķiet, ir laba

TABULAS KABEJA
Pašreizējā table_open_cache = 2000 tabulas
Pašreizējā table_definition_cache = 1400 tabulas
Jums kopā ir 119 galdi
Jums ir 249 atvērti galdi.
Table_cache vērtība, šķiet, ir laba

TEMP TABULAS
Pašreizējais max_heap_table_size = 16 M
Pašreizējais tmp_table_size = 16 M
No 361 temp tabulām 6% tika izveidoti diskā
Izveidoto disku tmp tabulu attiecība šķiet laba

TABULAS Skenēšana
Pašreizējais lasīšanas_bufera_lielums = 128 K
Pašreizējā tabulas skenēšanas attiecība = 673: 1
read_buffer_size šķiet labi

TABULAS bloķēšana
Pašreizējās bloķēšanas gaidīšanas koeficients = 0: 219
Jūsu galda bloķēšana, šķiet, ir laba

Īpaša piezīme: vairāk koncentrējieties uz izcelto sarkano un dzelteno tekstu, jo tas sniedz ieteikumus, kā optimizēt un uzlabot mysql veiktspēju. Visiem, kas noklusina, tacu

Pielāgojiet faila mainīgo atbilstoši ieteikumiem. Jūs varat komentēt noklusējuma mainīgo vērtības un pielāgot mainīgo vērtības, kā ieteikts ieteikumos. Visiem, kas noklusina, tacu

Pēc izmaiņu veikšanas restartējiet MySQL serveri.

$ sudo systemctl restartējiet mysql

Īpaša piezīme: ja neizdodas restartēt, dodieties atpakaļ un komentējiet jaunās vērtības un sāciet koriģēt pa vienam un skatiet, kurš mainīgais pielāgojums izraisa servera kļūmi.

Ja serveris veiksmīgi restartējas, palaidiet atkārtotu skaļruņa iestatīšanu un pārbaudiet, vai ir vēl kādi ieteikumi par mainīgo vērtību korekciju.

Secinājums

Ir ļoti svarīgi atzīmēt, ka noregulēšanas rīki mysqltuner vai tuning-primer nav risinājums slikti darbinošam MySQL serverim, bet gan skripti, kas palīdzēs precīzi noregulēt MySQL serveri..

Par labāko sniegumu,

  • Veiciet rūpīgu pārskatu uz serverim nosūtītajiem jautājumiem un optimizējiet datu bāzes struktūru / noformējumu un SQL vaicājumu
  • Novērtējiet faktorus, kas ietekmē MySQL veiktspēju, kā paskaidrots ievadā.
  • Apsveriet fiziskā servera aparatūras jaunināšanu, lai nodrošinātu labāku veiktspēju, un optimizējiet MySQL konfigurācijas, pamatojoties uz aparatūras specifikācijām.
  • Veiciet vairāk pētījumu par to, kā pielāgot MySQL konfigurācijas, pamatojoties uz lietojumprogrammām, kas izmanto MySQL serveri.

Pēc MySQL servera restartēšanas ir ļoti ieteicams regulāri palaist mysqltuner vai tuningprimer rīku ilgāk nekā 48 stundas, lai iegūtu jēgpilnu lietošanas statistiku..

Apskatiet šos top 3 MySQL mitināšanas pakalpojumus:

A2 mitināšana

Sākuma cena:
3,92 USD


Uzticamība
9.3


Cenu noteikšana
9.0


Lietotāju draudzīgs
9.3


Atbalsts
9.3


Iespējas
9.3

Lasīt atsauksmes

Apmeklējiet vietni A2 Hostings

FastComet

Sākuma cena:
2,95 USD


Uzticamība
9.7


Cenu noteikšana
9.5


Lietotāju draudzīgs
9.7


Atbalsts
9.7


Iespējas
9.6

Lasīt atsauksmes

Apmeklējiet vietni FastComet

Hostinger

Sākuma cena:
0,99 USD


Uzticamība
9.3


Cenu noteikšana
9.3


Lietotāju draudzīgs
9.4


Atbalsts
9.4


Iespējas
9.2

Lasīt atsauksmes

Apmeklējiet vietni Hostinger

Saistītie padomi

  • Kā noregulēt un optimizēt MySQL 8.0 veiktspēju uz CentOS 7 servera
    eksperts
  • Kā izveidot MySQL datu bāzes dublējumu Ubuntu 18.04 VPS vai speciālajā serverī
    starpposms
  • Kā instalēt MYSQL 8.0 un izveidot datu bāzi Ubuntu 18.04 Linux VPS
    starpposms
  • Kā atspējot MySQL 5 "Stingrs režīms" Ubuntu 18.04 VPS vai speciālajā serverī
    starpposms
  • Kā instalēt PhpMyAdmin Ubuntu 18.04 VPS vai Dedicated Server
    starpposms
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me