L'uso di un TTL pari a 0 significa che APC scaricherà tutta la cache quando esaurisce la memoria. L'errore non appare più ma rende APC molto meno efficiente. È una decisione senza rischi, senza problemi, "Non voglio fare il mio lavoro". APC non è pensato per essere utilizzato in questo modo. Dovresti scegliere un TTL abbastanza alto in modo che le pagine più visitate non scadano. La cosa migliore è fornire memoria sufficiente in modo che APC non debba svuotare la cache.
Basta leggere il manuale per capire come viene usato ttl: http://www.php.net/manual/en/apc.configuration.php#ini.apc.ttl
La soluzione è aumentare la memoria allocata ad APC. Fallo aumentando apc.shm_size.
Se APC viene compilato per utilizzare la memoria del segmento condivisa, il sistema operativo sarà limitato. Digita questo comando per visualizzare il limite di sistema per ciascun segmento:
sysctl -a | grep -E "shmall|shmmax"
Per assegnare più memoria dovrai aumentare il numero di segmenti con il parametro apc.shm_segments.
Se APC utilizza la memoria mmap, non hai limiti. La quantità di memoria è ancora definita dalla stessa opzione apc.shm_size.
Se non c'è memoria sufficiente sul server, utilizzare l'opzione filtri per impedire la memorizzazione nella cache dei file php a cui si accede meno frequentemente.
Ma non usare mai un TTL di 0.
Come diceva c33s, usa apc.php per controllare la tua configurazione. Copia il file dal pacchetto apc in una cartella web e punta il browser su di esso. Vedrai cosa è realmente allocato e come viene utilizzato. I grafici devono rimanere stabili dopo ore, se cambiano completamente ad ogni aggiornamento, significa che la configurazione è errata (APC sta scaricando tutto). Assegna il 20% di RAM in più rispetto a ciò che APC utilizza realmente come margine di sicurezza e controllalo regolarmente.
L'impostazione predefinita di consentire solo 32 MB è ridicolmente bassa. PHP è stato progettato quando i server erano 64 MB e la maggior parte degli script utilizzava un file php per pagina. Oggi soluzioni come Magento richiedono più di 10k file (~ 60 Mb in APC). Dovresti consentire abbastanza memoria in modo che la maggior parte dei file php siano sempre memorizzati nella cache. Non è uno spreco, è più efficiente mantenere opcode in ram piuttosto che avere il php raw corrispondente nella cache dei file. Al giorno d'oggi siamo in grado di trovare server dedicati con 24 GB di memoria a partire da $ 80 al mese, quindi non esitate a consentire diversi GB ad APC. Ho messo 2 GB su 24 GB su un server che ospita negozi 5Magento e ~ 40 siti Web wordpress, APC utilizza 1,2 GB. Conta 64 MB per l'installazione di Magento, 40 MB per un Wordpress con alcuni plugin.
Inoltre, se hai siti Web di sviluppo sullo stesso server. Escluderli dalla cache.