Tárhely gyorsaságának objektív mérése

Sziasztok,

Most jár le a tárhely szolgáltatásom. Egy Wordpress alapú előjegyzési/bejelentkezési rendszert használok. sokat vitázok a szolgáltatóval, hogy nem az általam használt php pluginek, hanem az ő szolgáltatása lassú.

Kíváncsi lennék a véleményetekre, hogy milyen programmal/módszerrel lehetne objektíven lemérni a honlap reszponzivitását. A szolgáltatónak az orra alá szeretném dörgölni, hogy a leglassabb szerverére rakta a tárhelyemet, amin vagy javít vagy váltok.

Kösz,

Norbi

Hozzászólások

Ha ezen vitatkozni kell, akkor szerintem váltsál. A számítástechnika bonyolult dolog, nem hiszem, hogy ez objektíven mérhető, hacsak nem valamiféle statisztikai módszerrel mérési sorozatból.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Wordpress es sebesseg vita teljesen felesleges, soha nem lesz vege. Szeeinted nem ssd, szeeinte sok plugin. Mindenkinek igaza van, senki nem nyer. 

Mennyi pénzről van amúgy szó? Évente 5-6 ezer? Válts.

Egyébként meg vegyél egy VPS-t, ott tudsz oprendszer szinten benchmark-ot futtatni és magad is látod, ha valami PHP okozza a szűk keresztmetszetet vagy erőforrás hiány van. Óránként fizetsz pár centet, ki lehet bírni.

Szerkesztve: 2020. 07. 11., szo – 18:12

Megmérjem neked:) van hasonlítási alapom, most is van 3 szolgáltatónál tárhelyem. Én WP bejegyzés/oldal letöltési sebességet szoktam mérni. pl ez az xyz. oldal nem túl gyors, valójában kb 1s alatt töltődik be

Page Speed Insight and CheckList

Event When How long Sum
Redirect 0 0 0
DNS 2 15 15
Connect 17 9 24
Request 27 198 222
Response 225 34 256
DOM 246 716 972
Interactive 552 0 -
Content loaded 552 36 -
Load event 962 1 973

Na ez szerintem gyors, ez 0,18 s alatt töltődik be

Page Speed Insight and CheckList

Event When How long Sum
Redirect 0 0 0
DNS 0 0 0
Connect 0 0 0
Request 4 31 31
Response 35 2 33
DOM 49 139 172
Interactive 161 0 -
Content loaded 164 2 -
Load event 188 1 173

És valóban ha lassúnak találod váltani kell szolgáltatót. 

"ha valakire rá kiabálunk, hogy rendszergazda akkor az is - szerződés, fizetés csak az átkos időkben kellett" 

és 100 éve még boszorkányt is égettek 

Nem fogod tudni lemerni. Tobb okbol sem. 1. ezeknel a tarhelyeknel "nullarol skalazol", azaz ha nincs forgalom egy ideig akkor kell inditania egy uj PHP threadet ami lassabb lesz mint ha mar volt request. Ezen felul ott van a "noisy neighbor" problema, azaz ha valakit eppen utnet vagy nagy forgalma van a te oldalad belassulhat. Stb. Ha megbizhato teljesitmenyt szeretnel kenytelen leszel 1. dedikalt eroforrasokba fektetni (VPS annak minden elonyevel es hatranyaval, vagy pedig Wordpress-specifikus szolgaltatas) 2. a Wordpress oldaladat ugy optimalizalni hogy random pluginek ne akaszthassak meg.

+1 a valtas mellett, sokat nem kockaztatsz vele. Igazabol a bizonyitas tobb ido, mint attenni valahova mashova. Raadasul load teszt nelkul eleg nehez, annak meg gondolom masok nem orulnenek, ha egy ovatlan pillanatban megkinalnad a szervert egy kis terhelessel. De amugy az index.php-ba beleteszel egy $start = microtime(); a vegere meg echo "<!-- " . (microtime() - $start) . " ms -->"; es akkor ott lesz minden oldalban, hogy mennyi ido alatt generalta le a PHP. Ezt az erteket mondjuk ossze lehet hasonlitani egy masikkal, es lehet azt mondani, hogy nezd X vas ugyanezekkel a pluginekkel ennyi ido alatt generalta az oldalt. Viszont nem biztos, hogy a PHP generalas a szuk keresztmetszet. Lehet a disk, a network, meg egy rakas dolog. Amit nem lehet kideriteni, amig nincs OS szintu hozzaferesed a gephez.

