Skip to content

Instantly share code, notes, and snippets.

@nevergone
Created July 7, 2012 10:41
Show Gist options
  • Save nevergone/3065812 to your computer and use it in GitHub Desktop.
Save nevergone/3065812 to your computer and use it in GitHub Desktop.
PHP APC konfiguráció
extension = apc.so
apc.shm_segments = 1
apc.shm_size = 256
apc.optimization = 0
apc.num_files_hint = 2048
apc.ttl = 3600
apc.user_ttl = 3600
apc.enable_cli = 1
apc.max_file_size = 1M
apc.rfc1867 = 1
apc.shm_size = 64
apc.stat = 0
apc.shm_size = 64M
@alippai
Copy link

alippai commented Jul 7, 2012

Látom sikerült 3 helyről összemásolni :)
apc.stat-ot nem kapcsolhatod ki fejlesztéshez, sőt, úgy általában nem érdemes, túl sok a mellékhatás.
3x definiálod az shm_sizeot - 96M érték kb bármilyen Drupalhoz jó, nem kell 256 (valószínűleg 64M is elég, a fragmentációt kell figyelned, mégpedig production használat közben)
A többivel nem biztos, hogy baja kéne, hogy legyen, de ha fejlesztéshez használod, felesleges a user_ttl és a ttl beállítása, 0 érték jó neki (miért ürítenéd idővel a cachet, lehet hogy arra a 2MB memóriára szükséged van? kétlem, nincs több 100 siteod). A optimization és max_file_size is felesleges, mert ezek a default értékek.

@nevergone
Copy link
Author

Oké, az shm_size -t valóban benéztem, mondjuk most próbálom belőni, éles tárhelyre lesz, nem fejlesztéshez. :)

@alippai
Copy link

alippai commented Jul 7, 2012

Hát, ha sok a user/site akkor a ttl-eket visszakapcsolhatod, a többire érvényes marad amit mondtam.
Éles siteon Drupal telepítés? ;)

@nevergone
Copy link
Author

A tárhely éles, amúgy pedig miért ne, védett helyen van. :)

@alippai
Copy link

alippai commented Jul 7, 2012

Megoldódott a stat kikapcsolással?

@alippai
Copy link

alippai commented Jul 7, 2012

(pontosabban bekapcsolással)

@nevergone
Copy link
Author

Igen, végül ez lett, így működik:

extension = apc.so
apc.shm_segments = 1
apc.num_files_hint = 2048
apc.ttl = 3600
apc.user_ttl = 3600
apc.rfc1867 = 1
apc.stat = 1
apc.shm_size = 64M

Kösz a segítséget! :)

@tgr
Copy link

tgr commented Jul 8, 2012

32M fölötti shm_size-nak shm_segments=1 mellett szerintem csak akkor van értelme, ha megnöveled a kernel szegmensméretét, ami alapból 32M szokott lenni. A stat kikapcsolásával elvileg működőképesnek kell maradnia, csak kézzel kell ürítened a cache-t, ahányszor módosítod a kódot. (Mondjuk ha valami trükkös dinamikusan generált fájlt futtatna a Drupal, az lehet, hogy behal tőle...)

@alippai
Copy link

alippai commented Jul 8, 2012

Ez érdekes. Megnéztem és 3 szerverből kettőn tényleg nem felejtettem el átállítani, de az egyik tesztszerveremen az alap 32MB maradt. Ennek ellenére az apc.php azt mutatja, hogy 50MB-ot használ az az egy db user/site egy szegmensen. Ennek utánaolvasok. :)

A stat bekapcsolása azért fontos az installáláshoz, mert php fájlokat generál/módosít. A Drupal 7 egyébként felinstallálva elvileg fut stat=0-val is.
A fájlok módosításán kívül még úgy emlékszem arra is figyelni kell, hogy a fájlneveket az includeoknál abszolút útvonalként adjuk meg, mert aszerint cachel.

@nevergone
Copy link
Author

tgr: ha az shm_size = 64M, akkor mi az ajánlott értéke az shm_segments-nek?

@tgr
Copy link

tgr commented Jul 16, 2012

Szerintem 2, de az a biztos, ha kiteszteled. Pl. ha mmap támogatással van fordítva az APC, akkor nem használ egynél több szegmenst, akármit is állítasz be.

@nevergone
Copy link
Author

Jelenleg ezzel megy és ugyanúgy „warning: require_once(): Unable to allocate memory for pool.”

extension = apc.so
apc.mmap_file_mask = /tmp/apc.XXXXXX
apc.num_files_hint = 2048
apc.ttl = 3600
apc.user_ttl = 3600
apc.rfc1867 = 1
apc.stat = 1
apc.shm_size = 96M

@tgr
Copy link

tgr commented Jul 19, 2012

@nevergone
Copy link
Author

Ez egy jó tanács, egyelőre adtam 256 megát az APC-nek, addig sem parse-ol az interpreter. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment