Ho un sito Web con uno script personalizzato in esecuzione su un servizio di hosting VPS. Tutti gli script escono attraverso index.php tramite mod_rewrite e .htaccess per gli URL amichevoliCome rintracciare lo script PHP che esegue un determinato processo?
Qualcosa nel mio script sta generando alto utilizzo della CPU, come spettacolo:
Quando vado e strace
un dato processo ottengo questo che non capisco:
setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={90, 0}}, NULL) = 0
rt_sigaction(SIGPROF, {0x7a6b8f, [PROF], SA_RESTORER|SA_RESTART, 0x2af8ae8742f0}, {0x7a6b8f, [PROF], SA_RESTORER|SA_RESTART, 0x2af8ae8742f0}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0
Questo viene ripetuto continuamente in un ciclo infinito.
Quello che devo sapere è come rintracciare lo script PHP esatto che causa questo problema. Eventuali suggerimenti?
Abilitare la registrazione degli errori. Imposta il tempo massimo di esecuzione. Dai un'occhiata al log degli errori che lo script non funziona bene. Probabilmente crea il tuo gestore di errori che è in grado di scaricare i dettagli della richiesta nel caso in cui venga attivato l'errore di timeout, quindi puoi iniziare a riprodurlo con un debugger remoto. – hakre
E quale API stai usando? CGI? – hakre