Wordpress oldalnál is két szempont alapján szokták mérni a sebességet. Az egyik ami a szerveren múlik (szerver válaszidő - természetesen ez is weboldaltól függ nagyrészt), a másik pedig ami a weboldal összeállításán (böngésző megjelenítési idő). Az elterjedt mérőoldalak nagy része a hangszúlyt a böngészőben való megjelenésre helyezi, sok-sok pontból 1 jelenti a szervert.
Szerver oldalon függ annak terheltségétől, limitációktól, PHP beállításától, betöltött modulokból, szerver oldali elérhető cache rendszerektől, használt WP témától, pluginektől, gyorsítótár beállításaitól, és WP finomhangolásoktól. Szerver oldali terheltség az elhelyezett weboldalak száma, forgalmuk, processzor/háttértár típusától, valamint az alkalmazott erőforrás limitációktól (CPU, IO), illetve az adott limitációs csoportból kiszolgált weboldalak teljesítmény igényétől/forgalmától. Vannak szolgáltatók, ahol 1MB/s az IO limit, ami pl. 3MB-nyi PHP betöltésnél már sok időt vesztesz az disk-re várakozva.
PHP beállításokban lehet finomhangolni és gyorsítani, pl. ha xdebug-ot is betölti, akkor az mint egy kézifék hat a sebességre. Ha pl. Redis, Memcached rendelkezésre áll, akkor érdemes használni, a WP cache rendszerbe beállítani. WP-nél érdemes megnézni a forgalmat, lehet hogy sok szemét bot látogatja, és azok viszik el a rendelkezésre álló erőforrásodat. Nézd meg, hogy a gyorsítótárad hogyan dolgozik, és a weboldalad típushoz az megfelelően illeszkedik-e. Pl. havonta változik csak a tartalom, akkor érdemes olyan cache plugin-t választani, ami nem naponta dobja el a cache-t.
Mérni úgy tudod, hogy böngésződben megnyitod a fejlesztői eszköztárat, és a hálózat fülre átváltaszt, majd újratöltöd az adott oldalt, amit mérni akarsz. A legelső elem lesz az, amikor ténylegesen a szerveren múlik a dolog, vagyis ha gyorsítótárazva szolgálod ki, akkor 50-150ms, ha cache nélkül akkor 0.2-0.9s körül van egy WP átlagosan. Természetesen, ha 80-90 plugin van installálva, akkor ne a megadott kisebb értékeket akard elérni cache nélküli állapotban, hanem örülj ha a felsőt eléred. Ha webshopod van, akkor a kosár/pénztár és admin felület biztosan nem gyorsítótárazható egészében, így ott a szerver sebessége lesz a döntő.
Ha a miértre keresed a választ, akkor:
Szerver oldali méréshez kapcsoltasd be a szolgáltatóval (vagy Te az admin felületen) az xdebug modult. Ekkor a weboldalad sokkal gyorsabban fog futni, viszont a fájl kimenetből látni fogod hogy mi mennyi ideig tartott.
Kliens oldali mérésnél a fejlesztői eszköztárban a Performance fülre kattints át, és kapcsold be a rögzítést, majd töltsd újra a weboldalt, és állítsd le a mentést. Ezt követően nagyítható formában és függőlegesen is görgethetően megnézheted a böngésző render idejénél épp mi dolgozott, mire várt, melyik js mit csinált, stb. Ez az rész amit WP-nél már nem nagyon szoktak megnézni.
Amúgy próbálj ki más szolgáltatókat, ugyanazt az oldalt rakd át másokhoz (szolgáltók segítenek tesztelni), és próbáld ki hogy mit bír. Díjmentesen próbáld ki a szolgáltatásunkat, ha adsz egy WP fájl és db mentést, akkor felrakjuk egy vagy több teszt tárhelyre, és ki tudod próbálni hogy fut különböző szolgáltatás típuson. Segítünk az oldal lassú pontjait megtalálni, és ha érdekel a díjmentes teszt, akkor írj emailt a zoltan.gede@elin.hu -ra.

Szerkesztve: 2020. 07. 11., szo – 23:33

A szolgáltatónak az orra alá szeretném dörgölni, hogy a leglassabb szerverére rakta a tárhelyemet, amin vagy javít vagy váltok.

Ez teljesen értelmetlen. Két eset van: vagy tud jobb szolgáltatást adni a szolgáltató (több pénzért), vagy nem. Az első esetben ha panaszkodsz, akkor értelmes kereskedelmi képességekkel rendelkező cég felajánlja a "prémium" szolgáltatását. Ebben az esetben javaslok egy test drive-ot (meg kell nézni, hogy valójában mennyivel jobb - megéri-e). Ha nem kapsz ilyen ajánlatot, vagy nem éri meg a jobb szolgáltatás (nem elég jó), akkor ott kell hagyni őket a vérbe.

