Puncte:1

Serverul este întotdeauna lent în jurul orei 14:00 timp de 1 săptămână

drapel no

Am făcut top și am primit:

Sarcini: 590 total, 8 alergare, 582 dormit, 0 oprit, 0 zombi
CPU(e) 96,5%us, 2,7%sy, 0,0%ni, 0,4%id, 0,0%wa, 0,0%hi, 0,4%si, 0,0%st
Mem: 32877280k total, 30611188k folosite, 2266092k gratuit, 4021204k buffere
Schimbați 0k total, 0k folosite, 0k gratuit, 4267024k în cache

PID UTILIZATOR PR NI VIRT RES SHR S %CPU %MEM TIME+ COMANDA
21672 mysql 20 0 13.1G 8.9G 8496 S 559.1 28.3 124168:04 mysqld
12025 rețele 20 0 494m 59m 5544 S 30.8 02 1:09.82 php-fpm
13325 webs 20 0 414m 57m 8014 S 21.4 02 1:08.42 php
11111 rețele 20 0 495m 64m 3231 S 18.5 02 1:12.16 php-fpm
13232 rețele 20 0 505m 96m 8542 S 16.5 02 1:12.12 php-fpm
13217 rețele 20 0 401m 52m 8541 S 15.5 02 1:02.44 php-fpm
13119 rețele 20 0 475m 39m 8555 S 15.5 02 1:02.16 php-fpm
12065 rețele 20 0 495m 49m 2533 S 14.9 02 1:22.41 php-fpm
12161 rețele 20 0 412m 61m 2524 S 10.5 02 1:06.01 php-fpm
12275 rețele 20 0 455m 51m 1544 S 10.5 02 1:34.04 php-fpm
12427 webs 20 0 464m 92m 7541 S 10.5 02 1:31.41 php-fpm
12127 rețele 20 0 459m 89m 6544 S 10.5 02 1:01.19 php-fpm

Acum, mă gândeam și m-am gândit că cel mai bun mod de a face serverul mai rapid ar fi să repornesc procesul mysqld, dar cum mă asigur că nu are loc un dump sql mare? Am afișat lista completă de procese, dar mi s-a spus că nu vă spune dacă există o descărcare în curs de desfășurare, deoarece inserarea are loc foarte repede. De asemenea, cum investighez mai departe? Într-un articol pe care l-am citit, mi s-a spus dacă id și wa sunt scăzute, trebuie să verific dacă procesorul este ridicat și dacă procesorul este ridicat trebuie să repornesc procesul. Cât de des ar trebui să repornesc, care este arborele de decizie când există un server încetinit, care sunt toate lucrurile pe care trebuie să le fac?

Am arătat lista completă de procese și am primit:

