Frågor och svar

Tillbaka
Sökord:  

Hvilke begrensninger har dere på ressursbruken i PHP?

Nedan finns en tabell över aktuella resursgränser i PHP, och vilka maxvärden vi tillåter.

Observera att om du ställer in värden högre än de angivna maxvärdena har ingen effekt.

PHP-begränsningar

Miljö Standardvärde Maxgräns
max_execution_time 90 300
max_input_time 90 90
minnesgräns 256 M 512M
max_input_wars 2500 5 000
post_max_size 128M 128M
upload_max_filesize 128M 128M

Kan jag höja gränserna själv?

Kunder som har specifika behov av att ha högre gränser får höja dessa gränser manuellt, men inte högre än vad som står i maxgränskolumnen.

Ändringar av denna typ läggs in individuellt i en fil med namnet .user.ini , som du placerar i dokumentroten för det aktuella webbhotellet (vanligtvis www ).

Exempel

.user.ini för högre max_input_vars och max_execution_time :

 max_execution_time = 90 max_input_vars = 2500

Filuppladdning

Filuppladdningar är också begränsade av ModSecurity- regler. Dessa kan inte heller överskridas.


PHP och uWSGI

PHP är konfigurerat med uWSGI baserat på "kejsar-vasall"-modellen. PHP för ett webbhotell betjänas av en vasall. Varje virtuell värd börjar med 1 vasall och kan köra upp till 4 vasaller samtidigt. Detta gör PHP mer effektivt och begränsar samtidigt mängden resurser som kan användas, vilket minskar risken för överbelastning.


Systembegränsningar

Beskrivning Nivå
Max CPU-tid per process 60 sek
Max verklig minnesanvändning per process 600 MB
Max antal processer per användare 25

Att överskrida dessa gränser kommer vanligtvis att resultera i felkod 500 "Internt serverfel". Gränserna kan inte enkelt fångas av PHP eller CGI själva.

Dessutom är ImageMagick begränsad till att använda upp till ca. 500 MB på pixel och renderingscache. Kombinationen av gränser är tillräcklig för att tillåta import av 24 Mpx stora JPEG-bilder i t.ex. WordPress, och lite större bilder om de är i PNG.


Vad betyder gränserna och varför är de så?

  • CPU-tid är en generösare begränsning än tiden man mäter på klockan, det är hur länge processen (programmet) kan köras med 100% CPU-användning. Gränsen är satt så högt eftersom vissa underhållsprocesser i t.ex. WordPress tar lite längre tid än vanliga webbplatser, upp till 20-30 sekunder. Webbprogramvara bör aldrig spendera i närheten av så långa webbsidor.
  • Den verkliga minnesanvändningen för PHP är betydligt högre än vad PHP själva tror sig använda, varför gränsen är så mycket högre än vad som finns i själva PHP. Det betyder inte att det inte är klokt att försöka utnyttja detta.
  • Antalet processer är lika med antalet helt samtidiga PHP-skript/program eller PHP-vasaller som körs, plus eventuella ytterligare program som PHP startar. Med t.ex. en något lång körtid på 5 sekunder tillåter gränsen för en webbsida att ha flera tusen regelbundna besök per timme.

Om ett program överskrider gränserna för CPU-tid eller verklig minnesanvändning, tar det slut på resurser och avslutas omedelbart av operativsystemet. I princip kan PHP själv och CGI-mjukvaran upptäcka dessa gränser och hantera det, men i praktiken ser vi att de har valt att ignorera problem med resursanvändning. Därför har vi satt gränserna betydligt högre än vad en webbplats behöver för att fungera bra, och högre än de gränser som PHP själv sätter.

När man försöker starta en 26:e samtidig process, kommer den 26:e att nekas att starta. De som redan kör bil berörs inte av nummerbegränsningen.

Kan jag öka systemgränserna?

Nej, dessa är fixade. Om du behöver mer resurser är webbhotell inte en tillräcklig tjänst för dina behov. Överväg dedikerad server eller virtuell privat server (VPS) istället.


Se även:

© 2024 Domeneshop AS · Om oss · Villkor · Dataskydd