Stiamo osservando un comportamento strano e non siamo sicuri se si tratti di un problema con apache, php, mysql o il sistema operativo, quindi sui grandi cervelli di stackoverflow!I processi Apache/PHP si bloccano durante l'interazione con MySQL
Abbiamo Apache e mod_php che comunicano con un server mysql5. A volte, un processo sceglierà di bloccarsi, provando a leggere da un descrittore di file.
di accensione strace uno su di loro (tutti i processi che pendono hanno mostrato gli stessi risultati) ha dato questo:
[[email protected] ~]# strace -p 8450
Process 8450 attached - interrupt to quit
read(57, <unfinished ...>
Allora cosa fu cercando di leggere?
[[email protected] ~]# lsof -p 8450
...
...
httpd 8450 apache 57u IPv4 5546599 TCP
prweb133v.local:36615->hadat.local:mysql (ESTABLISHED)
Questo è il nostro server mysql! Ok, forse stava cercando di leggere i risultati di una query, ho pensato. Controllando la lista di processi sul server mysql, la connessione è stata stabilita ma in uno stato di SLEEP.
Hmmmm.
Quindi ho controllato netstat per vedere chi stava cercando di inviare/ricevere cosa.
Sul server web:
[[email protected] ~]# netstat -t -n -a | grep 36615
tcp 0 5 172.23.179.6:36615 172.23.179.67:3306
ESTABLISHED
e sul server MySQL c'era una connessione stabilita, ma 0 nella trasmissione o la ricezione code.
Qualche idea di cosa potrebbero essere questi 5 byte misteriosi o perché non ottengono casualmente il server mysql?
Cheers!
Mike
È possibile connettersi e interrogare il database da soli e/o da altre applicazioni? – jdizzle
Sei sicuro che ciò avvenga in modo casuale e che non sia legato a uno script particolare? –
Sono il collega di Mike; quando in questo stato di errore, è possibile aprire un browser più recente (ottenere una nuova sessione PHP) e utilizzare il sito come se nulla fosse accaduto, quindi il DB è ancora OK. Potrebbe essere legato a uno script incluso in tutte le pagine, ma è (finora) casuale per quanto riguarda la pagina visualizzata che attiva l'errore. – crb