Opcache nebo APCu – vyhody/nevyhody/porovnání
- jasin755
- Člen | 116
Zdravím,
mám několik dotazu ohledně Opcache a APCu.
Opcache:
- Jak správně invalidovat soubory, který jsou nacachovany v OpCache? opcache_reset se mi neosvědčil moc dobře. Pokud je nastavený fastshudown tak všechny bežící scripty padnou chybou 502
- Jak je na tom výkonostně oproti APCu, jake má vyhody a nevýhody.
- Da se do Opcache cachovat metadata, dql atd..?
APCu:
- Opět vyhody nevýhody oproti opcache.
- Správná konfigurace (na opcache jsem našel hodně produkčních konfigu, ale na APCu nikoli)
- Co znamena APC support: Emulated ve výpisu php_info()
- A opět jak správně invalidovat soubory nacachované pomocí APCu
Díky za rady a tipy :)
- Jan Tvrdík
- Nette guru | 2595
Nejsi trochu mimo? APCu je memory key-value storage. OpCache je cache pro bytekód PHP. APC je taky cache pro bytekód PHP a navíc memory key-value storage, ale není už nijak vyvíjená, protože to PHP byla začleněna Zend Opcache. APCu je APC osekané o cachování bytekódu PHP, takže zůstala jenom to key-value úložiště.
- jasin755
- Člen | 116
Tak kdybych nebyl mimo, tak se neptám ;-) Jinak tedy nejlepší varianta je mít opcache a apcu zároveň s tím, že apcu nahrazuje memcache? Pokud ano, tak teď už jen zbývá jak správně invalidovat opcache? Napadlo mě volat opcache_invalidate() nad konkrétními soubory v cyklu v post-update hooku. Je něco lepšího?
- Jan Tvrdík
- Nette guru | 2595
apcu nahrazuje memcache?
APCu je nedistribuovaná cache, takže by měla být rychlejší než memcache.
jak správně invalidovat opcache
Podle mě opcache_reset
funguje dobře. Ty spíš řešíš
atomický deploy, což je poněkud komplexnější otázka.
- jasin755
- Člen | 116
No nejsem si uplně jistý zda funguje dobře… Pokud jsem si přes nějaký tool kliknul na reset cache což vyvovalo opcache_reset (doufam). Tak mi web začal hazet 502 BadGateway par sekund… Pak už to zase jelo v pořádku. Nechal jsem opcache odstranit uplně a bylo po problému, ale není to dobré řešení opcache je super a chtěl bych ji nasadit zpět, ale toto byl opravdu problém.
Myslím si, že se možná jedná o tento bug: https://bugs.php.net/bug.php?… v logu mám taktéž:
zend_mm_heap corrupted a následně nejaky segfault, ale verzi mám
5.6.3 takže nevím…
- Jan Tvrdík
- Nette guru | 2595
@jasin755 Tak věř tomu, že normálně to lidem segfault nehází. To by to nikdo nepoužíval =)
- jasin755
- Člen | 116
Nevěděl jsem jak funguje reset, protože z oficiálnáho vyjádření hostingu potom co jsem jim napsal, že 502 dokážu 100% nasimulovat tím, že vymažu opcache, přišlo tohle:
Tazke Vy zahodite cache php skriptu a pak se divite, ze v tu samou chvili php skripty nebezi?
--
S pozdravem
Technické oddělení VSHosting