Server Optimization c php
A probléma lényege abban rejlik, hogy a szerver fut egy online játék, PHP-ben íródott.
Olyan kedves és nagy teljesítményű szerver, és nem írt ügyetlen kezek, de a szerver alig lélegzik, egy kicsit, és tényleg hazudnak. Lehetetlen dolgozni, még konzol fékek.
Nézett terhelés, nem borul átlagos terhelés: 10,54, 10,28, 9,96
Azt hittem, hogyan lehet megjavítani. Működésének optimalizálására ezen a honlapon, meg kell érteni, hogy a php.
Az a tény, hogy a php nem csak egy script utasításokat egy adott programot. Ennek lényege abban rejlik, hogy minden script megy keresztül több szakaszban visszatérése előtt eredmény:
- A forgatókönyv lefordították bájtkódot
- teljesített
- O szerver eredmény
A második és a harmadik persze, de az első ismerős programozók bonyolultabb nyelvet, mint a php. Bájtkód már egy sor utasítást, minden ekvivalens egy vagy több szerelési utasításokat. Ez a kód fut a tízszer gyorsabb, mint egy script, hogy fut a program. Csak egy probléma lefordítani a forgatókönyvet a byte-kód fogyaszt sok erőforrást egyetlen forgatókönyv, természetesen ez képtelenség, de ha van több és több száz a szerverrel való, hogy a szerver erőforrások már akkor kezdik használni a nemerenoe mennyiségben.
Van egy módja. Annak érdekében, hogy ne pazarolja erőforrásait folyamatosan fordítására a forgatókönyvet a byte-kód, akkor a gyakran használt szkriptek már olyan állapotban, hogy jelentősen csökkenti a szerver erőforrás-felhasználás.
Ehhez sok program, úgy döntöttem, hogy egy ilyen - a eAccelerator.
Ez egy kényelmes, könnyen konfigurálható modul php.
telepítése eAccelerator
És így a telepítés megkezdéséhez. Kapcsolódni a szerverhez SSH-n keresztül is, vagy ha van egy közvetlen hozzáférést, a konzolra.
Azt hozzon létre egy mappát a / usr / local / eAccelerator. amelyben dolgozunk, és adja át
Lépj be a könyvtárba eaccelerator-0.9.5.3:
Opció -A-eaccelerator megosztott memória van szükség, hogy képes legyen használni az API eAccelerator. A teljes lista a lehetőségeket.
Valójában most a modul készen áll és telepítve van a mappa / usr / lib / php / modules /. ahol az összes modul telepítve php
Most itt az ideje, hogy csatlakoztassa a modult, és állítsa be, mint most.
Files csatlakoztatásához php modul php.d. mappa Ha a letöltés Apache olvas minden felhúzókötelek kiterjesztésű ini ezt a mappát.
Leírás Az alapvető konfigurációs attribútumok eAccelerator
Gyorsítótár mérete megosztott memória meghatározott megabájt.
Directory merevlemezen. eAccelerator tárolja a megadott könyvtár bináris ábrázolása a kód az ülés és egyéb adatokat.
Ez az opció be van kapcsolva, és ki eAccelerator. Az érték 1 - on, 0 - off.
Ez jelzi az időt másodpercben, amely után a hosszú kód nem használják el kell hagyni a megosztott memóriát meghaladó lefoglalt memória.
Alapértelmezés szerint ez az opció le van tiltva, javasoljuk az érték 60-300 nagyszámú fájlok és 900-1800 kis számú fájlt.
Amikor eAccelerator nincs elegendő szabad memória, akkor megpróbálja törölni a régi adatokat, ha az előző kísérlet történt több „shm_prune_period” másodperccel ezelőtt. Az alapértelmezett érték „0”, amelyben eAccelerator nem próbálja meg eltávolítani a régi adatokat a memóriából.
A paraméterek meg a rendelkezésre álló módja van a eAccelerator cache.
Lehetséges értékek:
- shm_and_disk - cache adatokat osztott memória, és a lemezen (ez az alapértelmezés);
- shm - cache adatokat osztott memóriában vagy lemezen, ha osztott memória vagy adat mérete nagyobb, mint „eaccelerator.shm_max”;
- shm_only - cache adatokat osztott memóriát;
- disk_only - cache adatok a lemezen;
- none Ne gyorsítótár az adatokat.
Most hozzon létre egy mappát a cache, amit az irányelvben megnevezett eaccelerator.cache_dir - a / tmp / eaccelerator, és adja neki a jogot, hogy rögzítse
Tulajdonképpen beállítás befejeződött, jelenleg Apache újraindításához:
következtetés
Tulajdonképpen mi ez adta. Igazából nem igazán számítottam ilyen eredményre, de a szerver terhelése csökken tízszeres.
load average: 0.91, 0.88, 0.72