Opcache nebo APCu – vyhody/nevyhody/porovnání

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jasin755
Člen | 116
+
0
-

Zdravím,

mám několik dotazu ohledně Opcache a APCu.

Opcache:

  1. 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
  2. Jak je na tom výkonostně oproti APCu, jake má vyhody a nevýhody.
  3. Da se do Opcache cachovat metadata, dql atd..?

APCu:

  1. Opět vyhody nevýhody oproti opcache.
  2. Správná konfigurace (na opcache jsem našel hodně produkčních konfigu, ale na APCu nikoli)
  3. Co znamena APC support: Emulated ve výpisu php_info()
  4. A opět jak správně invalidovat soubory nacachované pomocí APCu

Díky za rady a tipy :)

Jan Tvrdík
Nette guru | 2595
+
+1
-

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
+
0
-

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
+
+1
-

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
+
0
-

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
+
+1
-

@jasin755 Tak věř tomu, že normálně to lidem segfault nehází. To by to nikdo nepoužíval =)

jasin755
Člen | 116
+
0
-

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
jasin755
Člen | 116
+
0
-

Ještě mě napadá. Nikde v nette jsem neviděl storage na APC.

Jan Tvrdík
Nette guru | 2595
+
0
-

Je na to PR na Githubu.

trejjam
Backer | 65
+
0
-

Koukni na OpCacheGUI, u nás vyhovuje.

jasin755
Člen | 116
+
0
-

Jaký použijí GUI je nepodstatné. Jinak nemohu najit ten PR na githubu :(