Stiamo gestendo un pesante sito Web Drupal che esegue modelli finanziari. Sembra che ci stiamo imbattendo in una sorta di perdita di memoria dato il fatto che gli straordinari aumentano la memoria utilizzata da apache mentre il numero di processi apache rimane stabile:
Sappiamo che il problema di memoria proviene da apache / PHP perché ogni volta che emettiamo un /etc/init.d/httpd reload
utilizzo della memoria diminuisce (vedi screenshot sopra e output CLI sotto):
Prima di ricaricare httpd
$ gratis buffer condivisi gratuiti totali utilizzati memorizzati nella cache Mem: 49447692 45926468 3521224 0 191100 22609728 - / + buffer / cache: 23125640 26322052 Swap: 2097144 536552 1560592
Dopo httpd ricaricare
$ gratis buffer condivisi gratuiti totali utilizzati memorizzati nella cache Mem: 49447692 28905752 20541940 0 191360 22598428 - / + buffer / cache: 6115964 43331728 Swap: 2097144 536552 1560592
A ogni thread di Apache viene assegnato un PHP memory_limit
di 512 MB che spiega l'elevato utilizzo della memoria determina il basso volume di richieste e un max_execution_time
120 sec che dovrebbe terminare i thread che l'esecuzione richiede più tempo e dovrebbe quindi impedire la crescita costante nell'uso della memoria che stiamo vedendo.
D: Come possiamo indagare su cosa sta causando questa perdita di memoria?
Idealmente sto cercando passaggi per la risoluzione dei problemi che posso eseguire sul sistema senza dover disturbare il team di sviluppo.
Informazioni addizionali:
OS: RHEL 5.6
PHP: 5.3
Drupal: 6.x
MySQL: 5.6
Cordiali saluti, siamo a conoscenza del problema di scambio che stiamo esaminando separatamente e non ha nulla a che fare con la perdita di memoria che abbiamo osservato prima che si verificasse lo scambio.
memcached
libreria PHP . Sulla base della pagina di amministrazione di memcache memcache.php
, tutto ciò che possiamo vedere è che abbiamo assegnato 5GB
a memcache, di cui 3.3GB
viene utilizzato. Sarebbe bello se puoi aiutarci ulteriormente qui.
memcached
demone stesso probabilmente sta bene. È la libreria memcache di PHP che potrebbe o non perdere la memoria (e quindi aumentare l'utilizzo della memoria dei processi Apache). Il mio problema era circa 1-2 anni fa, quindi le cose avrebbero potuto essere risolte dopo. Comunque, se memcached non è obbligatorio per te, prova a disabilitarlo per un po 'e vedi se l'utilizzo della memoria Apache continua a crescere.
httpd
, l'utilizzo della memoria continua a crescere e la scatola alla fine si blocca con alcuni messaggi del kernel di memoria esaurita. Le prestazioni sono buone (fino a quando l'utilizzo della memoria non si avvicina al limite della memoria). Si prega di ignorare il problema di scambio.