faq:admin-instanties

Zoals beschreven in onze tips voor een schaalbare website; PHP vraagt relatief veel resources per connectie. PHP handelt zijn connecties af via 'workers'. Die workers hebben standaard met PHP een geheugenlimiet, wij kunnen dit geheugenlimiet aanpassen afhankelijk van het aantal workers. Wij delen alles op in instanties die maximaal 2 GB geheugen. Dus het aantal workers keer het geheugenlimiet per worker is totaal 2 GB. Bijvoorbeeld, PHP geeft standaard 64 MB:2048/64= 32 workers De kunst is om hier een goede balans in te maken: genoeg workers om veel verzoeken af te handelen en genoeg geheugen per worker zodat PHP geen fouten geeft.

We zien vaak dat beheer-omgeviningen van CMS'en relatief veel geheugen nodig hebben. Te weinig geheugen geeft foutmeldingen. Als je het geheugen zou bijstellen tot bijvoorbeeld 512MB, houdt je maar 4 workers per PHP instantie over. Je beheeromgeving werkt dan misschien wel, maar als je meer bezoekers krijgt op je website gaat het mis. Dan kun je hetzelfde effect krijgen als met brakke mysql queries; je houdt geen workers meer over voor je bezoekers en die zien dan een foutmelding “502 proxy error”. Dit ligt niet aan de frontproxy maar het komt doordat de proxy zijn request niet meer kwijt kan bij de backend. Alle workers zijn bezet en kunnen geen nieuwe requests meer aan.

In het algemeen heeft een bezoeker op je PHP site niet zoveel geheugen nodig per worker, dus voor de bezoekers wil je het liefste een balans met meer workers en minder geheugen. Wij kunnen voor het beheren van een CMS een apparte php instantie inrichten met relatief veel geheugen en weinig workers. Alle verzoeken /admin op je site worden dan door die instantie afgehandeld. Voor de security is het dan vaak ook een goed idee om iets te doen met IP whitelisting of extra authenticatie d.m.v. digests in te stellen.

  • faq/admin-instanties.txt
  • Last modified: 2020/05/20 05:30
  • (external edit)