Težave serverja za spletno gostovanje

Od ponudnika spletnega gostovanje sem prejel mail naslednje vsebine:

ugotovili smo da vaša skripta chess.php na podomeni sah.phpzofa.net ponepotrebnem bremeni naš strežnik.
Ugotovili smo , da je skripta večkrat zagnana ( tudi do 10x ) in včasih dalj kot 2 ure.
Ob tem vsak proces porabi neverjetno veliko CPU-ja.
Smatrajte to sporočilo kot prvi opomin kršenja splošnih pravil poslovanja.

Poraba mojih resursov:
bandwidth: 4250.82 / 30.000 MB ali 15%
zaseden prostor: 67.19 / 500 MB ali 13.9%
za prvih 15 dni januarja. Do sedaj ni bilo nobenih problemov. Portal je namenjen igranju online šaha deluje na platformi PHP (osveževanje stanja na šahovnici s submit metodo) in baza mySQL, največji promet okoli 20 ure. Vprašanje je ali bi lahko bila krivda v skriptu ali nastavitvah serverja - skript ni bil bistveno spremenjen več kot 6 mesecev pa tudi ni bilo posegov v administratorske nastavitve, prenos grafike - figur je minimalen. Za mnenja se v naprej zahvaljujem!

37 odgovorov

MySQL: sem pregledal možnost loopa pa ga ni, pa tudi vsi ostalo zahtevki so kratki za eno polje po indexu...vse je klasičen PHP z submit metodo z enkratnim izvajanjem procedur - ni Ajax platforma - dostop do procedure je možen samo prijavljenim uporabnikom preko čekiranja sessiona, je nekaj nizov - arrays do 64 členov ostalo so v glavnem procedure, ki se izvajajo po potrebi, skripta(sešteto cca 400kb)...

Bandwidth = vse kar server downloada na uporabniško stran - vidno Awstat
CPU - poraba = trenutna poraba v MB - ali obstaja možnost testiranja??? koliko jo nek skript rabi. da se izvede....
čas izvajanja od 1 do 5 sec pri nalaganju pri uporabniku - zelo počasno....
obstaja možnost, da kdo pozabi zapreti šah vendar je delovanje v prazno omejeno z session čekom in ga preusmeri ven iz šaha...

5 sekund nalaganja je ogromno... (če se 5 sekund nalaga, pomeni da 100% bremeni procesor v tem času) Mislim, upam da si to dodal unixtimestamp na začetku in na koncu skripte ter časa odštel, ne pa da si štel preko web browserja... Kar se tiče velikosti skripte nima veze toliko... Bolj je vprašanje število queryev... isto prešteješ ob vsakem klicu querya, prišteješ +1, ter na koncu izvajanja skripte izpišeš... Nisi povedal koliko je teh queryev na en execute skripte... Imaš skripto na voljo samo prijavljenim uporabnikom ali tudi public ? Če te razumem prav... ali skos laufa ta skripta .php, če ima en odprt šah ali samo ko ga prvič odpre ? Če je prvo, bi lahko naredil da šele ko je sprememba poteze ali kaj takega, da kliče php, vmes pa ni zalaufana skripta... Ne vem zdaj kako imaš narejeno vendar verjetno se da kake optimizacije narest. Ker drugače se boš mogu selit na kak VPS, ker hostingi ti ne bodo tega pustili nikjer, da preveč bremeniš procesor... Tu so hakelci hostingov... Nima veze če ti vse neomejeno dajejo, pa prenos in use... nima to veze s temi skritimi limiti cpuja in sql queryev... to je nenazadnje pravo merilo za obremenitev strežnika.

1

Sedaj se je odprlo ono pravo - merilo za porabo CPU in limit te porabe - ni nikjer definiran. Ponudnik lahko ob vsakem času reče preveč CPU mi trošiš ne da bi navedel parametre limitov. Čas merjenja nalaganja je z unixtimestamp - tick. Procedura se nalaga z avtomatskim refrešom (interval 10 do 30 sek) ali pa po potrebi z ročnim osveževanjem - vmes se nič ne dogaja - je pač PHP klasika, če bi bil Ajax bi sigurno manj trošil, query zahtevkov je okoli 7 - samo eden ima loop ostali gledajo npr ime nicka ali čas porabe za potezo(eno polje). Čas nalaganja je bil merjen na domačem serverju MS IIS. Kakšna optimizacija se bi že našla je pa vprašanje, če bo to sploh kaj vplivalo, res pa je da skripta zelo kompleksna.
Naj bolj zanimivo je dejstvo, da ta zadeva deluje več kot leto in pol na istem serverju pa do sedaj niso imeli pripomb - na serverju pa ni nekih resnih spletnih(vizitke tam do 15 podstrani - obisk pa minimalen) strani razen njihove.

