See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 33231|Vastuse: 6

[Allikas] MySQL analüüsib kõrget protsessori kasutust kõrge samaaegsuse olukordades

[Kopeeri link]
Postitatud 05.09.2017 20:23:59 | | | |


Viimasel ajal on mõnel põhjusel veebilehe külastuste arv järsult kasvanud ning joonisest on näha, et samaaegsete ühenduste arv on üle 1200

Kuna serveri konfiguratsioon on väga madal, 1 tuuma ja 2G mälu, ning veebileht on väga aeglane, kui inimesi on palju.


Kontrollimiseks kasutame ülemist käsku, MySQL võtab palju protsessorit ja mälu, teised protsessid on php-fpm ja võtavad CPU ja mälu, mis pole väga kõrge

Kui mysql töötab normaalselt, siis põhjustavad mõned SQL-laused PHP-s probleeme ning juurkasutaja siseneb mysql haldusse
mySQL -u juur -p
Sisesta parool, seejärel sisesta järgmine käsk




Selle käsuga näeme, et andmebaas täidab pidevalt kustutamisoperatsioone tingimustega, kus on see.



pre_k_spider see tabel on tabel, mis salvestab ämblikute ligipääsud, tõenäoliselt põhjustatud pluginast, mis on paigaldatud

Näeme, et pre_k_spider tabelis on üle 100 000 kirje ja päring võtab 33 sekundit



Tühjenda see tabel otsustavalt ja siis mine haldustausta, et sulgeda tabeli vastavad pluginad ja taastada see normaalseks!









Eelmine:Alibaba Cloud Cloud Marketplace'i verifitseerimiskoodi äratundmise teenus
Järgmine:MySQL 5.6.21, et vaadata my.cnf konfiguratsioonifaili
 Üürileandja| Postitatud 06.09.2017 09:32:56 |


Täna on veebileht jälle kinni jäänud ja leitakse palju und

Une põhjused:

1 Kliendiprogramm ei kutsunud mysql_close() enne väljumist.

2 Klient magas üle wait_timeout või interactive_timeout sekundi, ilma et oleks serverile päringuid esitanud.

3 Kliendiprogramm lõppes järsult andmeedastuse keskel

Kui sama perioodi uneprotsesside arv on liiga suur ja teiste olekute ühenduste koguarv ületab max_connection väärtuse, siis MySQL ei saa enam päringuid töödelda peale juurkasutaja, ei saa luua ühendust ühegi päringuga või hangub otse

Lahendus:

1. Esiteks kontrollige, kas teie programm kasutab pconnect meetodit, ja teiseks kontrollige, kas mysql_close() kutsutakse õigel ajal enne lehe käivitamist. Püüa mitte kasutada pühenduse meetodit, st kasuta mysql_connect. Kui programm käivitatakse, tuleks mysql_close otseselt esile kutsuda

2. Lisa my.cnf wait_timeout ja interactive_timeout, sea väärtus väiksemaks, vaikimisi on wait_timeout väärtus 8 tundi, saad muuta 1 tunniks või pooleks tunniks. Nii tapab MySQL surnud ühendused kiiremini. Vältida, et ühenduste koguarv ületaks max_connection väärtust.

wait_timeout liiga suur võib põhjustada suure hulga SLEEP-protsesside vabastamise MySQL-is õigeaegselt, mis langetab süsteemi jõudlust, kuid kui seaded on liiga väikesed, võid tekkida probleemidega nagu "MySQL on kadunud"

Sea max_connection väärtus kõrgemaks, aga see pole ilmselgelt sobilik – mida rohkem ühendusi sul on, seda rohkem stressi see su serverile tekitab. Tegelikult on need ühendused üleliigsed ja nende võimalikult kiire lõpetamine on parim poliitika.

3. Analüüsi süsteemi SQL-päringut samm-sammult, leia liiga aeglane SQL ja optimeeri see



