PHP szkrirpt prioritásának beállítása
Sziasztok!
Egy butaság fogalmazódott meg bennem az imént: nem lenne értelme egy php szkript elején (vagy akár hataccessből) beállítani a szkript processének prioritását?
Például tételezzük fel, hogy a keresés a legCPUigényesebb művelet az oldaladon (mondjuk 20 cikk-megnyitással egyenértékű). Ha le tudnánk szállítani az adott művelet (keresés) prioritását, akkor nem szenvedne a másik X user eközben, bár a keresés egy kicsit több ideig tartana, de csak annyival, amennyi tényleges kérés érkezik eközben a könnyen teljesíthető fajtából.
Persze, tudom, hogy a mysql-ben történik a munka oroszlánrésze, ami más process, mint a PHP. Ott talán értelme lenne külön userrel elérni a DB-t. Ott a lassú queryknek szentelt user élvezne kisebb prioritást, mint a normál user.
És mi van az időkorláttal. Mi lenne, ha nem lőnénk ki 30 mp után a szkripteket, hanem 20 másodperc után lesűlyesztjük a prioritást és 40 továbi másodperc után lőnénk ki? Így egy blokoló művelet (mondkuk más szerverről adatok lekérése) számára több időnk lenne, és egy elszabadult szkript sem eszik meg annyi értékes erőforrást a 40 másodperc IDLE prioritással, mint még 10 másodperc teljesértékű futással.
Vagy ha már itt tartunk: miért idő limit van, miért nem CPU idő limit (rsuage)? Elég egyszerűen meg lehetne különbötetni egy erőforrászabáló szkriptet egy olyantól, aki csak várakozik (pl. a fenti szerver-szerver kommunikáció).
Ötletek? Esetleg hallott / használ valaki létező megoldást?
B
■ Egy butaság fogalmazódott meg bennem az imént: nem lenne értelme egy php szkript elején (vagy akár hataccessből) beállítani a szkript processének prioritását?
Például tételezzük fel, hogy a keresés a legCPUigényesebb művelet az oldaladon (mondjuk 20 cikk-megnyitással egyenértékű). Ha le tudnánk szállítani az adott művelet (keresés) prioritását, akkor nem szenvedne a másik X user eközben, bár a keresés egy kicsit több ideig tartana, de csak annyival, amennyi tényleges kérés érkezik eközben a könnyen teljesíthető fajtából.
Persze, tudom, hogy a mysql-ben történik a munka oroszlánrésze, ami más process, mint a PHP. Ott talán értelme lenne külön userrel elérni a DB-t. Ott a lassú queryknek szentelt user élvezne kisebb prioritást, mint a normál user.
És mi van az időkorláttal. Mi lenne, ha nem lőnénk ki 30 mp után a szkripteket, hanem 20 másodperc után lesűlyesztjük a prioritást és 40 továbi másodperc után lőnénk ki? Így egy blokoló művelet (mondkuk más szerverről adatok lekérése) számára több időnk lenne, és egy elszabadult szkript sem eszik meg annyi értékes erőforrást a 40 másodperc IDLE prioritással, mint még 10 másodperc teljesértékű futással.
Vagy ha már itt tartunk: miért idő limit van, miért nem CPU idő limit (rsuage)? Elég egyszerűen meg lehetne különbötetni egy erőforrászabáló szkriptet egy olyantól, aki csak várakozik (pl. a fenti szerver-szerver kommunikáció).
Ötletek? Esetleg hallott / használ valaki létező megoldást?
B
Lehet, lehet...