1 utilizator de sistem Coordonator de epurare Daemon InnoDB    
4 utilizator de sistem Daemon InnoDB purge worker 
3 utilizator de sistem Daemon InnoDB purge worker 
2 utilizator de sistem Daemon InnoDB purge worker 
5 utilizator de sistem Daemon InnoDB handler de închidere 
109725 root localhost:54620 Query 0 Init arată lista completă de procese
142438 prăjituri localhost prăjituri Sleep 295     
142449 prăjituri localhost prăjituri Sleep 21      
144422 clătite localhost clătite Sleep 54      
144426 clătite localhost:54038 clătite Sleep 56      
145072 bookletv3 localhost bookletv3 Interogare 0 Trimiterea datelor SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_prod JOIN wp_prod wc. AND wc. stoc = 'm004189' SAU wc.vin = 'm004189') AND ( wc.isbudget ESTE NULL SAU wc.isbudget <> 1 ) AND ( wc.deleted ESTE NULL SAU wc.deleted <> 1 ) WHERE 1=1 AND ( 
  wp_postmeta.meta_key = '_prod_info_new'
) AND wp_posts.post_type = 'used-prod' AND (wp_posts.post_status = 'publicare') GROUP BY wp_posts.ID ORDER BY wc.SoldDate IS NULL, wc.SoldDate ASC, wc.isnew DESC LIMIT 0, 15
145073 bookletv3 localhost:33840 bookletv3 Sleep 0       
145074 bookletv3 localhost bookletv3 Interogare 0 Statistici -- (brand) product city
      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s

      INNER JOIN `wp_prod` c
      PE (
        (c.bestproductname = s.product și c.bestproductname != '')
        SAU c.produs = s.produs
      )
    
      WHERE c.product != '' AND c.product = 'tiramisu' AND s.`city` = 'losangeles' AND s.`prod_type` = 1 AND s.text_es <>''
      ȘI c.locația în ("HY2112","HY1134","HY90428","HY10223","AR13821","AR90498","AR90613","BR92144","BR9239") 

      LIMITĂ 1)


      -- orașul de marcă
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE s.brand = 'Chewy' AND s.brand != '' AND s.`city` = 'losangeles' AND s.`city` != '' AND s.`prod_type` = 1 AND s.text_es <> '')


      -- oraș
      UNIREA TOȚI

      (SELECTează textul text_es
      DIN `wp_prod_city_seo` s
      WHERE `city_slug` = 'losangeles' AND `city_slug` != ''
      LIMITĂ 1)


      -- produs
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s

      INNER JOIN `wp_prod` c
      PE (
        (c.bestproductname = s.product și c.bestproductname != '')
        SAU c.produs = s.produs
      )

      WHERE c.product = 'tiramisu' AND c.product != '' AND s.`prod_type` = 1 AND s.text_es <>''
      ȘI c.locația în ("HY2112","HY1134","HY90428","HY10223","AR13821","AR90498","AR90613","BR92144","BR9239")

      LIMITĂ 1)


      -- marca
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE (s.brand = 'Chew' SAU s.brand = '') AND s.brand != '' AND s.`prod_type` = 1 AND s.text_es <>''

      LIMITĂ 1)

      -- nici unul
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE s.brand = '' AND s.product = '' AND s.`prod_type` = 1 AND s.text_es <>'')

      LIMITA 1
145075 bookletv3 localhost bookletv3 Sleep 0       
145076 bookletv3 localhost bookletv3 Sleep 0       
145077 bookletv3 localhost:33858 bookletv3 Sleep 0       
145078 bookletv3 localhost:33860 bookletv3 Sleep 0       
145079 bookletv3 localhost:33862 bookletv3 Sleep 0   
145080 bookletv3 localhost bookletv3 Interogare 0 Statistici -- (brand) product city
      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s

      INNER JOIN `wp_prod` c
      PE (
        (c.bestproductname = s.product și c.bestproductname != '')
        SAU c.produs = s.produs
      )
    
      WHERE c.product != '' AND c.product = 'briose' AND s.`city` = 'losangeles' AND s.`prod_type` = 1 AND s.text_es <>''
      ȘI c.locația în ("HY2112","HY1134","HY90428","HY10223") 

      LIMITĂ 1)


      -- orașul de marcă
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE s.brand = 'Chewy' AND s.brand != '' AND s.`city` = 'losangeles' AND s.`city` != '' AND s.`prod_type` = 1 AND s.text_es <> '')


      -- oraș
      UNIREA TOȚI

      (SELECTează textul text_es
      DIN `wp_prod_city_seo` s
      WHERE `city_slug` = 'losangeles' AND `city_slug` != ''
      LIMITĂ 1)


      -- produs
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s

      INNER JOIN `wp_prod` c
      PE (
        (c.bestproductname = s.product și c.bestproductname != '')
        SAU c.produs = s.produs
      )

      WHERE c.product = 'brioșă' AND c.product != '' AND s.`prod_type` = 1 AND s.text_es <>''
      ȘI c.locația în ("HY2112","HY1134","HY90428","HY10223","AR13821","AR90498","AR90613","BR92144","BR9239")

      LIMITĂ 1)


      -- marca
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE (s.brand = 'Chewy' SAU s.brand = '') AND s.brand != '' AND s.`prod_type` = 1 AND s.text_es <>''

      LIMITĂ 1)

      -- nici unul
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE s.brand = '' AND s.product = '' AND s.`prod_type` = 1 AND s.text_es <>'')

      LIMITA 1   
