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.