[php] sleep () gestisce silenziosamente la CPU



Answers

Ciò significa probabilmente che Apache utilizza solo un processo figlio.

Perciò:

Il processo 1 figlio sta gestendo una richiesta (in questo caso dormire ma potrebbe svolgere un lavoro reale, Apache non può dire la differenza), quindi quando arriverà una nuova richiesta, dovrà attendere fino al termine del primo processo.

La soluzione sarebbe quella di aumentare il numero di processi figli che Apache può generare (direttiva MaxClients se si sta usando il prefork MPM), basta rimuovere il sleep () dallo script PHP.

Senza sapere esattamente cosa succede nel tuo script è difficile dirlo, ma puoi probabilmente sbarazzarti del sonno ().

Question

Sto eseguendo Apache su Linux all'interno di VMWare.

Una delle pagine PHP che sto richiedendo fa sleep() , e trovo che se provo a richiedere una seconda pagina mentre la prima pagina è sleep()'ing , la seconda pagina si blocca, aspettando il sleep() da la prima pagina da finire.

Qualcun altro ha visto questo comportamento?

So che PHP non è multi-thread , ma questo sembra un grosso maltrattamento della CPU.

Modifica : avrei dovuto dire che l'utilizzo della CPU non ha picchi. Quello che intendo per CPU "hogging" è che nessun'altra pagina PHP sembra in grado di utilizzare la CPU mentre la pagina è in sleep ().




Links