1)interactive_timeout:
Parameetri tähendus: sekundite arv, mil server ootab tegevust enne interaktiivse ühenduse väljalülitamist. Interaktiivne klient on defineeritud kui klient, kes kasutab CLIENT_INTERACTIVE valikut mysql_real_connect().
Parameetri vaikimisi: 28800 sekundit (8 tundi)

(2)wait_timeout:
Parameetri tähendus: Sekundite arv, mille jooksul server ootab tegevust enne mitte-interaktiivse ühenduse sulgemist.
Kui lõim algab, initsialiseeritakse sessiooni wait_timeout väärtus globaalse wait_timeout või globaalse interactive_timeout väärtuse alusel, sõltuvalt klienditüübist (määratletud CLIENT_INTERACTIVE ühendusvalikud mysql_real_connect()).
Parameetri vaikimisi: 28800 sekundit (8 tundi)

MySQL Serveril on maksimaalne ühenduste arv ülemine piir, kuna iga ühendus on loodud ja tarbib mälu, seega eeldame, et kliendid katkestavad ühenduse ja vabastavad hõivatud mälu pärast MySQL Serveriga ühendamist vastava toimingu teostamiseks. Kui sinu MySQL Serveril on palju tühiseisvaid ühendusi, siis nad mitte ainult ei tarbi mälu asjata, vaid kui ühendused kogunevad ja avanevad, jõuavad nad lõpuks MySQL Serveris maksimaalse ühenduste arvuni, mis teatab veateatest 'liiga palju ühendusi'. wait_timeout väärtuse seadmist tuleks hinnata süsteemi toimimise järgi. Kui süsteem on mõnda aega töötanud, saad kontrollida praeguse süsteemi ühenduse staatust käsuga "näita protsessilist"; kui leiad suure hulga ühendatud protsesse unerežiimis, tähendab see, et parameetrite seadistus on liiga suur ja saad teha sobivaid kohandusi, et teha väiksemaid muudatusi.


SQL juhtkond:



See modifikatsioonimeetod onPärast MySQL teenuse taaskäivitamist muutub see kehtetuks, seega on kõige parem seadistada need kaks omadust MySQL seadistusfailis.

Muuda my.cnf faili Linuxis:




Postitatud 06.09.2017 11:15:15 |
Pean hankima master-slave serveri
 Üürileandja| Postitatud 06.09.2017 11:15:49 |
vrchary postitatud 2017-9-6 11:15
Pean hankima master-slave serveri

Serveri konfiguratsiooni põhjus Konfiguratsioon on madal   
 Üürileandja| Postitatud 06.09.2017 13:47:56 |
Lahendati probleem, et "mysql-bin.000001" võtab palju ruumi
http://www.itsvse.com/thread-2694-1-1.html
(Allikas: Arhitekt)

Pärast MySQL-i paigaldamist portidega avastasin, et /var ruum oli ebapiisav, kontrollisin ja leidsin, et mysql-bin.000001, mysql-bin.000002 ja teised failid võtsid ruumi, milleks need failid siis on? See on andmebaasi operatsioonilogi, näiteks UUENDA tabel või KUSTUTA mõni andme, isegi kui lause ei vasta andmetele, salvestatakse see käsk logifaili, sealhulgas iga lause täitmisaeg, mis samuti salvestatakse.

Seda tehakse peamiselt järgmistel kahel eesmärgil:
1: Andmete taastamine
Kui sinu andmebaasis on probleem ja sul on varundatud varukoopia, saad logifailist välja selgitada, milline käsk põhjustas sinu andmebaasi probleemi ja leida viis kaotuse taastamiseks.
2: Sünkroniseeri andmed master-slave serverite vahel
Kõik operatsioonid põhiserveril salvestatakse logisse, mida orjaserver saab kasutada, et tagada mõlema sünkroniseerimine.

Lihtsalt sulge logi


 Üürileandja| Postitatud 09.10.2017 14:33:30 |
Mysqld on allpool Windowsis liiga CPU-ga hõivatud



Lahendus: SQL-lause optimeerimine
Postitatud 30.12.2021 23:15:36 |
Toeta seda!!!!!!!!!!!!!!!!
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com