Optimaal gebruik maken van Opcache

PHP: Opcache tips

Algemeen

PHP Opcache werkt als een supersnel geheugen voor je server. In plaats van dat PHP telkens opnieuw een script moet uitlezen en compileren, wordt bij PHP Opcache de kant-en-klare code één keer uitgelezen en opgeslagen in het PHP Opcache geheugen. Omdat alle aanwezige PHP-pools (verschillende websites op je server) gezamenlijk de PHP Opcache gebruiken, bespaar je enorm veel CPU rekenkracht en tijd. Dit scheelt aanmerkelijk in de laadtijd van je website.

Opcache gebruik analyseren

Huidig gebruik opvragen

Notes
Aanvragen voor dit end-point kunnen uitsluitend worden gedaan vanaf de server zelf of met een geldige gebruikersnaam/wachtwoord.
Het huidige gebruik van PHP Opcache kan je opvragen via het /lh_status/opcache endpoint. Indien je servernaam d-hpwdemo.host-ed.eu is, dan wordt de complete url: https://d-hpwdemo.host-ed.eu/lh_status/opcache . Deze pagina geeft een JSON-object terug wat er ongeveer zo uit zal zien:
  1. {
  2.   "Opcache_reset_url": "https://d-hpwdemo.host-ed.eu/lh_status/opcache/?reset",
  3.   "Memory": {
  4.     "used_mb": 75,
  5.     "free_mb": 52.9,
  6.     "wasted_mb": 0.1,
  7.     "wasted_pct": 0.1,
  8.     "total_mb": 128,
  9.     "usage_pct": 58.6
  10.   },
  11.   "Interned strings": {
  12.     "used_mb": 3,
  13.     "free_mb": 0,
  14.     "total_mb": 6,
  15.     "usage_pct": 50
  16.   },
  17.   "Scripts": {
  18.     "cached_scripts": 4296,
  19.     "max_keys": 16229,
  20.     "used_keys": 8256,
  21.     "keys_usage_pct": 50.9
  22.   },
  23.   "Restarts": {
  24.     "oom": 0,
  25.     "hash": 0,
  26.     "manual": 0,
  27.     "last_restart": "never"
  28.   },
  29.   "Hit_rate": {
  30.     "hits": 5064744388,
  31.     "misses": 4384,
  32.     "total": 5064748772,
  33.     "hit_rate": 100
  34.   }
  35. }

Aanpassing nodig?

Het lastige van deze statistieken is dat je ze moet vertalen naar een eventuele optimalisatie aanpassing. In dit geval hoef je eigenlijk alleen maar te kijken naar de Hit_rate.hit_rate. Als deze lager dan 50 is dan zal Memory.usage_pct waarschijnlijk rond de 100 staan. Dit houdt in dat wij het PHP Opcache geheugen (memory_consumption) voor je moeten verhogen. In dit geval kun je contact opnemen met onze Servicdesk.

Opcache legen

Notes
Aanvragen voor dit end-point kunnen uitsluitend worden gedaan vanaf de server zelf of met een geldige gebruikersnaam/wachtwoord combi.
Er zijn situaties waarbij je de PHP Opcache wilt legen omdat je bijvoorbeeld een update hebt gedaan aan je applicatie. Dit kan je doen door https://d-hpwdemo.host-ed.eu/lh_status/opcache/?reset aan te roepen vanaf de shell of je deployment script. Deze zou je dan bijv. met Wget- of een cURL-commando kunnen aanroepen, bijvoorbeeld:
  1. wget -O /dev/null --no-check-certificate -q https://d-hpwdemo.host-ed.eu/lh_status/opcache/?reset