Azért hatalmas reményekkel ne indulj csatába, mert az, amit szeretnél, picit reménytelen eset. Ha dedikált erőforrásokon magad megcsinálod, az az út a sikerhez vezethet, de hogy sokat fogsz melózni, és a végén kurvára értened kell hozzá, az tuti. A másik út meg az lehet, ha elfelejted azokat a technológiákat, amikbe bele van kódolva a lassúság, és váltasz valami statikus oldalra - a statikus oldalakat még a legkutyaütőbb szolgáltató is egész emberi sebességgel ki tudja szolgálni, de ha bérelsz egy pici VPS-t pár euróért havonta, akkor aztán pláne nem lehetnek gondjaid vele. Vagy ha forgalmasabb a site, akkor feltolhatod valamelyik globális szolgáltató CDN szolgáltatásába. Statikus oldalak generálására template-ből meg van egy valag open-source tool (pl. Jekyll, Gatsby, Hugo).

kb 1000+1 oka lehet a lassúságnak. 

1. szerezz egy php.slow logot

2. szerezz egy mysql-slow.logot sokszor érthetetlen, hogy miért nem használnak indexeket.

3. minimalizáld a pluginek számát

4. nézd meg, hogy nem töltesz-e be másik oldalról valamit a háttérben. (pl devizaárfolyam, vagy 100 éves sharethis script nem működő linkekkel). ha lassú helyről töltöd, akkor hiába teszel alá bármit.

Mit értünk "tárhely gyorsaságon"? Mire érzékeny az adott kiszolgálás?
  - PHP kódfuttatási tempó?
  - I/O tempó (fájlhozzáférés átlagos ideje), apró file és közepes méretű esetén
  - SQL elérési tempó és limitációk?
  - harmadik fél szerveréhez való kapcsolódás limitációit? Például terhelt helyi névfeloldásra is gondolva. Vagy valójában nem is itt, hanem a külső adatforrásnál van a lassúság.

Egyébként elb*szott alkalmazás is van bőven. Kedvenceim egyike, amikor a látogatónál az időpontot, IP címét és klienstípust, stb. minden egyes látogatónál inzertálja SQL-be és egyúttal minden látogatónál jól végigindexeli sok oszlop alapján ezt a hatalmasra hízott kliensparaméter táblát. Innentől nem a kiszolgálás látszik a terhelésen, hanem a látogatói tábla minden látogató utáni indexfájl újraírása.
Régen ezt egyszerűen egy naponta rotált log fájlban gyűjtöttük és cron-ból indítva időnként megcsináltuk a különböző szempontok szerinti statisztikai elemzését. A végeredmény ugyanaz volt, csak erőforrásban a töredéke elég volt.

És még hány ilyen trehányság van a mai szoftverekben. Látszólag egyszerűbb leprogramozni, de valós terhelés esetén nem győzöd alárakni az erőforrást.

+1

Eredetihez: A probléma tisztességes megoldása szerintem az volna, ha egy saját helyi vasra feltelepítenéd, ott kiprofiloznád, hogy mit csinál, majd optimalizálnád, végül mérnéd műterheléssel a saját gépeden, és ehhez mint benchmarkhoz hasonlítva mérnéd a szolgáltatónál is. Ezt megcsinálni annyi munka, és végsősoron annyi pénz, hogy egyszerűbb és olcsóbb alátenni egy kicsit több vasat :-) Kivéve ha nagyon sok usered van, akkor megéri optimalizálgatni.

Mondjuk én már csak szakmai okulásképpen is feltenném saját vasra, és legalább alapszinten profiloznám: ha ezen a projekten nem is éri meg, a tudás amit nyersz vele hosszútávon kifizetődő lesz. Aki tudja, hogy mitől lassú/gyors egy oldal, az már a vérpistikétől egy polccal feljebb van.

Offtopic

A vegen kiderul hogy a seo szakeerok szerint lassu az oldal mert a g00gle azt mondja. 

Szerkesztve: 2020. 07. 14., k – 15:22

Mindenkinek köszönöm a segítségét! A legegyszerűbb dolog történt, töbszöri kérés után ingyen egy másik szerverre raktak, ahol ugyanaz a Wordpress honlap már elfogadható sebességgel muzsikál.

Üdv,

Norbi