145081 bookletv3 localhost bookletv3 Interogare 0 Statistici -- (brand) product city
      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s

      INNER JOIN `wp_prod` c
      PE (
        (c.bestproductname = s.product și c.bestproductname != '')
        SAU c.produs = s.produs
      )
    
      WHERE c.product != '' AND c.product = 'briose' AND s.`city` = 'losangeles' AND s.`prod_type` = 1 AND s.text_es <>''
      ȘI c.locația în ("HY2112","HY10223") 

      LIMITĂ 1)


      -- orașul de marcă
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE s.brand = 'Chewy' AND s.brand != '' AND s.`city` = 'losangeles' AND s.`city` != '' AND s.`prod_type` = 1 AND s.text_es <> '')


      -- oraș
      UNIREA TOȚI

      (SELECTează textul text_es
      DIN `wp_prod_city_seo` s
      WHERE `city_slug` = 'losangeles' AND `city_slug` != ''
      LIMITĂ 1)


      -- produs
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s

      INNER JOIN `wp_prod` c
      PE (
        (c.bestproductname = s.product și c.bestproductname != '')
        SAU c.produs = s.produs
      )

      WHERE c.product = 'brioșă' AND c.product != '' AND s.`prod_type` = 1 AND s.text_es <>''
      ȘI c.locația în ("HY2112","HY1134")

      LIMITĂ 1)


      -- marca
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE (s.brand = 'Chewy' SAU s.brand = '') AND s.brand != '' AND s.`prod_type` = 1 AND s.text_es <>''

      LIMITĂ 1)

      -- nici unul
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE s.brand = '' AND s.product = '' AND s.`prod_type` = 1 AND s.text_es <>'')

      LIMITA 1
145082 bookletv3 localhost bookletv3 Interogare 0 Statistici -- (brand) product city
      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s

      INNER JOIN `wp_prod` c
      PE (
        (c.bestproductname = s.product și c.bestproductname != '')
        SAU c.produs = s.produs
      )
    
      WHERE c.product != '' AND c.product = 'tiramisu' AND s.`city` = 'losangeles' AND s.`prod_type` = 1 AND s.text_es <>''
      ȘI c.locația în ("BR92144","BR9239") 

      LIMITĂ 1)


      -- orașul de marcă
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE s.brand = 'Chewy' AND s.brand != '' AND s.`city` = 'losangeles' AND s.`city` != '' AND s.`prod_type` = 1 AND s.text_es <> '')


      -- oraș
      UNIREA TOȚI

      (SELECTează textul text_es
      DIN `wp_prod_city_seo` s
      WHERE `city_slug` = 'losangeles' AND `city_slug` != ''
      LIMITĂ 1)


      -- produs
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s

      INNER JOIN `wp_prod` c
      PE (
        (c.bestproductname = s.product și c.bestproductname != '')
        SAU c.produs = s.produs
      )

      WHERE c.product = 'tiramisu' AND c.product != '' AND s.`prod_type` = 1 AND s.text_es <>''
      ȘI c.locația în ("BR92144","BR9239")

      LIMITĂ 1)


      -- marca
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE (s.brand = 'Chew' SAU s.brand = '') AND s.brand != '' AND s.`prod_type` = 1 AND s.text_es <>''

      LIMITĂ 1)

      -- nici unul
      UNIREA TOȚI

      (SELECTează textul text_es
      DE LA `wp_prod_brandproduct_seo` s
      WHERE s.brand = '' AND s.product = '' AND s.`prod_type` = 1 AND s.text_es <>'')

      LIMITA 1

Vreun tutorial despre asta? Mi-e frică, pentru că nu sunt 100% sigur ce să fac.

