Puncte:0

CPU MySQL cu sarcină mare

drapel ng

Am o problemă cu MariaDB, când conectează analytics ~ 200 mysql a început să apară cu o încărcare de 132% și a împins procesorul principal la aproximativ 40%. Fă site-ul extrem de lent Folosesc centos 7 (8 GB ram, 2 nuclee, NVME SSD + Nginx + php-fpm)

[client]
#parola = parola_dvs
port = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]
wait_timeout=300
interactive_timeout = 300
binlog_cache_size = 128K
thread_stack = 256K
join_buffer_size = 2048K
query_cache_type = 1
max_heap_table_size = 512M
port = 3306
socket = /var/lib/mysql/mysql.sock
datadir = /var/lib/mysql
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-blocare-exterior
key_buffer_size = 384M
max_allowed_packet = 100G
table_open_cache = 384
sort_buffer_size = 1024K
net_buffer_length = 4K
read_buffer_size = 1024K
read_rnd_buffer_size = 768K
myisam_sort_buffer_size = 16M
thread_cache_size = 128
query_cache_size = 0
query_cache_type = 0
query_cache_limit = 8M
tmp_table_size = 512M
#sql-mode=NO_ENGINE_SUBSTITUTION

#skip-name-resolve
max_connections = 500
max_connect_errors = 100
limita_fișiere_deschise = 65535

log-bin=mysql-bin
binlog_format=mixt
server-id = 1
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/home/abc.com.com/logs/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=activat


innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql
innodb_buffer_pool_size = 1G
innodb_log_file_size = 128M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 2
innodb_write_io_threads = 2
innodb_buffer_pool_instances = 1


[mysqldump]
rapid
max_allowed_packet = 500M

[mysql]
fără reluare automată

