Lassú betöltés weboldalak, és hogyan kell harcolni, tárhely felülvizsgálat - az epicentruma az orosz nyelvű host
Valószínűleg minden webfejlesztő legalább néha elégedetlen a sebesség, amellyel megnyitja az oldalt. Keretében megosztott tárhely, több fő oka a lassú betöltés helyén (a főoldalon, vagy bármely külön partíció). Néhány ilyen okból megbeszéljük ezt a cikket.
Adatátvitel a kapcsolt vonalon
Ha az információk átadását modem próbál kiválasztani az optimális sebességet, az adatok ezen a ponton nem kerül átvitelre, és az oldal betöltési ideje is késik akár néhány tíz másodpercig.
Az adatátvitel külön sorban
Úgy tűnik, hogy abban az esetben, sebességű kapcsolat a dedikált vonalon ilyen problémákat terhelés el kell tűnnie, de kiderült, hogy ott is megvan a saját árnyalatokat. Amelyek közül az egyik - egy kis csatorna kapacitása. összekötő hálózat, amely a szerver maga a számítógép, amely kérte a dokumentum tőle.
Tipikusan ilyen probléma előfordulhat esetén az átmenet az egyik hálózatban használja a biztonsági kapcsolat, amely általában kisebb kapacitású, mint az elsődleges csatornán. Továbbá, késedelem adatátvitel akkor jelentkezik, ha instabil működését leírt csatornák - például hibás működése miatt a szoftver és hardver.
Az útvonal megtekintése és késleltetés a csomagok különböző részein a kliens számítógépen a szerverre, ahol a telephely található, akkor a közüzemi traceroute (a * nix rendszerek) vagy a tracert (Windows), ami azt mutatja, a gépek, amelyeken keresztül a csomagokat a helyi számítógép az oldalon.
Megjegyzendő azonban, hogy a megfelelő eszköz működése függ az áramkörök a hálózat, ezért bölcs dolog, hogy konzultáljon a rendszergazdával, ha a nyom nem nyújt teljes listája házigazdák, vagy nem működik.
ADSL adatátviteli
A probléma adatok letöltésére csatorna is előfordulhat a kiválasztott sorok szerint működő ADSL technológia. Rövidítése, ADSL (Asymmetric Digital Subscriber Line) jelentése „aszimmetrikus digitális előfizetői vonal”, ami alátámasztja az eredetileg rejlő technológia ez a különbség az adatátviteli sebességet forgalmi irányban, hogy az előfizető és az előfizetői. Jellemzően az átviteli sebesség az előfizető alacsonyabb, mint a sebesség az előfizető. Nincs ezzel semmi baj, mert a legtöbb felhasználó csatlakozik ADSL-en keresztül, a sebesség csak meg kell, hogy gyorsan feltölteni az adatokat a számítógép az interneten.
Ebben az esetben az átadása szolgáltatásra vonatkozó információkat (pl megerősítése elfogadásának adatokat) az előfizető a forrás forgalmat generál, ami egy kis töredéke a teljes sávszélesség, annál nagyobb része a forgalom ebben az esetben megy az előfizetőnek. Ha abban az időben a fájl vagy oldal letöltése a szükséges információkat az előfizető megszűnik folyni a forrás, az utóbbi általában egy ideig megáll az adatoknak az ügyfél. Ez akkor fordulhat elő, ha a csatorna teljesen megterhelt abba az irányba, hogy az előfizető a szerver.
Dinamikus oldalak, scriptek
Most gondolja meg, lassú berakodás helyén, amelyek közvetlenül kapcsolódnak a szerver oldalon.
Nagyon gyakran alacsony letöltési sebesség miatt lassú a szkript, amely egy dinamikus oldalak tartalmát. Mint általában, ennek oka, hogy korlátozzák a források felhasználásának keretében nyújtott díjcsomag. Más szóval, a felhasználó gazda nem tudja használni az összes erőforrás, a fizikai gép, amely saját honlapján. Ezt a mechanizmust, különféle eszközökkel valósíthatók meg, felhasználva szinte az összes hosting cégek annak érdekében, hogy megakadályozzák torlódás vagy kudarc az egész fizikai gépen, mert a helytelenül írt egyéni felhasználói szkripteket.
Más szóval, minden egyes felhasználó eljárás áll rendelkezésére csak egy része a források egy fizikai gép: Part of RAM, egy bizonyos mennyiségű CPU idő, stb
Az alábbi tényezők befolyásolhatják az alacsony fordulatszám a script:
Tegyük fel, hogy a forgatókönyvet kell csatlakoztatni egy külső fogadó és kap néhány adatot a http. Minél hosszabb az adatokat továbbítják egy külső forrásból a forgatókönyvet, annál tovább lesz végrehajtva.
Gyakorlatilag bármilyen programozási nyelv (Perl, PHP) szinte mindig működik nyilvánvalóan lassabb, mint a program spompilirovannaya és optimalizált közvetlenül útmutatásai alapján a processzor, ami akkor fog futni.
Pontosabban, abban az esetben a munka PHP nagyrészt megoldja a problémát a PHP-optimalizálók (például Zend Optimizer vagy Turck MMCache). A fő feladat -, hogy optimalizálja és felgyorsítja a végrehajtás a PHP-script (script összeállítása a bytecode és cache eredménye későbbi vizsgálat pontosan a lefordított verzió).
Példa a PHP-optimalizáló Turck MMCache
Vegyünk egy diagnosztikai eljárás segítségével Turck MMCache.
Úgy véljük Turck MMCache csak példaképpen. Megtudhatja, ha a tárhely, vagy hogy a PHP-optimalizáló, forduljon a műszaki támogatást a tárhely szolgáltató, vagy ellenőrizze a kimeneti phpinfo () függvényt.
Hozzon létre egy www-space php-fájl a következő sorokat:
Hívhatjuk ezt a szkriptet a böngészőt, akkor megjelenik egy táblázat, amely információkat tartalmaz a Turck MMCache:
A második táblázat egy lista az összes szkriptet kivégezték, és paramétereket, mint például a méret (Size) az egyes script, és számos sikeres letöltés (Hits) a memóriából Turck MMCache. Ha Hits beállítás értéke 0, az azt jelenti, hogy a Turck MMCache képtelen cache a forgatókönyvet.
Méretének meghatározására a feltöltött fájlok végrehajtani az egyik forgatókönyv, akkor először törölje a memóriát Turck MMCache már cache szkripteket. Ehhez nyomja meg a Törlés gombot, és ellenőrizze, hogy a gyorsítótár ürítése - a listában scriptek lehet csak egy script általunk készített. Ezt követően meg kell hívni egy adott script a böngésző befejezése után a munkáját, hogy frissítse a laptáblázatokat Turck MMCache. Ennek eredményeként ezeket a lépéseket, akkor kap egy listát a fájlok keletkeznek, amikor végre a lekérdezést. A teljes összeg ezeket a fájlokat összeadásával számítják ki az összes szkriptet látható a pályán mérete.
Hol használható PHP optimalizálókkal
Kézzelfogható PHP-optimalizáló nyújt teljesítménynövekedés fórumokon (pl phpBB, vBulletin), CMS - tartalomkezelő rendszerek (például Bitrix (Bitrix), PHP-Nuke, Mambo).
Elvileg szinte minden nagy rendszer PHP-ben íródott, gyorsabban fog futni, ha optimalizáló PHP. De mégis, érdemes megjegyezni, hogy nem mindig azok scriptek megfelelően működni anélkül optimalizálókkal lesz 100% -ban kompatibilis a kiegészítő modulok PHP. Amikor csatlakozik egy adott modult, akkor ügyeljen arra, hogy a kód írsz kompatibilis vele.
Munka adatbázis
Egy másik „szűk” helyet a munkaterületen gyakran kevesebb, mint optimális felhasználását az adatbázisból.
Például egy webhelylátogatókhoz fellebbez a dinamikus oldal, az építése, amely generál egy script végrehajt egy vagy több SQL-lekérdezéseket. Ha valamilyen oknál fogva az SQL-szerver feldolgozza őket hosszú ideig, vagy annak eredményeként egy script a kérelem feldolgozására kerül át túl sok adat, a kért oldal által generált túl sokáig.
Egy virtuális szerver MySQL leggyakrabban használt, mint adatbázis. És az egyik leggyakoribb oka a lassú teljesítmény SQL-lekérdezések hiányzik indexek MySQL táblák. Ha az adatbázis tartalmaz egy táblázatot, amely nagy mennyiségű adatot, a teljesítmény a SELECT lekérdezést, mint például a következő területeken: ez a táblázat nélkül indexek hosszú időt vesz igénybe, ami végső soron befolyásolja a kialakulását időben egy oldal. Ezért javasolt, hogy rendszeresen ellenőrzi és optimalizálja ezeket a lekérdezéseket. Ezt meg lehet tenni a segítségével MySQL A teljes PROCESSLIST parancsot. amely egy táblázat az összes jelenleg futó lekérdezések. Idő oszlop jelzi, hogy mennyi ideig lekérdezés lefut. Ha a lekérdezés ideje több, mint a második - okunk van, hogy ellenőrizze a számát nézve ez a lekérdezés húrok a táblázatban. Ehhez használja az EXPLAIN parancsot. amely szintén egy táblázatot az eredményekkel. Az érték sorokban oszlop mutatja, hogy hány sort a táblázatban látható a teljesítménye a lekérdezés. Ha a sorok száma több mint 1000, akkor meg kell próbálni építeni indexeket a területeken, ami a mintában. Általános szabály, hogy a legtöbb esetben, amikor az index build lehet elérni számának csökkenése sor megtekinthető tízszer, ami pozitívan befolyásolja az átfutási idő a kérelmet.
Vegyünk egy konkrét példát:
Mi kérhet a „termékek” az asztalon a feltétele „id” mező, amely nem rendelkezik beépített index. A lekérdezés hajtódik végre 0,60 másodperc. és amikor fut MySQL „letapogatja” 175 246 sort a táblázatba. Meg lehet építeni egy indexet az „id” mezőbe, majd hasonlítsa össze az eredményeket. Miután az épület egy index a pályán „id” ugyanazon lekérdezés lefut szinte azonnal, a MySQL valójában „néz ki” csak egy sort.
További információ a optimalizálásával munka MySQL megtalálható a fejlesztők weboldalán.
Az átadás a nagy mennyiségű fájlok HTTP-n keresztül
Odnaya Másik gyakori probléma, amely elvezet a lassú betöltés helyén, kapcsolódó információ mennyisége tölteni az oldalról, és a frekvencia kérelmek fájlok letöltéséhez. Tegyük fel, hogy van egy oldal sok fájl nagyon nagy (néhány megabájt). Látogatók az oldalon lehet letölteni ezeket a fájlokat, de a kérelmük feldolgozását hagy jelentős időt, annak a ténynek köszönhető, hogy a fájlokat egy nagy kötetet. Ha egy kérés érkezik több, akkor valószínű, hogy a helyszínen megnyílik hosszú késés vagy egyáltalán nem nyílik meg, mert a szerver foglalt egyetlen szolgáltatás ilyen kéréseket. Gyakran ez a probléma akkor fordulhat elő, használata miatt a látogatók speciális programok célja, hogy fájlok letöltése (Download Manager) - néhány ilyen program nagy fájlokat tölt le néhány patakok, így a több munkafolyamatok egy virtuális szerver és szorozni nagyon gyorsan elér egy határt.
Ha tényleg szükség, hogy folyamatosan biztosítani a nagy fájlok letöltése, a legjobb, hogy fontolják meg a többi szállítmányok adatait. Például, hogy megadja a hozzáférést a fájlokat FTP-n keresztül, ha egy ilyen lehetőséget adhat a tárhely szolgáltató (esetleg olyan kiegészítő szolgáltatások). Így, ha kirak az Apache webszerver és újratölti a munkát kezelni a kéréseket a fájlok letöltését FTP-szerverre.