Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 15232|Atbildi: 3

[Avots] MySQL CPU 100% augsts risinājums

[Kopēt saiti]
Publicēts 11.10.2018 11:20:31 | | | |
Atveriet servera uzdevumu pārvaldnieku un konstatējiet, ka CPU process vienmēr ir bijis 99%, un skatu aizņem mysql process, kas ir bijis augsts.


Komandas processlist izvade parāda, kuri pavedieni darbojas, un jūs varat pārbaudīt datu bāzes pašreizējo darbības statusu.

1. Dodieties uz mysql/bin direktoriju un ievadiet mysqladmin processlist;
2. Sāciet mysql un ievadiet rādīt procesu sarakstu.
Ja jums ir SUPER atļauja, varat redzēt visus pavedienus, pretējā gadījumā varat redzēt tikai sava konta pavedienus.





Katras kolonnas nozīme un mērķis

id: identifikators
lietotājs: parāda pašreizējo lietotāju, ja tas nav sakne, šī komanda parādīs SQL paziņojumus tikai jūsu atļauju ietvaros.
resursdators: parāda, no kura porta nāk šis IP
db: parāda datu bāzi, ar kuru process pašlaik ir savienots.
komanda: parāda komandas, ko izpilda pašreizējais savienojums, parasti miega režīms, vaicāšana un savienojuma izveide.
laiks: šī stāvokļa ilgums sekundēs.
stāvoklis: Parāda sql paziņojuma statusu, kas izmanto pašreizējo savienojumu, bet ir vaicāts tikai noteikts stāvoklis paziņojuma izpildē, sql paziņojums, piemēram, tam var būt nepieciešams veikt kopēšanu uz tmp tabulu, Šķirošanas rezultāts, Datu nosūtīšana utt
informācija: parāda šo SQL priekšrakstu, jo garums ir ierobežots, tāpēc garais SQL priekšraksts netiek pilnībā parādīts, bet tas ir svarīgs pamats, lai spriestu par problēmas apgalvojumu.


Tiek konstatēts, ka ir divi SQL vaicājuma paziņojumi, kas aizņem visilgāko laiku un nav izpildīti ilgāk par 1000 sekundēm, un SQL paziņojumi, kurus mēs kopējām no informācijas lauka, ir kopīgs vaicājums, šādi:

izvēlieties cast(count(*) as SIGNED) kā col_0_0_ no 'RatedPassenger' ratedpasse0_, 'BaseInfoCompany' baseinfoco1_, 'OrderMatch' ordermatch2_ kur baseinfoco1_. Uzņēmuma ID=ratedpasse0_. CompanyId un ordermatch2_. OrderId=ratedpasse0_. Pasūtījuma ID

Mēs nogalinām šo divu vaicājumu paziņojumu procesu

Pēc 10 sekunžu gaidīšanas es atklāju, ka CPU ir daudz samazinājies, bet tas joprojām bija ļoti augsts, un es turpināšu jautāt iemeslu!



Savienojuma kopīgā vaicājuma priekšrakstam pievienojiet indeksu saistītajam laukam vai modificējiet programmas vaicājuma kodu.
Indeksa SQL priekšraksta izveide

Beigas





Iepriekšējo:C# pieteikties WordPress
Nākamo:Modificējiet ostu kartēšanas metodi doku konteineriem
 Saimnieks| Publicēts 11.10.2018 13:03:02 |
Viskritiskākais no šīs komandas ir štata kolonna, un mysql uzskaitītie stāvokļi galvenokārt ir šādi:

