2009-06-27 21 views

Respuesta

15

Según APC: Runtime Configuration, "En el caso de que la memoria caché se quede sin memoria disponible, la memoria caché se borrará por completo si ttl es igual a 0. De lo contrario, si ttl es mayor que 0, APC intentará eliminar expirado entradas ".

Entonces, si hay un TTL distinto de cero, eliminará las entradas cuyo tiempo de vida haya pasado. ;) De lo contrario, eliminará todo el caché.

Me doy cuenta de que esto realmente no trata lo que sucede si la memoria caché se queda sin memoria y tiene un TTL excesivamente alto.

5

Por experiencia (lo ejecutamos en producción), si no establece un TTL o si el TTL es muy alto y no hay nada desactualizado, todo el caché se vacía (como si estuviera vacío). Realmente desea probar y evitar esto, ya que provocará un pico de carga en la próxima solicitud que PHP tiene que tratar, porque para cada archivo necesario, APC tendrá que compilarlo y almacenarlo en la memoria (que como un proceso un poco más lento que no tener un caché habilitado en absoluto). Además, si está recibiendo mucho tráfico y caché vacío, experimentará cache slam (vea google por la maldad de esto)

Como nota al margen, consulte esta presentación anterior para obtener una guía bastante aproximada de APC y cosas para ver por http://www.slideshare.net/oscon2007/os-gopal Algunas cosas pueden estar desactualizadas, pero la teoría sigue siendo cierta.

+0

El enlace ya no funciona :( – chiborg

+1

Ha actualizado el enlace por lo que debe apuntar una versión que aún funciona de las mismas diapositivas –

+0

El bloqueo de caché ya no debe ser un problema ya que APC introdujo write_lock. Http: //www.php. net/manual/es/apc.configuration.php # ini.apc.write-lock – marcovtwout

Cuestiones relacionadas