DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Web Hosting, web serveri i operativni sistemi (http://www.devprotalk.com/forumdisplay.php?f=11)
-   -   Zastoj dok PHP skripta radi (http://www.devprotalk.com/showthread.php?t=8635)

srdjevic 01. 04. 2010. 20:14

Zastoj dok PHP skripta radi
 
Naleteo sam svega par puta na ovu situaciju, prilično retko, i nisam uspeo da izguglam ništa smisleno na ovu temu, pa reko' možda neko može da uleti klizeći ovde....

Imam server (klasika lamp platforma) koji, dok jedna skripta trči (bilo da je cron ili webpage), zakuca server i ostale stranice na sajtu servira po 2 minute... :1027:

Pretpostavljam da je nešto na Linux/Apache nivou, da treba negde reći serveru da alocira te resurse malo bolje... :1007:

Mora da kažem nešto čoveku, riba me sve u 16 zato što mu moj (prilično zahtevan) skript zakucava server, pita me kako da popravi... :lost:

Ako iko ima neku ideju gde se ovo podešava, bio bih mu/joj krajnje zahvalan.

MorenoArdohain 01. 04. 2010. 20:26

Meni ovo lici na problem sa zakucavanjem baze (pogotovu ako ti se strane generisu dinamicki). Da pogodim, script radi nesto sa mysql bazom? :)

Ako to nije slucaj, mozes pokrenuti script sa "nice" komandom, mada bih ja radije ustanovio sto script zauzima toliko resursa (memory leak? etc).

srdjevic 01. 04. 2010. 20:52

I meni je na to mirisalo odmah... Prvo je koristio externu bazu (na G-linku u internoj mreži), sad je baza na localhost-u... opet isto.

Skripta radi svašta: drma ogroman broj upita na bazu, šalje gomilu mejlova, povlači koješta preko HTTPa... Skripta jeste zahtevna, to stoji. Ali na svim ostalim serverima radi lepo malo sporije, a ostatak serva fercera kako treba. Ovo sam video kod njih par samo... :1089:

Nažalost, skripta verovatno neće trpeti nikakve korenite izmene, s obzirom na to da se pokazala da radi kako treba na ogromnom broju instalacija... :(

robi-bobi 01. 04. 2010. 21:20

dva najbrza hak-a:
- spomenuti nice
- sleep() :)

srdjevic 01. 04. 2010. 21:28

Već radi i sleep(). :)

Samo, kod sleep-a je problem što onda skripta ne radi ništa. A čim prođe sleep....opet zakuca :(

zlukic 01. 04. 2010. 22:45

Pogledaj kolika je potrosnja memorije. Ako radi sa bazom onda guta svu raspolozivu memoriju. Jedno od rjesenja je dodavanje memorije. Pogledaj kolika je zauzetost procesora.

Pregledaj upite za bazu i da li su pravilno indeksirani. Ako mozes neke upite preciznije odredi ili limitiraj sa nekim uslovom.

Pregledaj bazu i vidi da li mozes neke podatke koji se cesto upisuju odvojiti u posebnu tabelu, a kasnije u odredjenim razmacima prebacivati u tabelu sa koje citas.

Pogledaj koliko je dopusteno maksimalno istovremenih konekcija ka bazi i koliko se u odredjenom trenutku ostvaruje. Ako je malo slobodno povecaj i preko 500, sa lakocom MySQL to izdrzava.

Ovo su bez preciznih podatak neki scenariji i rjesenja mogucih uzroka.

srdjevic 02. 04. 2010. 00:43

Pokušao sam već sve to... Upiti su optimizovani odavno, a i (napomenuo sam, mislim, ranije) da se isto ponašao i kada je baza na drugom serveru. Tada bi valjda vukao njegovu memoriju, ne web serverovu, ne? :(

Pogledaću ovo za broj konekcija ka bazi ali mislim da ima dovoljno... Skripta pravi 2 konekcije.



U principu, pitanje nije uopšte gde/da li skripta škripi (zato sam stavio ovo u hosting, a ne php forum). Pitanje je kako reći serveru da čak i ako ima neku ultra-mega-giga skriptu koja mora da trči, kako da ostavi dovoljno mesta da se sva deca igraju?
Zna li neko neki setting koji bi Apache-u (ili u Linuxu, za procese?) rekao da ostavi dovoljno ostalima, a ne da na jedan proces da svu svoju energiju?

Ovo sam iskopao do sad: http://httpd.apache.org/docs/1.3/mod...html#rlimitcpu

Ono što sam primetio u ovoj instanci je da ima MPM modul uključen, prefork i worker mu se pominju u conf-u... sad babram na tu stranu.

ivanhoe 02. 04. 2010. 03:09

prvo utvrdi sta se zapravo desava kad pokrenes skriptu.... sta kaze top, sta kaze free -m jel swapuje, ako se skripta pokrece preko apacha sta kaze /etc/init.d/httpd fullstatus (sa ukljucenim extended informacijama), takodje u mysqlu sta kaze SHOW FULL PROCESSLIST

Bitno je da vidis koji resurs je problematican (cpu, memorija, konekcije, file descriptori..), i da li je uopste u tome problem, ili mozda sam server nije ispravan, disk previse spor, etc. Moze da bude sve i svasta, ako kazes da se desava samo na tom jednom serveru. Proveri velicine bafera datih mysql-u, i podesavanje za memory limit php-u

mangia 02. 04. 2010. 04:07

Možda komšijin mali traži Severinu u tom momentu...

dao si informacija toliko da pitanje izgleda ovako

"Interesuje me ****** jer nisam ***** a kada ***** nema ***** osim ***** ulaz *****. Šta vi mislite o tome?

srdjevic 02. 04. 2010. 06:39

Već sam napomenuo ranije, imam klijenta (srećom u mojoj vremenskoj zoni i još tehnički potkovan, pa konačno imam nekoga od koga mogu da tražim bilo šta smisleno) koji ima vrlo vrlo redak i specifičan problem koji očigledno leži u nekom podešenju servera. Dobio sam FTP pristup folderu skripte i uvid u conf fajlove apache-a, php-a i mysql-a. Tražio sam još koješta, čekam odgovor. Ovde ne mogu da kačim ništa preterano specifično:

- Ubuntu 5.7
- Apache 2.2.8
- PHP 5.2.4
- MySQL 5.0.26 na lokalnoj mašini, dedicated Ubuntu box sa 8GB RAM-a, od toga 4GB za MySQL kad je bio externi (ne znam verziju tamo)



Javiću kad dobijem neke smislene odgovore koji isključuju bilo šta gore navedeno. Ako odgovori uopšte, ne javlja se od popodne... Nekad (ovakvi klijenti) kad nađu rešenje jednostavno ne odgovore više na tiket. I tako mi je probio timeframe koji mogu da odvojim za njega, refundiraću ga svakako ako ne radi, samo mi ćef da znam zašto koči... pitah ovde samo zato što me je zagolicala tema, iako je suludo i ovo vreme koje sam do sad potrošio na jedan problem koji se dešava u tako niskom broju slučajeva.

Rekoh, možda neko zna kako/gde reći serveru da ne dozvoli jednom procesu da upucava ceo serv...

Izvinjavam se ako nekome ne prija način na koji sam postavio pitanje - nisam bio u prilici sa posla da pišem previše i da se cimam oko ovoga. Sad sam kući, sad opušteno. :1042:

U svakom slučaju imamo sad ovde neke vrlo korisne savete, fino popisane. Thanks svima!


Vreme je GMT +2. Trenutno vreme je 18:53.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.