Puncte:0

Monitorizarea utilizării octetilor pentru pool-urile mari de buffer MySQL InnoDB?

drapel jp
Vjz

Încerc să monitorizez numărul total de octeți utilizați într-un pool de buffer MySQL 5.7 InnoDB, care poate ajunge până la 100 GB, folosind Innodb_buffer_pool_bytes_data dar se pare că această variabilă de stare este un număr întreg nesemnat de 32 de biți când îl interog, așa că depășește când octeții trec de 2^32.

Pare a fi un întreg lung nesemnat intern în MySQL (https://github.com/mysql/mysql-server/blob/5.7/storage/innobase/include/srv0srv.h#L892)?

La început am crezut că overflow-ul era stiva mea de monitorizare (Telegraf+InfluxDB+Grafana)-

Graficul Grafana care arată Interger Overflow de-a lungul timpului, Innodb_buffer_pool_bytes_data fiind în prezent de 490 MB

-dar interogarea directă a MySQL pare să dezvăluie că este din MySQL și nu în soluția mea de monitorizare:

AFIȚI STARE GLOBALĂ WHERE Variable_name = "Innodb_buffer_pool_bytes_data"

- randamente 490371968 pentru aproximativ același eșantion de marcaj temporal văzut în Grafana de mai sus.

Cum pot monitoriza cu exactitate valoarea reală?

Vjz avatar
drapel jp
Vjz
`ARAȚI VARIABILELE GLOBALE WHERE Variable_name = 'innodb_buffer_pool_size'` 107374182400
drapel ua
Poate aveți o compilație pe 32 de biți fie MySQL, fie OS sau Grafana?
drapel ua
Cât RAM ai?
drapel ua
Care este valoarea lui `SHOW VARIABLES LIKE 'innodb_buffer_pool_size';`? Poate este vorba despre 500M?
Vjz avatar
drapel jp
Vjz
`ARAȚI VARIABILELE CA 'version_compile_os'` version_compile_os este Win64 `ARAȚI VARIABILELE GLOBALE WHERE Variable_name = 'innodb_buffer_pool_size'` innodb_buffer_pool_size este de 107374182400 de octeți (~107 GB) Serverul are 130 GB RAM. Serverul nu a fost repornit la acea marca temporală. Nicio mențiune despre reporniri în fișierul jurnal MySQL. Folosind grafana-8.1.5.windows-amd64. Chiar dacă Grafana era pe 32 de biți, chiar și interogarea pentru `Innodb_buffer_pool_bytes_data` direct cu un client MySQL dezvăluie problema, ceea ce înseamnă că nu poate fi Grafana. @Rick James
drapel ua
Monitorizați manual `SHOW STATUS LIKE 'Innodb_buffer_pool_bytes_data';` pentru a obține mai multe informații despre ceea ce se întâmplă. (Bănuiesc că nu știu răspunsul.)
Puncte:0
drapel ua

Acel grafic arată ca MySQL repornit (sau serverul repornit) la aproximativ 12:16. Buffer_pool va crește până când ajunge innodb_buffer_pool_size.

Dacă nu aveți suficientă memorie RAM, pentru buffer_pool (plus alte lucruri), atunci se poate bloca. Această setare ar trebui setată la aproximativ 70% din RAM disponibilă.

Vjz avatar
drapel jp
Vjz
Serverul nu a fost repornit la acea marca temporală. Nicio mențiune despre reporniri în fișierul jurnal MySQL. Vezi celelalte comentarii ale mele la întrebare.

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.