Gyorsítsd fel a mysql betétet

Egy kis elmélet. UNIX operációs rendszerekben a fájlrendszer fizikailag a RAM-ban található partíció van, de lehetővé teszi a hagyományos lemezmeghajtókkal való együttműködést. A merevlemez-blokk elérési sebessége körülbelül 1 ms. A memória elérésének sebessége 0,001 ms. Próbáljuk meg alkalmazni ezt a MySQL adatbázisban, hogy a legtöbbet hozhassuk ki a beszúrási / frissítési műveletekből.

Először ellenőrizze a véletlenszerű felvétel sebességét a merevlemezen:

Ugyanez a megosztott memória (/ run / shm vagy / dev / shm):

Hasonlítsa össze az eredményeket, és nézze meg, hogy az 1000 fájl létrehozási ideje 574-szer csökkent. Rendben van. Ezért számolni kell az adatbázisban az írási sebesség növekedésével.

1) Ellenőrizze a méretet és a szabad helyet a / futtatáshoz / shm

2) Ellenőrizze, hogy mennyi helyet foglal el az adatbázis

Ez azt jelenti, hogy át tudjuk adni az adatbázist a / run / shm fájlra

3) Stop MySQL:

4) Könyvtárak létrehozása és az adatok másolása:

5) Konfigurációs szabály:

6) AppArmor szabály:

7) Futtasd a MySQL-t

* Ha a szolgáltatás nem indul el - lásd: /var/log/mysql/error.log

Most a legérdekesebb. Ellenőrizzük, mi történt.

A teszt a merevlemezen, amit előre tettem, így azonnal hozom az eredményeket.

A frissítést véletlenszerű intervallumon [1 000 000 - 9 000 000] végeztük az elsődleges kulcs (id) esetében. A szélső értékeket elvetik, így a motor "bemerít" az asztal belsejében.

Jelentős sebességnövekedés az INSERT-en és még inkább az UPDATE-en.
Kevés a behelyezés miatt, mert A MySQL index-újratervezést és adatszervezést végez.

A MySQL konfigurációban:
innodb_buffer_pool_size = 1024M
Ha kevesebbet teszel, akkor a merevlemez UPDATE sebessége természetesen esik.

innodb_flush_log_at_trx_commit = 2
Mint ilyen, itt nincs tranzakció, és ez nem befolyásolja a sebességet. Mindazonáltal ezt az értéket 2-re hagyjuk.

Ilyen rendszerrel kritikusan fontos bináris napló és rendszeres biztonsági másolat készítése. A felvételi költségek lehető leggyorsabb csökkentése érdekében csak bináris különálló merevlemezt adhatunk meg. A szekvenciális írási sebesség a merevlemezen sokkal magasabb, mint a véletlen sebesség. Ezért teszünk egy extra merevlemez, csatoljuk, például a / mnt / hddbin /, és adja meg a my.ini utat a bináris log: log_bin = /mnt/hddbin/mysql-bin.log

Ne feledkezzen meg a parancsfájlok újbóli elindításáról és leállításáról. Nézze meg az / etc / rc * mappát. Általában ez 0 (rendszer leállítás) és 6 (újraindítás). A szkriptek hozzáadásáról szóló kézikönyv könnyen megtalálható a Google-ban. A szkript leállítja a MySQL-t, mielőtt újraindítja vagy leállítja a rendszert, majd másolja a / run / shm / mysql-lib mappát a merevlemezre. A rendszer bekapcsolt állapotában a szkript visszaállítja az adatokat a merevlemezről a / run / shm / mysql-lib könyvtárba, majd elindítja a MySQL-t.

Egyszerű bash vagy perl parancsfájl hozzáadása a szabad memória megfigyeléséhez a / run / shm alatt. A Zabbixet csatlakoztathatja.

Kapcsolódó cikkek