PHP-begrænsninger
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
Beskrivelse | Niveau |
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).