Csípés mysql, mindent

Joomla, mint a legtöbb PHP-alapú alkalmazások, megvalósítása jelentős terhelést MySQL, mellyel az adatok tárolására. A kereső a jobb teljesítmény, sok felhasználó kezdődik futó lekérdezések, hogy a sebesség indexelés. Gyakran előfordul, hogy sok az elégedettség a stop. De ha van egy dedikált szerver (vagy virtuális), akkor kap egy szerencsés szünetet MySQL beállítások tekintetében a terhelést.

Mielőtt elkezdené ..

Az első dolog - egy biztonsági másolatot a teljes szerver. Különösen - és my.cnf MySQL adatbázisban. Kezdetben meg kell találni arra, hogy mennyi RAM használhatja. De most már egyáltalán nem törődnek a RAM mennyisége a szerveren. Úgy értem, a szabad memória mennyisége. Nyilván úgy gondolja, hogy a több RAM-ot, annál inkább szabad marad (de ez nem mindig van így. Van egy szerver, 2 GB RAM-mal, de a szabad csak mintegy 2 megabájt ...). A legegyszerűbb módja, hogy a szabad memória futtatni egy egyszerű paranccsal «szabad -m». Lesz egy csomó hasznos információt. De mi érdekli csak a második sorban (kezdve a «Mem:») és a negyedik oszlop ( «szabad»). Ez az, ahol látjuk a száma megabájt RAM-mal, ami ingyenes.

Most nézd meg, hogy hány megabájt RAM-mal van elérhető. Ne feledje, hogy (egy nagyon hasznos kis később). Most ezt a parancsot „top -d 1 2 -n -u mysql” (ahelyett, mysql, adja meg a felhasználónév, amely alatt fut a MySQL szerver).

Mi érdekli az érték az oszlop „VIRT”, amely jelzi a használt memória mennyiségét a MySQL által ezen a ponton ... Add, hogy a szabad memória, a korábban említett, és mi lesz vele dolgozni ...

Ellenőrizze ezeket az értékeket időről időre. Később érdemes tenni valamit a lapozófájl.

Ellenőrizze a my.cnf fájlt

FONTOS! Nem azonnal BACKUP my.cnf fájlt, mielőtt bármilyen változtatást. Megtalálható a my.cnf (Linux) a / stb Mielőtt elkezdjük megváltoztatni semmit, tudnunk kell, hogy hol kezdjem. Az alábbi egy konfigurációs fájl az alapértelmezett beállításokkal. Tisztelettel némileg eltérhetnek egymástól, de attól még nem lesz a kiindulási pont.

Megjegyezzük, hogy az alábbi változókat is (ha van, ez rendben van. Akkor csak törölni őket, de ne távolítsa el semmit, ami kapcsolatos a vegyületek időtúllépés vagy open_files_limit). És így, ne felejtsük el, hogy mennyi memóriát? Most ezt a számot alább. Adjuk hozzá a megfelelő paramétereket a my.cnf fájl fejezetben [mysqld] (százalékok cserélje egyenértékű érték memória, a fentiekben tárgyalt).

Felhívjuk figyelmét, hogy csak 86% -át szabad memória, valamint körülbelül 10 megabájt. Ez azért fontos, mert nem szeretnénk használni sok memóriát. Most indítsa újra a MySQL és hagyja járni néhány nappal a normális (vagy ha ez a teszt szerver szimulálja a nagy terhelés a hálózati forgalom). Szintén információt gyűjtsön az újrafelhasználás RAM.

A vicces.

Az első rész - a kiszolgáló hálózati forgalmat. Itt a kérelmek száma részletesen küldeni a szerver (és a csatlakozók számát). A következő szakasz - kérés statisztika. Ez a szokásos listát a számát típusú lekérdezések. Következő már több érdekes számunkra. Három oszlop ( „változó”, „érték” és a „leírás”). Felhívjuk figyelmét, hogy minden rossz és helytelen értékek piros. Ez nagyon fontos.

Hogyan állapítható meg, hogy mit kell tenni.

Ezt megelőzően, dolgozunk szerver beállításokat és figyelmen kívül hagyja a következő változókat (hatékonyságával kapcsolatos kérdések): slow_queries összes változó előtaggal handler_ és az összes változó kezdődő select_. Kezdjük kulcsgyorsítótárnál ( «készpénz Index"). Ez a rész majdnem az alján. Indikátor Key_read s paraméter legyen sokkal kevesebb (mintegy 1000-szer), mint Key_read_requests. Ha nem, akkor meg kell növelni key_buffer_size. Kezdjük egy értékű százalékában 25%, és hogyan működik mindez. Vagy ha a key_buffer_size nagyon nagy, viszonylag key_blocks_ használatlan és key_blocks_used. Akkor több kell lemezterület (további 10%). Emlékezz, ne ezt az értéket túl nagy, a kockázatok a szervert, hogy kezdje meg a swap file. Indítsa újra a MySQL még túl korai, meg kell látni néhány területen.

A következő nagy terület - Asztalok ( «táblázatok"). Összehasonlítás változók és Open_tables Opened_tables. Ha az értékek gyakorlatilag megegyeznek, minden rendben van. Ha opened_tables egy sokkal hosszabb, mint open_table (10-szor), akkor be kell állítania a változó értékét table_cache. Ne felejtsük el, hogy növeljük az értéket, így növeli a 25% -ot. Akkor nézd meg a Query Cach e ( «A lekérdezés cache"). Megjegyzés: a Qcache_free_memory. Ott kell lennie a nagy értékű (néhány megabájt). Továbbá, Qcache_lowmem_prunes értéket legközelebb kell lennie a 0 vagy általában egyenlő 0. ez a növekedés query_cache_size. A következő lépés az, hogy ellenőrizze az értéket created_tmp_files. Ha ez nem kicsi, akkor növelje tmp_table_size.

ellenőrizze

Most indítsa újra a kiszolgálót. Járassa pár napos (rendszeresen ellenőrzi a memória terhelés az ingyenes -m paranccsal), majd újra járni a beállításokat. Ha minden itt leírt elérkezett, elérték a! És csak akkor kell időről időre, hogy nézd meg a változások szerver terhelés és az adatbázisok.

Kapcsolódó cikkek