2010-08-25 11 views
17

aquí hay un enlace a cómo mi APC se está ejecutando:Optimizar APC almacenamiento en caché

Como se puede ver, se llena muy rápidamente y mi caché Full Count va más de 1000 veces

Mi página web utiliza [removed] Wordpress.

Observo que cada vez que hago una nueva publicación o edito una publicación, suceden 2 cosas.

1) APC memoria restablece "usado" 2) que reciben una gran cantidad de fragmentos

he intentado dar más memoria a APC (512 mb), pero luego se bloquea a veces, parece que 384 es el mejor . También tengo un trabajo de Cron que reinicia apache, borrando todos los APC de fragmentos y la memoria utilizada, cada 4 horas. Una vez más, mi apache se bloquea si APC se está ejecutando durante un largo período de tiempo, creo que debido a la acumulación de fragmentos.

¿Debo usar los filtros de la APC y filtrar algunas cosas que no deberían almacenarse en caché?

Soy realmente un principiante en este tipo de cosas, así que si alguien puede explicar con instrucciones completas, ¡¡¡Muchas gracias !!!

Respuesta

10

El APC ttl debe encargarse de la acumulación de fragmentos. Por lo general lo sitúan en 7200. Estoy funcionando en un pequeño VPS con WordPress y mis valores son:

apc.enabled=1 
apc.shm_segments=3 
apc.shm_size=32 
apc.ttl=7200 
apc.user_ttl=7200 
apc.num_files_hint=2048 
apc.mmap_file_mask=/tmp/apc.XXXXXX 
apc.enable_cli=1 
apc.max_file_size=10M 

también puede obtener mucho más beneficio de ella mediante el uso de construido en memoria caché de objetos y Mark Jaquith escribió WordPress un muy buen drop in plugin que también debería ayudar con algunos de sus problemas de fragmentación al guardar o editar una publicación.

41

trabajo como un administrador de sistemas Linux, el servidor ejecuta wordpress WordPress 5 diferentes instala. Si está ejecutando solo uno, comentaré las configuraciones a considerar.

Versiones APC/PHP, 3.1.9/5.3.7

Aquí está mi completa apc.conf,

apc.enabled=1 
apc.shm_segments=1 

; I would try 32M per WP install, go from there 
apc.shm_size=128M 

; Relative to approx cached PHP files, 
apc.num_files_hint=512 

; Relative to approx WP size W/ APC Object Cache Backend, 
apc.user_entries_hint=4096 

apc.ttl=7200 
apc.use_request_time=1 
apc.user_ttl=7200 
apc.gc_ttl=3600 
apc.cache_by_default=1 
apc.filters 
apc.mmap_file_mask=/tmp/apc.XXXXXX 
apc.file_update_protection=2 
apc.enable_cli=0 
apc.max_file_size=2M 

;This should be used when you are finished with PHP file changes. 
;As you must clear the APC cache to recompile already cached files. 
;If you are still developing, set this to 1. 
apc.stat=0 

apc.stat_ctime=0 
apc.canonicalize=1 
apc.write_lock=1 
apc.report_autofilter=0 
apc.rfc1867=0 
apc.rfc1867_prefix =upload_ 
apc.rfc1867_name=APC_UPLOAD_PROGRESS 
apc.rfc1867_freq=0 
apc.rfc1867_ttl=3600 

;This MUST be 0, WP can have errors otherwise! 
apc.include_once_override=0 

apc.lazy_classes=0 
apc.lazy_functions=0 
apc.coredump_unmap=0 
apc.file_md5=0 
apc.preload_path 

@Chris_O, su configuración no es óptima en algunos aspectos.

1. apc.shm_segments = 3

Si ejecuta una moderna distribución de Linux, su SHM debe ser lo suficientemente grande sufficiantly. Si es demasiado pequeño, busque cómo configurar las entradas de sysctl.conf, puede marcarlo de esta manera.

#Check Max Segment size 
cat /proc/sys/kernel/shmmax 

excepción cuando se ejecuta en algunos de BSD Unix, u otros de o hosts administrados que no controla. Hay desventajas al no tener un segmento contiguo, lea los detalles de APC para esa información.

2. apc.enable_cli = 1

malo, malo, malo, esto es sólo para depuración! Cada vez que ejecuta php-cli, borra la memoria caché de APC.

3. apc.max_file_size = 10M

innecesario y ridículo! Si tuviera un archivo tan grande, comería 1/3 de ese pequeño SHM de 32M. Aunque especifique 3, no solo actúan como un gran segmento en tres partes. Independientemente de WP, ni siquiera tiene archivos PHP individuales, incluso cerca de ese tamaño.

'Espero haber ayudado a las personas con su apc.conf.

+1

sí, ayudaste! – markus

+1

@TechZilla, estoy usando Yii framework y hace uso de la carga lenta de clases, así que si habilito apc.lazy_classes y apc.lazy_functions, ¿puede afectar a algo más? –

+2

@Uday Sawant: la carga diferida para APC es diferente de la carga diferida en el marco Yii. Yii fue escrito específicamente de la manera "floja", mientras que con APC se trata de cargar "perezoso" en general. Especialmente con Yii, aún mantendría esas desaceleraciones como '0'. Es probable que la carga manual "floja" funcione mejor sin interferencia externa. También quiero mencionar que las desaceleraciones de APC todavía son bastante nuevas y necesitan más pruebas/estadísticas/madurez antes de considerar establecer '1'. – TechZilla

Cuestiones relacionadas