Pārbaudes tabula  
  Datu lapas pārbaude (tas notiek automātiski).  
  Aizvēršanas galdi  
  Tabulā modificētie dati tiek izskaloti diskā, un izmantotā tabula tiek aizvērta. Šī ir ātra darbība, ja nē, jums jāpārbauda, vai diska vieta ir pilna vai disks ir ielādēts.  
  Savienojuma izveide  
  Replikācijas verga serveris veido savienojumu ar primāro serveri.  
  Kopēšana uz tmp tabulu diskā  
  Tā kā pagaidu rezultātu kopa ir lielāka par tmp_table_size, pagaidu tabula tiek konvertēta no atmiņas uz diska krātuvi, lai taupītu atmiņu.  
  Tmp tabulas izveide  
  Tiek izveidota pagaidu tabula, lai saglabātu dažus vaicājuma rezultātus.  
  Dzēšana no galvenās tabulas  
  Serveris veic vairāku tabulu dzēšanas pirmo daļu un tikko ir izdzēsis pirmo tabulu.  
  Dzēšana no atsauces tabulām  
  Serveris veic vairāku tabulu dzēšanas otro daļu, kas dzēš ierakstus no citām tabulām.  
  Skalošanas tabulas  
  Veicot FLUSH TABLES, gaidot, kamēr citi pavedieni aizvērs datu tabulu.  
  Nogalināts  
  Ja nogalināšanas pieprasījums tiek nosūtīts uz pavedienu, pavediens pārbaudīs nogalināšanas karodziņu un atteiksies no nākamā nogalināšanas pieprasījuma. MySQL pārbauda, vai katrā galvenajā cilpā nav nogalināšanas karodziņu, lai gan dažos gadījumos pavediens var nomirt uz īsu laiku. Ja pavediens ir bloķēts ar citu pavedienu, nogalināšanas pieprasījums stāsies spēkā uzreiz, kad bloķēšana tiks atbrīvota.  
  Bloķēts  
  Bloķēts ar citiem vaicājumiem.  
  Datu nosūtīšana  
  SELECT vaicājuma ieraksts tiek apstrādāts, kamēr rezultāti tiek nosūtīti klientam.  
  Grupas kārtošana  
  Kārtošana grupai PĒC.  
  Kārtošana pēc pasūtījuma  
  Kārtošana tiek veikta ORDER BY.  
  Atvēršanas galdi  
  Šim procesam jābūt ātram, ja vien to netraucē citi faktori. Piemēram, datu tabulu nevar atvērt cits pavediens, kamēr nav izpildīts priekšraksts ALTER TABLE vai LOCK TABLE. Mēģina atvērt galdu.  
  Dublikātu noņemšana  
  Tiek izpildīts vaicājums SELECT DISTINCT, bet MySQL nevar optimizēt ierakstu dublikātus iepriekšējā posmā. Tāpēc MySQL ir jānoņem ierakstu dublikāti vēlreiz pirms rezultātu nosūtīšanas klientam.  
  Tabulas atkārtota atvēršana  
  Tiek iegūta tabulas slēdzene, bet tā ir jāmaina pēc tabulas struktūras modificēšanas. Jau atbrīvota bloķēšana, aizvērta datu lapa un mēģina atkārtoti atvērt datu tabulu.  
  Remonts ar šķirošanu  
  Labošanas instrukcija ir kārtošana, lai izveidotu indeksu.  
  Labošana ar keycache  
  Labošanas direktīva izmanto indeksa kešatmiņu, lai izveidotu jaunus indeksus pa vienam. Tas būs lēnāks nekā remonts, kārtojot.  
  Atjaunināšanas rindu meklēšana  
  Atjauninājumiem tiek identificēti piemērotie ieraksti. Tas jādara, pirms UPDATE modificē attiecīgo ierakstu.  
  Gulēšana  
  Gaida, kad klients nosūtīs jaunu pieprasījumu.  
  Sistēmas bloķēšana  
  Gaida, lai iegūtu ārējo sistēmas bloķēšanu. Ja vienlaicīgi nedarbojas mysqld serveri, kas pieprasa vienu un to pašu tabulu, ārējās sistēmas bloķēšanu var aizliegt, pievienojot parametru –skip-external-locking.  
  Jaunināšanas slēdzene  
  INSERT DELAYED mēģina iegūt bloķēšanas tabulu, lai ievietotu jaunu ierakstu.  
  Atjaunināšana  
  Atbilstošu ierakstu meklēšana un modificēšana.  
  Lietotāja bloķēšana  
  gaida GET_LOCK().  
  Gaida galdiņus  
  Pavedienam tika paziņots, ka datu lapas struktūra ir modificēta un tā ir jāatver no jauna, lai iegūtu jauno struktūru. Pēc tam, lai atkārtoti atvērtu datu tabulu, jāgaida, līdz visi pārējie pavedieni aizver tabulu. Šis paziņojums tiek parādīts šādos gadījumos: FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE vai OPTIMIZE TABLE.  
  Gaida apdarinātāja ievietošanu  
  INSERT DELAYED ir apstrādājis visus gaidāmos ievietojumus un gaida jaunu pieprasījumu.  
  Lielākā daļa valstu atbilst ātrām operācijām, kamēr pavediens dažas sekundes paliek tajā pašā stāvoklī, tad var rasties problēma, kas jāpārbauda.
 Saimnieks| Publicēts 01.03.2019 10:26:49 |
 Saimnieks| Publicēts 01.03.2019 10:34:13 |


Datu vaicājums aizņem 10 sekundes.
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com