Spørgsmål og svar

Tilbage
Søgeord:  

Hvilke begrænsninger har I på ressourceforbrug i PHP?

PHP-begrænsninger

IndstillingPHP 5.6 og 7.0Maksgrænse
max_execution_time 90 300
max_input_time 90 90
memory_limit 256M 512M
max_input_vars 2500 5000
post_max_size 128M 128M
upload_max_filesize 128M 128M

Må jeg øge grænsene selv?

Kunder som har konkrete behov for at have højere grænser, har lov til at øge disse grænsene manuelt, men ikke højere end det som står i maksgrænse-kolonnen.

Ændringer af denne typen legges enkeltvis ind i .user.ini.

Eksempel

.user.ini for højere max_input_vars

max_input_vars = 3000

Filopplasting

Filopplasting er også begrænset af ModSecurity-reglene. Disse må heller ikke overskrides.


PHP og uWSGI

PHP er sat op med uWSGI basert på "emperor-vassal"-modellen. PHP for et webhotel betjenes af en vassal. Hver virtualhost starter med 1 vassal, og må køre indtil 4 vassaler samtidig. Dette gør PHP mere effektiv og begrænser samtidig hvor meget ressourcer man må bruge, og reduserer risikoen for overbelastning.


Systembegrænsninger

BeskrivelseNiveau
Max CPU-tid per prosess 60 sek
Max reel mindebrug per prosess 600 MB
Max antal prosesser per bruger 25

Overskridelse af disse grænsene vil som regel give fejlkode 500 "Internal Server Error". Grænsene må ikke uden videre fanges af PHP eller CGI selv.

I tillæg er ImageMagick begrænset til at bruge indtil ca. 500 MB på pixel- og renderingcache. Kombinationen af grænser er tilstrekkelig til at tillate import af 24 Mpx store JPEG-billeder i f.ex. WordPress, og noget større billeder hvis de er i PNG.


Hvad betyder grænsene, og hvorfor er de så?

  • CPU-tid er en rausere begrænsning end den tiden du måler på klokken, det er hvor længe prosessen (programmet) må køre med 100% CPU-brug. Grænsen er sat så højt fordi nogle vedlikeholdsprosesser i f.ex. WordPress tar lidt længere tid end vanlige websider, opptil 20-30 sekunder. Web-programvare skal aldrig bruge i nærheden af så lang tid på at servere websider.
  • Reel mindebrug er for PHP vesentlig højere end det PHP selv tror den bruger, derfor er grænsen så meget højere end det som ligger i selve PHP. Dette betyder altså ikke, at det er kurant at forsøge at utnytte dette.
  • Antal prosesser er lig antallet helt samtidige PHP-script/-program eller PHP-vassaler som kører, plus evt. ekstra programmer som PHP starter. Med f.ex. en lidt lang køretid på 5 sekunder tillader grænsen, at en webside har flere tusind vanlige besøg i timen.

Hvis et program overskrider grænsene for CPU-tid eller reel mindebrug, så er det tomt for ressourcer og afsluttes umiddelbart af operativsystemet. Prinsipielt set må PHP selv og CGI-programvare oppdage disse grænsene og håndtere det, men i praksis ser vi, at de har valgt at ignorere problemstillinger med ressourcebrug. Derfor har vi sat grænsene vesentlig højere end hvad et nettsted trenger for at fungere bra, og højere end grænsene som PHP selv setter.

Ved forsøg på at starte en 26. samtidige prosess, vil den 26. blive nektet at starte. De som allerede kører påvirkes ikke af antallsbegrænsningen.

Må jeg øge systemgrænsene?

Nej, disse er faste. Trenger du mere ressourcer, så er ikke webhotel en tilstrekkelig tjeneste for dine behov. Vurder heller dedikert server eller virtuel privat server (VPS).


Se også:

© 2024 Domeneshop AS · Om os · Vilkår · Fortrolighedspolitik