maatej:
nene, prov od skripte na najdem.si je rekel, da se jquery na tem naslovu: "/plugins/jquery/jquery.js" izvaja že fuuul dolgo. Js valda nimam pojma zakaj, ker nism nč spreminjal.

Javascript se izvaja lokalno na "visitor" računalniku in ne na strežniku, tko da tukaj je čudno, da ti hosting teži:)

@phpzofa. Preprosto porasta pri številu obiskovalcev pa ni?

sem dodal merjenje časa ter odklopil nekaj "nepotrebnih" klicev v mySQL, sedaj so časi kar užitni od 0.02 do 0.2 sek za nalaganje podstrani, v šahu pa še je vedno čas kar visok - pri zapisu potez do 2.5 sek nalaganje pa okoli 0.2 sek - vem pa da je danes nedelja. Bolj realni podatki bodo jasni v ponedeljek ali torek ko bo verjetno večji promet na strežniku.
Malo sem gledal po spletu na tematiko CPU limit - omejevanje porabe CPU strežnika - pa kaj jasnega ne najdem - ima kdo podobne izskušnje???

Ti na svoji strani težko kaj omejuješ cpu. To lahko omeji kvečjemu tvoj host s server side skriptami... Drugače pa hostu predlagaj re-nice procesov pač... Drugače pa če mene prašaš so se spravili nate ker očitno jih baše strežnik. Prej itak nimajo razloga za teženje. Ko se ti pa gre ali boš spravil nanj še kako stranko več, boš pa bolj požrešnim strankam zatežil naj omejijo porabo resursov. Vsaj to delajo ponavadi. In res je, nikjer ne piše koliko SQL queryev na minuto / CPU-ja lahko porabiš na strežniku... To so pač hakelci hostingov, ki potem lahko rečejo da bremeniš strežnik s svojo skripto in to je to. Moraš pa tudi razumeti da če imaš pač preveč uporabnikov naenkrat online, ne moreš pričakovati da te bodo kar tolerirali nonstop in ti omogočali abnormalno porabo... Vsaj ne za tak denar kot jim daješ ti na mesec. Večina hostingov te potem napoti na VPS ali kaj podobnega.

Najboljša varjanta je itak da naložiš čimveč dela brskalniku samemu (ta ima ponavadi na voljo več resursov kot sam strežnik, ki se mora ukvarjati s 100 uporabniki naenkrat. brskalnik pa le za samega sebe...)... Strežnik ima dovolj dela že sam. Tako da če lahko v javaskriptu napišeš več kode, bi ti to toplo priporočal. Nenazadnje bo to bolje tudi zate, ne glede na to kam boš šel, če ne ostaneš pri trenutnem ponudniku.

phpzofa:
Od ponudnika spletnega gostovanje sem prejel mail naslednje vsebine:

ugotovili smo da vaša skripta chess.php na podomeni sah.phpzofa.net ponepotrebnem bremeni naš strežnik.
Ugotovili smo , da je skripta večkrat zagnana ( tudi do 10x ) in včasih dalj kot 2 ure.
Ob tem vsak proces porabi neverjetno veliko CPU-ja.
Smatrajte to sporočilo kot prvi opomin kršenja splošnih pravil poslovanja.

Poraba mojih resursov:
bandwidth: 4250.82 / 30.000 MB ali 15%
zaseden prostor: 67.19 / 500 MB ali 13.9%
za prvih 15 dni januarja. Do sedaj ni bilo nobenih problemov. Portal je namenjen igranju online šaha deluje na platformi PHP (osveževanje stanja na šahovnici s submit metodo) in baza mySQL, največji promet okoli 20 ure. Vprašanje je ali bi lahko bila krivda v skriptu ali nastavitvah serverja - skript ni bil bistveno spremenjen več kot 6 mesecev pa tudi ni bilo posegov v administratorske nastavitve, prenos grafike - figur je minimalen. Za mnenja se v naprej zahvaljujem!

Menjaj ponudnika gostovanja. Včasih je kakšna skripta PAČ požrešna. In glede na to, da se večkrat poganja... Če ne druga predlagaj jim nadgraditev sistema, pa bo mir :P

Take stvari je bolje gostovati na VPSjih ali dedi če tako žre.

Boter pa to ni res.
Shared hostingi so shared. Ne more pač eden od 1000 pobirati večine resourcov.

Sce ma prav.
Probaj z VPS, kjer lahko tudi bolje optimiziraš nastavitve serverja prav za ta sajt

2