2010-08-25 20 views
17

ecco un link per come la mia APC è in esecuzione: [removed]Ottimizzare APC Caching

Come si può vedere, si riempie abbastanza rapidamente e il mio cache Conte completa va oltre 1000 volte

miei usi del sito web Wordpress.

Ho notato che ogni volta che faccio un nuovo post o modifica un post, succedono 2 cose.

1) APC memoria "usato" reset 2) ho un sacco di frammenti

ho provato dando più memoria per APC (512 mb), ma poi si blocca a volte, sembra che 384 è meglio . Ho anche un processo Cron che riavvia Apache, cancellando tutto l'APC dei frammenti e utilizzato la memoria ogni 4 ore. Ancora una volta, il mio apache si arresta in modo anomalo se APC è in esecuzione per un lungo periodo di tempo, penso a causa dell'accumulo di frammenti.

Devo utilizzare l'apc.Filtri e filtrare alcune cose che non dovrebbero essere memorizzate nella cache?

Sono davvero un principiante in questo genere di cose, quindi se qualcuno può spiegare con le istruzioni complete, Grazie mille !!!

risposta

10

L'APC ttl dovrebbe occuparsi della creazione di frammenti. Io di solito pongono al 7200. Sono in esecuzione su una piccola VPS con WordPress e le mie impostazioni sono:

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 

Si riceverà anche molto più beneficio da esso, utilizzando del costruito in cache degli oggetti e Mark Jaquith scritto WordPress un ottimo drop in plugin che dovrebbe anche aiutare con alcuni dei problemi di frammentazione durante il salvataggio o la modifica di un post.

41

lavoro come sistemi Linux Admin, il server wordpress gestisce 5 diversi WordPress installato. Se ne stai eseguendo solo uno, commenterò le configurazioni da considerare.

versioni APC/PHP, 3.1.9/5.3.7

Ecco la mia 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, la configurazione non è ottimale in pochi aspetti.

1. apc.shm_segments = 3

Se si esegue un moderno Linux Distro, il tuo SHM dovrebbero essere abbastanza sufficiantly grande. Se è troppo piccola la ricerca su come impostare le voci sysctl.conf, è possibile controllare come questo.

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

Eccezione durante l'esecuzione su alcuni BSD di Unix, o altri di, o host gestiti che non controlli. Vi sono degli svantaggi nel non avere un segmento contiguo, leggere i dettagli di APC per tali informazioni.

2. apc.enable_cli = 1

male male male, questo è solo per il debug! Ogni volta che esegui php-cli, cancella la cache APC.

3. apc.max_file_size = 10M

inutile e ridicolo! Se avessi un file così grande, mangerebbe 1/3 di quel piccolo 32M SHM. Anche se specifichi 3, non si comportano come un grande segmento in tre pezzi. Regardless WP non ha nemmeno singoli file PHP vicini a quella dimensione.

'spero di aver aiutato le persone con il loro apc.conf.

+1

sì, hai aiutato! – markus

+1

@TechZilla, sto usando il framework Yii e si avvale pesantemente del carico lazy delle classi, quindi dovrei abilitare apc.lazy_classes e apc.lazy_functions, può influire su qualcos'altro? –

+2

@Uday Sawant: il caricamento lento per APC è diverso dal caricamento lento nel framework Yii. Yii è stato scritto specificamente in modo "pigro", mentre con APC si tratta di caricare "pigro" in generale. Essenzialmente con Yii, manterrei comunque quelle decelerazioni come "0". È probabile che il caricamento manuale "pigro" funzioni al meglio senza interferenze esterne. Voglio anche menzionare che le decelerazioni APC sono ancora abbastanza recenti e richiedono più test/statistiche/maturità prima di prendere in considerazione l'impostazione "1". – TechZilla