drapel in
Prin repornirea demonului, abordați doar simptomele. Găsiți în schimb cauza. Dacă se întâmplă la anumite momente, cel mai probabil există o lucrare cron care rulează în acel moment. Verificați ce face și remediați sau optimizați-l.
drapel in
Dacă cauza sunt solicitările web, verificați jurnalele de acces. Poate că un crawler prost programat este cauza.
Patrick Mevzek avatar
drapel cn
„Acum, mă gândeam și m-am gândit că cel mai bun mod de a face serverul mai rapid ar fi să repornești procesul mysqld” De ce crezi așa de fapt? RAM ar trebui să fie folosit, ram gratuit este inutil, vezi https://www.linuxatemyram.com/ ; dacă folosește memorie, este pentru că memorează în cache o mulțime de lucruri care **îmbunătățiază** performanța, repornindu-l, pierdeți toate acestea și, de fapt, sistemul dumneavoastră va fi mai lent imediat după.
Patrick Mevzek avatar
drapel cn
„Serverul este întotdeauna lent în jurul orei 14:00 timp de 1 săptămână” Definiți lent. Ce este lent? Cât de mult din normal? Aveți monitorizare în loc pentru a păstra tendințele și a compara lucrurile sau este doar „subiectivă”. Ce înseamnă exact „în jurul orei 14:00 timp de 1 săptămână”? Aveți ceva ca lucrări cron care rulează la 14:00? V-ați uitat la fișierele de jurnal Apache pentru a vedea ce fel de activitate aveți în acel interval de timp? Monitorizați fișierele de jurnal și/sau comportamentul Apache? etc.
Patrick Mevzek avatar
drapel cn
— Vreun tutorial despre asta? Întrebarea dvs. este mult prea largă, întrebați doar cum să faceți o lucrare de administrator de sistem bazat pe câteva detalii. Ieșirea dvs. „de sus” arată că utilizați Apache, Mysql și PHP. Probleme pot apărea cu toate. Apoi afișați o interogare SQL mare. Poate asta e problema, poate nu. Cât de mare este DB? Aveți indici? Monitorizați lucrurile? Mult prea multe întrebări... Probabil că ar trebui să începeți prin a aborda persoanele responsabile cu aplicațiile PHP pe care le rulați pe acest server și să discutați cu ei.
Michael Hampton avatar
drapel cz
Între MySQL și PHP, serverul tău folosește aproximativ 100% din CPU. Acest lucru se întâmplă în mod clar de ceva timp, deoarece MySQL a acumulat o cantitate destul de mare de timp de rulare. Cea mai bună presupunere este că aplicația dvs. are interogări SQL neoptimizate sau prost optimizate care blochează sistemul. Rugați dezvoltatorii de aplicații să examineze jurnalul lent MySQL și să se ocupe de cei mai mari infractori.
Wilson Hauck avatar
drapel jp
Cerere de informații suplimentare. Există dispozitive SSD sau NVME pe serverul MySQL Host? Postați pe pastebin.com și distribuiți linkurile. Din rădăcina dvs. de conectare SSH, rezultă text de: B) AFIȚI STARE GLOBALĂ; după minim 24 de ore UPTIME C) AFIȘAȚI VARIABILELE GLOBALE; D) AFIȚI LISTA COMPLETĂ DE PROCES; E) STARE; nu AFIȚI STARE, doar STARE; G) ARAȚI STARE INNODB MOTOR; ȘI informații opționale foarte utile, dacă sunt disponibile includ - htop SAU top pentru majoritatea aplicațiilor active, ulimit -a pentru lista de limite, iostat -xm 5 3 pentru IOPS pe dispozitiv, pentru analiza de reglare a sarcinii de lucru a serverului pentru a oferi sugestii.
Wilson Hauck avatar
drapel jp
Este lung, dar scanați întregul conținut și apoi lucrați cu EXPLAIN SELECT ....-- https://dev.mysql.com/doc/refman/5.7/en/explain.html - pentru asistență semnificativă în a găsi de ce interogările dvs. sunt LENTE. Vei descoperi dacă citești cu mare atenție, ANALYZE TABLE tbl_name; va reîmprospăta statisticile tabelului și, uneori, acesta este singurul lucru necesar.
Wilson Hauck avatar
drapel jp
@goofball Vă rugăm să postați jurnalul de interogări lente care acoperă de la 1:30 până la 14:30 timp de două zile lucrătoare normale pentru analiză, vă rugăm.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.