OPcache speichert dieselbe Datei für verschiedene Benutzer nur einmal im Cache.

OPcache speichert dieselbe Datei für verschiedene Benutzer nur einmal im Cache.

Gibt es eine Möglichkeit, OPcache dazu zu bringen, einen Hash zu verwenden oder ein bestimmtes Verzeichnis in jeder Domäne anzuvisieren, um use_pwd zu deaktivieren, sodass nicht immer wieder dieselben Pakete zwischengespeichert werden?

Standardmäßig hängt OPcache das Arbeitsverzeichnis an den Skriptschlüssel an, um Kollisionen zu vermeiden. Dies kann mit demopcache.use_cwdEinstellung, ist aber auf einem Server mit mehreren Websites nicht wirklich nützlich, da PHP-Konfigurationsdateien kollidieren.

Hintergrund Ich habe mehrere Symfony-, Magento 2- usw.-Anwendungen auf demselben Server laufen. Das Vendor-Verzeichnis enthält 95 % des gesamten PHP-Codes für jede dieser Anwendungen, wodurch viele, viele doppelte Dateien in OPcache entstehen.

Antwort1

Ja, aktivieren Sie in Ihrer opcache.config die folgende Option:

    ; When this directive is enabled, the OPcache appends the current working
    ; directory to the script key, thus eliminating possible collisions between
    ; files with the same name (basename). Disabling the directive improves
    ; performance, but may break existing applications.
    opcache.use_cwd=1

verwandte Informationen