Puncte:0

Cum să reduceți scrierile pe disc MySQL/InnoDB

drapel gb

Testez o aplicație care folosește MySQL. Blocajul sunt discurile MySQL (separate pentru datele principale și jurnalul de refacere), care sunt scrise destul de mult. deasupra indică faptul că utilizarea lor este aproape de 100%. Dacă dezactivez jurnalele de refacere (ALTER INSTANCE DISABLE INNODB REDO_LOG), atunci utilizarea discului devine neglijabilă (2% pentru discul principal și zero – în mod natural – pentru discul redo log).

Trebuie să reduc utilizarea discului (nu trebuie să fie neglijabil, dar trebuie să fie considerabil mai puțin) fără a dezactiva jurnalele de refacere. Este în regulă să pierzi câteva secunde (chiar și minute) de date în cazul unui accident. Am incercat asta:

innodb_flush_method = O_DSYNC
innodb_flush_log_at_trx_commit = 0
innodb_flush_log_at_timeout = 5

dar nu vad nicio diferenta.

Mai pot face ceva?

Acesta este MySQL 8.0.29 pe Ubuntu 20.04.

(Notă: aplicația este Nextcloud și se pare că face multe solicitări de scriere a bazei de date.)

Wilson Hauck avatar
drapel jp
Există mai multe GV de schimbat pentru a reduce frecvența de scriere. Cerere informatii suplimentare, va rog. Dimensiunea RAM, # nuclee, orice dispozitiv 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: A) SELECTARE COUNT(*) FROM information_schema.tables; 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; pentru analiza de reglare a sarcinii de lucru a serverului pentru a oferi sugestii.
Wilson Hauck avatar
drapel jp
De ce partener Nextcloud sunteți găzduit?
drapel ua
Putem explica utilizarea discului pentru anumite interogări. De asemenea, dacă „testele de stres” nu reflectă cererea dvs., concluziile din acestea pot induce în eroare.
djdomi avatar
drapel za
Aș sugera să duceți întrebarea la dba în hotărâre
Puncte:1
drapel gb

Mi-am dat seama că aceasta a fost mai mult o problemă Nextcloud decât o problemă MySQL.

Prin examinarea Innodb_os_log_scris parte din AFIȚI STAREA GLOBALĂIeșirea lui, am verificat că scria 1M/s sau mai mult în jurnalele de refacere. Se pare că cantitatea mare de date a fost cea care a cauzat problema pe discul meu lent, mai degrabă decât detaliile despre când și cum au fost sincronizate.

Prin setare general_log='ON' și examinând întrebările, mi-am dat seama, în cele din urmă, că este o Bug Nextcloud, unde autentificarea cauzează prea multe interogări.După soluția de trunchiere a fișierului oc_authtoken tabel, rata de scriere în jurnalele de refacere a scăzut la mai puțin de o zecime din ceea ce a fost.

Wilson Hauck avatar
drapel jp
Excelent, descoperire și acțiune corectivă. Următorul pas ar fi furnizarea de informații suplimentare solicitate la 31 mai 2022 la ora 15:22 pentru a permite analiza volumului de lucru și unele sugestii pentru a reduce activitatea de citire/scriere vor fi postate ca răspuns.

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.