[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 1M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
timeout interactiv

Și tuning prin mysqltuner

-------- Statistici motor de stocare ---------------------------------------- --------------------------
[--] Stare: +ARHIVE +Aria +BLACKHOLE +CSV +FEDERATED +InnoDB +MEMORY +MRG_MyISAM +MyISAM +PERFORMANCE_SCHEMA
[--] Date în tabelele InnoDB: 48,8 M (Tabele: 21)
[OK] Total tabele fragmentate: 0

-------- Măsuri de performanță a analizei --------------------------------------- -----------------------
[--] innodb_stats_on_metadata: OFF
[OK] Nu există actualizări ale statisticilor în timpul interogării INFORMATION_SCHEMA.

-------- Recomandări de securitate ---------------------------------------- --------------------------
[OK] Nu există conturi anonime pentru niciun utilizator al bazei de date
[OK] Toți utilizatorii bazei de date au parole atribuite
[!!] Nu există o listă de fișiere cu parole de bază!

-------- Recomandări de securitate CVE --------------------------------------- -----------------------
[--] Omis din cauza opțiunii --cvefile nedefinită

-------- Măsuri de performanță ---------------------------------------- --------------------------------
[--] Până la: 8m 0s (85K q [178.621 qps], 6K conexiune, TX: 41M, RX: 7M)
[--] Citiri / Scrieri: 98% / 2%
[--] Înregistrarea binară este activată (MOD GTID: ACTIVAT)
[--] Memorie fizică: 7.6G
[--] Memoria MySQL maximă: 504.5G
[--] Altă memorie de proces: 0B
[--] Buffer-uri totale: 2,0G la nivel global + 1,0G per fir (maximum 500 fire)
[--] P_S Utilizare maximă a memoriei: 0B
[--] Galera GCache Utilizare maximă a memoriei: 0B
[!!] Utilizarea maximă de memorie atinsă: 95,5G (1250,25% din RAM instalată)
[!!] Utilizare maximă posibilă a memoriei: 504,5G (6604,94% din RAM instalată)
[!!] Utilizarea totală posibilă a memoriei cu alt proces a depășit memoria
[OK] Interogări lente: 0% (0/85K)
[OK] Cea mai mare utilizare a conexiunilor disponibile: 18% (93/500)
[OK] Conexiuni întrerupte: 0,04% (3/6727)
[!!] rezoluția numelui este activă: se face o rezoluție inversă a numelui pentru fiecare conexiune nouă și poate reduce performanța
[OK] Cache-ul de interogări este dezactivat implicit din cauza conflictului de mutex pe mașinile multiprocesoare.
[OK] Sortări care necesită tabele temporare: 0% (0 sortări temporale / 700 sortări)
[OK] Nicio unire fără indexuri
[!!] Tabele temporare create pe disc: 88% (5K pe disc / 6K total)
[OK] Rata de accesare a memoriei cache a firelor: 98% (93 create / 6K conexiuni)
[OK] Rata de accesare a memoriei cache a tabelului: 215% (114 deschise / 53 deschise)
[OK] table_definition_cache(400) este mai mare decât numărul de tabele(261)
[OK] Limită de fișiere deschise utilizată: 0% (29/65K)
[OK] Blocări de masă achiziționate imediat: 100% (65K imediat / 65K blocări)
[OK] Acces la memoria cache Binlog: 100,00% (1144 memorie / 1144 total)

-------- Schema de performanță ---------------------------------------- ---------------------------------
[--] Schema de performanță este dezactivată.
[--] Memoria folosită de P_S: 0B

-------- Măsuri ThreadPool ---------------------------------------- ---------------------------------
[--] Statul ThreadPool este activat.
[--] Dimensiunea grupului de fire: 2 fire(i).
[--] Utilizarea valorii implicite este suficient de bună pentru versiunea dvs. (10.0.38-MariaDB)

-------- Măsuri MyISAM ---------------------------------------- -------------------------------------
[!!] Buffer de cheie folosit: 18,7% (75M folosit / 402M cache)
[OK] Dimensiunea tamponului de cheie / totalul indicilor MyISAM: 384.0M/123.0K
[OK] Rata de accesare a tamponului de citire a tastei: 99,7% (355 stocate în cache / 1 citire)
[OK] Rata de accesare a tamponului cheii de scriere: 100,0% (96 în cache / 96 scrieri)

-------- InnoDB Metrics ---------------------------------------- -------------------------------------
[--] InnoDB este activat.
[--] Concurența firelor InnoDB: 0
[OK] Fișierul InnoDB per tabel este activat
[OK] Pool de buffer InnoDB / dimensiunea datelor: 1.0G/48.8M
[OK] Raport dimensiunea fișierului jurnal InnoDB / dimensiunea pool-ului buffer InnoDB: 128.0M * 2/1.0G ar trebui să fie egal cu 25%
[OK] Instanțele pool-ului de buffer InnoDB: 1
[--] InnoDB Buffer Pool Chunk Size nu este utilizată sau definită în versiunea dvs
[OK] Eficiența tamponului de citire InnoDB: 100,00% (422760044 accesări/ 422761190 în total)
[!!] Eficiența jurnalului de scriere InnoDB: 46,23% (484 de accesări/ 1047 în total)
[OK] Jurnalul InnoDB așteaptă: 0,00% (0 așteptări / 1531 scrieri)

-------- Aria Metrics ---------------------------------------- --------------------------------------
[--] Motorul de stocare Aria este activat.
[OK] Dimensiunea cache a paginii Aria / totalul indicilor Aria: 128.0M/0B
[OK] Rata de accesare Aria pagecache: 98,6% (146 stocate în cache / 2 citiri)

-------- Măsuri TokuDB ---------------------------------------- -------------------------------------
[--] TokuDB este dezactivat.

-------- XtraDB Metrics ---------------------------------------- -------------------------------------
[--] XtraDB este dezactivat.

-------- Galera Metrics ---------------------------------------- -------------------------------------
[--] Galera este dezactivată.

-------- Măsuri de replicare ---------------------------------------- --------------------------------
[--] Galera Replicare sincronă: NU
[--] Niciun sclav(i) de replicare pentru acest server.
[--] Format binlog: MIXED
[--] Suport XA activat: ACTIVAT
[--] Replicare semi-sincronă Master: Neactivat
[--] Replicare semi-sincronă Slave: Neactivat
[--] Acesta este un server independent

-------- Recomandări ----------------------------------------- -----------------------------------
Recomandari generale:
    Controlați liniile de avertizare în fișierul /var/lib/mysql/dichvu.err
    Controlați liniile de eroare în fișierul /var/lib/mysql/dichvu.err
    MySQL a fost pornit în ultimele 24 de ore - recomandările pot fi inexacte
    Reduceți amprenta totală de memorie MySQL pentru stabilitatea sistemului
    Dedicați acest server bazei de date pentru cea mai înaltă performanță.
    Configurați-vă conturile numai cu ip sau subrețele, apoi actualizați configurația cu skip-name-resolve=1
    Dimensiunea temporară a tabelului este deja mare - reduceți dimensiunea setului de rezultate
    Reduceți interogările SELECT DISTINCT fără clauze LIMIT
    Schema de performanță ar trebui activată pentru o diagnosticare mai bună
    Schema de performanță nu ar trebui să fie activată pentru MariaDB 10.0 din cauza problemelor de performanță
Variabile de ajustat:
  *** Utilizarea maximă a memoriei MySQL este periculos de mare ***
  *** Adăugați RAM înainte de a crește variabilele bufferului MySQL ***
    performance_schema = ON activat PFS
    performance_schema = OFF dezactivați PFS

Va rog sa-mi dati un sfat in acest caz

Liber -m când procesorul este încărcat ridicat

              total folosit gratuit partajat buff/cache disponibil
Mem: 7821 1421 4755 431 1644 5715
Schimbă: 1023 0 1023
Puncte:0
drapel ua

tmp_table_size = 512M -- Mult prea mare; limitează-l la aproximativ 1% din RAM. (Acest lucru nu va afecta prea mult CPU, dar va ajuta la evitarea schimbului.)

CPU mare înseamnă interogări prost indexate sau prost formulate. Folosește slowlog. Mai mult: http://mysql.rjweb.org/doc.php/mysql_analysis#slow_queries_and_slowlog

Apoi postați pe stackoverflow.com; există mai mulți oameni specifici MySQL acolo.

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.