ugrás a tartalomhoz

Webhosting - lassan futó php prioritásának csökkentése

vbence · 2006. Dec. 8. (P), 12.21
Egy szerveren több független webszolgáltatás (weblap) műköik. Az egyik oldal egyik PHP-jába véletelnül belekerül valami végtelen ciklus, vagy nagyon nagy eredménytáblát kap egy olyan kód, ami 10-20 rekordra lett kitalálva, vagy ezer más okból, a lényeg, hogy a szerver túl lesz terhelve, és ez nem csak az aktuális fájlra vagy weblapra, hanem az összes hosztolt oldalra kihat.

Hasonló problémákra kiváló megoldás lenne, ha egy adott időnél tovább (pl fél vagy 1/10 mp) futó fájlok prioritását leejtené a rendszer valami olyan szintre, ahol biztos nem zavarják a legitim kérések futását, viszont azért a háttérben végzik tovább a dolgukat, mert miért is ne.

Lehetne írni modult, ami minden PHP kérés elején beállít egy időzítőt (elindít egy másik thread-et), ami várakozik X ideig, majd lecsökkenti a futó PHP száll prioritását. A baj csak az, hogy a kérés végeztével nem tudjuk visszaállítani az eredeti prioritást, mivel (ha jól tudom) csak root emelheti egy szál prioritását, a webszervert viszont nem célszerű rootként futtatni.

CGI módú futtatásnál ez a probléma nem áll fenn, ha jól gondolom. Jól gondolom?

Ötletek, vélmények?
 
1

Igen, de

Anonymous · 2006. Dec. 8. (P), 13.37
Irhatsz egy root jogu szolgaltatast, ami figyeli az apache altal inditott threadeket es az tudja csinalni... Vagy loggolod a fileok eroforrasigenyet es ha gond van, azt jelzed az ugyfelnek.