Serverbeperkingen Bij hosting bepaal je specifiek hoeveel bestanden en processen je services tegelijkertijd open mogen houden en daarmee bepaal je de latentie, foutmeldingen en beschikbaarheid. Ik zal u stap voor stap laten zien hoe u bestands- en proceslimieten kunt meten, aanpassen en bewaken, zodat webservers soepel draaien, zelfs onder belasting. betrouwbare werken.
Centrale punten
- Zacht/Hard Grenzen begrijpen en ze op de juiste manier stellen
- nofile (bestanden) en nproc (processen) gerichte verhoging
- PHP-FPM en wachtrijen correct configureren
- Controle en knelpunten herkennen
- Beveiliging met redelijke bovengrenzen
Ulimieten kort uitgelegd: Zacht vs. hard
Ik gebruik Ulimits om betrouwbare gegevens per gebruiker of proces te verkrijgen. Grenzen voor bronnen. Zachte limieten zijn de huidige, veranderlijke limieten, die ik kan verhogen tot de harde limiet als de applicatie op korte termijn meer bewegingsruimte nodig heeft. De harde limieten vertegenwoordigen de absolute bovengrens en voorkomen ongecontroleerde groei van individuele diensten, wat de hele host zou aantasten. Standaard verwijst het ulimit commando naar de harde limiet zonder een schakelaar, wat aanpassingen makkelijker maakt voor beheerders met rechten. Dit voorkomt dat een enkel script de server overbelast met te veel bestanden of processen. overbelast.
Ik maak altijd onderscheid tussen de belangrijkste parameters zoals nofile (bestanden openen), nproc (processen/threads), fsize (bestandsgrootte), stack (stapelgrootte) en cpu (CPU-tijd). Vooral webstacks met PHP-, database- en cachecomponenten hebben vaak aanzienlijk meer open descriptors nodig dan de minimale standaardwaarden. Zonder de juiste limieten stapelen meldingen als „te veel open bestanden“, lange responstijden of time-outs voor aanvragen zich op. Ik meet eerst het werkelijke gebruik, verhoog de limieten geleidelijk en controleer dan latency, error counters en throughput. Zo zorg ik voor consistente prestaties onder hoge toegangsniveaus. Reactietijden.
Waarom limieten cruciaal zijn bij hosting
Hostingomgevingen delen hardwareresources, dus ik gebruik de juiste limieten om oneerlijke toegang tot resources door individuele accounts of services te voorkomen en houd de Prestaties stabiel. In instappakketten zijn bijvoorbeeld gelijktijdige CGI/PHP processen en de CPU tijd per gebruiker beperkt zodat een foutieve cron job niet de hele host vertraagt. In hogere plannen kunnen meer processen draaien en kan meer RAM worden gebruikt, wat ten goede komt aan veeleisende toepassingen zoals shops. Ik evalueer altijd het aantal processen, RAM per proces en CPU-tijd samen zodat er geen kunstmatige knelpunten overblijven. Ik geef een gedetailleerd praktisch kader voor eerlijke bronnen in het artikel over Limieten voor gedeelde hosting, die de verbanden compact uitlegt organiseert.
De bestand descriptorlimiet is kritisch omdat elk open bestand, elke socket en elke pijp een descriptor bindt. Standaardwaarden van 1024 zijn vaak te klein voor moderne webapplicaties, vooral wanneer er veel gelijktijdige verbindingen zijn. Ik lees daarom eerst echte pieken uit logs en tools voordat ik de waarden verhoog, zodat ik de effecten op kerneltabellen en geheugendruk ken. Hierdoor kan ik de doorvoer verhogen zonder de veiligheid en reactiesnelheid van de host in gevaar te brengen. Als je het principe begrijpt, voorkom je willekeurige storingen door te krappe Belemmeringen.
De belangrijkste parameters in het dagelijks leven: nofile, nproc en co.
Voor web-gerelateerde werklasten nofile bovenaan omdat HTTP-verbindingen, upstream sockets en databaseverbindingen enorme hoeveelheden descriptors verbruiken. Ik plan buffers voor piekbelastingen, bijvoorbeeld twee tot vier keer de typische piek, zodat korte golven van verkeer niet meteen tot fouten leiden. Voor werkergebaseerde diensten schaal ik nofile parallel met het aantal werkers en hun maximale verbindingen. Als er een CDN, reverse proxy of berichtenlaag wordt toegevoegd, neemt de vraag weer toe, waarmee ik rekening houd in de berekening. Alleen met een schone buffer verdwijnen sporadische „open bestand“ fouten en de Foutenpercentage afneemt.
Op nproc-Ik beschouw processen en threads samen omdat sommige runtimes threadpools gebruiken die meetellen voor de bovenlimiet. Ik controleer spawnstrategieën van webservers, app-servers en de database zodat de bovenlimiet niet ongemerkt in werking treedt en nieuwe workers blokkeert. Als de nproc-waarden te laag zijn, manifesteert dit zich vaak als trage start van services of wachtrijen die niet verwerkt worden. Ik verhoog de limiet zodat deze overeenkomt met het aantal CPU cores, de IO belasting en de architectuur van de applicatie. Dit houdt het spawnproces voorspelbaar en voorkomt starre Verstoppingen.
Ulimieten controleren: zo lees ik de realiteit
Ik begin elke optimalisatie met zichtbaarheid, want zonder cijfers blijven maatregelen blind. Het commando ulimit -a laat me de huidige limieten van de shellsessie zien en vormt zo de basis voor vergelijkingen met serviceconfiguraties. Ik controleer nofile en nproc apart omdat deze waarden als eerste hun limieten bereiken bij hosting. Ik gebruik ook lsof, ss of netstat om open bestanden en sockets per proces te tellen. Pas als ik de piek onder productiebelasting weet, plan ik buffers en voeg ik ze toe aan de Grenswaarden in.
# Alle limieten van een sessie
ulimit -a
# Bestandsdescriptors (zacht/hard)
ulimit -n
ulimit -Hn
# Processen/threads per gebruiker
ulimit -u
ulimit -Hu
Voor services die systemd start, kijk ik niet alleen naar mijn interactieve shell, want systemd stelt zijn eigen Grenzen. Daarom vergelijk ik de effectieve waarden van een draaiend proces via /proc//limits om inconsistenties tussen de shell en de service bloot te leggen. Afwijkingen duiden op ontbrekende instellingen in unit-bestanden, die ik dan direct toevoeg. Deze vergelijking bespaart me een hoop gepuzzel over waarom een app geen extra bestanden mag openen ondanks hogere shell limieten. Hierdoor kan ik snel hiaten in de configuratie vinden en zorgen voor consistente Frame.
Tijdelijk aanpassen: snelle tests in lopende sessies
Voordat ik permanent limieten instel, test ik specifiek hogere limieten in een shell. Waarden. Hierdoor kan ik zonder opnieuw op te starten zien of de applicatie meer verbindingen accepteert zoals verwacht of dat de latency afneemt. De verhoogde waarden gelden in deze sessie totdat ik hem afsluit of de service opnieuw start. Ik documenteer het effect op syslog, error logs en metrics zodat latere permanente aanpassingen goed onderbouwd zijn. Korte tests besparen me grote rollbacks en leveren betrouwbare resultaten op. Ontvangsten.
# Tijdelijk in de huidige shell
ulimit -n 65536 # Verhoog bestandsdescriptors
ulimit -u 4096 # Verhoog proces-/threadlimiet
# Expliciet harde limieten controleren/aanpassen (root)
ulimit -Hn 131072
ulimit -Hu 8192
Ik voer dergelijke tests uit op momenten van geplande belastingspieken om de echte effecten te analyseren. Zie. Als de „te veel open bestanden“ fouten stoppen en het aantal aanvragen per seconde toeneemt, registreer ik de gemeten waarden. Als de impact laag blijft, zoek ik naar parallelle remmen zoals socket backlogs die te smal zijn, worker limits in de webserver of database connection pools. Pas als de hele keten schaalt, loont een hogere ulimit-server. Zo voorkom ik deeloptimalisaties die uiteindelijk geen merkbaar effect hebben. Verbetering brengen.
Permanent configureren: limits.conf en systemd
Voor permanente waarden bewerk ik /etc/security/limits.conf en voeg gebruikers- of dienstspecifieke waarden toe. Lijnen. Ik maak onderscheid tussen zachte en harde limieten zodat applicaties op korte termijn zeer elastisch blijven maar toch een duidelijke bovengrens hebben. Voor systemd services stel ik ook LimitNOFILE en LimitNPROC in, omdat anders unit bestanden veranderingen in de shell overschrijven. Na het aanpassen herlaad ik systemd en herstart ik de betrokken services zodat de nieuwe limieten van kracht worden. Het herstarten is belangrijk, anders blijven processen in de oude Framewaarden.
# /etc/security/limits.conf (voorbeeld)
* zacht nofile 65536
* hard nofile 131072
www-data zacht nproc 4096
www-data hard nproc 8192
# systemd eenheid (bijv. /etc/system/system/nginx.service.d/limits.conf)
[Service]
LimitNOFILE=65536
LimietNPROC=4096
# Wijzigingen activeren
systemctl daemon-reload
systemctl herstart nginx
| Context | Plaats | Geldigheid | Typisch |
|---|---|---|---|
| Interactieve sessie | ulimit in Shell | Alleen huidige shell/kinderen | Snelle tests |
| Systeembrede gebruiker | /etc/security/limits.conf | Aanmeldings-/PAM-gebaseerde processen | Duurzame basis |
| Diensten (systemd) | Eenheidsbestand: LimitNOFILE/LimitNPROC | Alleen getroffen service | Duidelijke servicegrenzen |
Systeemwijde kernellimieten correct categoriseren
Naast proces- en gebruikersgerelateerde ulimieten zijn er systeembrede limieten die ik altijd controleer. Zelfs een hoge nofile is nutteloos als de kernel de globale bestandsdescriptortabel kort houdt. Daarom controleer ik fs.file-max (totaal aantal mogelijke open FD's) en fs.nr_open (maximaal aantal toegestane FD's per proces op kernel niveau). Als deze waarden niet overeenkomen, bereik ik de limieten vroegtijdig ondanks het verhogen van de ulimits.
# Controleer systeembrede limieten
cat /proc/sys/fs/file-max
cat /proc/sys/fs/nr_open
cat /proc/sys/fs/file-nr # In-gebruik, Vrij, Max
# Tijdelijk verhoogd (tot reboot)
sysctl fs.bestand-max=2097152
# Permanent (in /etc/sysctl.d/99-ulimits.conf)
fs.bestand-max = 2097152
Ik let op de cascade: Proceslimiet (RLIMIT_NOFILE) ≤ fs.nr_open ≤ fs.file-max (global). Als nofile is ingesteld via fs.nr_open, negeert de kernel het verzoek stilletjes. Ik dimensioneer globaal overeenkomstig, daarna per dienst. Voor het accepteren van backlogs, schaal ik bovendien net.core.somaxconn en de backlog parameters van de respectievelijke diensten, anders zullen inkomende verbindingen blijven verhongeren in de wachtrij.
systemd eenheden: TakenMax, PIDsMax en StandaardLimieten
Op moderne distributies beperkt systemd niet alleen descriptors, maar ook het aantal taken (processen/threads) per service via TakenMax. Ik stel de juiste waarden in voor hoge concurrency setups of gebruik „infinity“ bij het overdragen van de controle naar nproc. Voor gebruikersservices [email protected] respectievelijk system.conf met DefaultLimit* schakelaars om de basislijnwaarden consistent te verhogen.
# Service drop-in voor meer taken en FD
mkdir -p /etc/system/php-fpm.service.d
cat < /etc/system/system/php-fpm.service.d/limits.conf
[Service]
LimitNOFILE=131072
LimietNPROC=8192
TakenMax=16384
EOF
systemctl daemon-reload
systemctl herstart php-fpm
# Systeemwijde standaardinstellingen (voorzichtig gebruiken)
# /etc/system/system.conf
StandaardlimietNOFILE=65536
StandaardlimietNPROC=4096
StandaardTakenMax=8192
Belangrijk: sudo, su en SSH logins erven limieten anders. Voor PAM-gebaseerde logins is /etc/security/limits.conf van kracht, maar vaak niet voor niet-login shells of cronjobs. Ik test daarom altijd het volledige pad waarlangs mijn service start, zodat er geen stille afwijkingen overblijven.
Webservers schalen met Ulimits
Met NGINX koppel ik worker_processes, worker_connections en worker_rlimit_nofile met de systeembrede limieten. Vuistregel: Maximale gelijktijdige verbindingen ≈ worker_processes × worker_connections, plus reserve voor upstreams, logs en interne pijpen. Zonder een verhoogde worker_rlimit_nofile, loopt NGINX vroeg in EMFILE ondanks hoge ulimits.
# NGINX voorbeeld (uittreksel)
worker_processes auto;
gebeurtenissen {
worker_connections 40960;
multi_accept aan;
gebruik epoll;
}
worker_rlimit_nofile 131072;
Met Apache (MPM event) let ik op ServerLimit, ThreadsPerChild en MaxRequestWorkers. Als het totaal aantal mogelijke verbindingen toeneemt, moet nofile parallel groeien. Anders lopen de wachtrijen vol, ook al hebben de CPU en het RAM nog ruimte over. Ik pas ook de listen backlogs aan (bijvoorbeeld voor NGINX: listen ... backlog=...) en kernel-somaxconn zodat nieuwe acceptaties niet worden gedropt.
Databases en caches: budget open bestanden correct
Databases en caches hebben hun eigen schroeven: Gebruik MySQL/MariaDB open_bestanden_limiet en verbindingsparameters, PostgreSQL profiteert van connectiepooling vooraf, terwijl Redis het aantal clients direct vertaalt in open FD's. Ik zorg ervoor dat de respectievelijke services een nofile tegenkomen die boven hun interne maximumwaarden ligt. Anders zullen opstarten of belastingpieken mislukken, ook al is de applicatielaag geschaald.
Een typisch patroon: PHP-FPM verhoogt het parallellisme, maar de DB-server blijft op oude FD-limieten en verbindingslimieten. Ik meet open handles per component en voeg de buffers toe. Dit voorkomt dat een downstream service de algehele prestaties ondermijnt.
Containers en orkestratie: Ulimieten in de Docker/Kubernetes-context
Ulimieten werken in containers ongeacht de host login context. Ik stel ze expliciet in bij het opstarten of in de orkestratie en observeer ook cgroups limieten (PIDs, geheugen). In de Docker-omgeving definieer ik nofile/nproc en optioneel een PIDs-limiet. Kubernetes kapselt dit in via SecurityContext en RuntimeClass-specifieke opties; afhankelijk van de omgeving moeten Ulimits worden ingesteld via Container Runtime.
# Docker lokaal
docker run --ulimit nofile=131072:131072 \
--ulimit nproc=8192:8192 \
-pids-limit 20000
--naam webapp -p 80:80 myimage:latest
# Docker Compose (uittreksel)
services:
app:
image: myimage:latest
ulimieten:
nofile:
zacht: 65536
hard: 131072
nproc: 8192
pidslimiet: 20000
Ik controleer altijd limieten in de container via /proc/self/limits en zorg ervoor dat hostaanpassingen zoals limits.conf niet automatisch in containerprocessen terechtkomen. Ik creëer transparantie met duidelijke, versie-gecontroleerde implementatieparameters voor elke dienst.
Problemen oplossen in de praktijk: EMFILE, EAGAIN en langzame spawns
Voor reproduceerbare analyses gebruik ik strace en zoek naar EMFILE („Too many open files“) of EAGAIN („Resource temporarily unavailable“) voor accept(), open(), pipe() of clone(). Ik tel regelmatig FD's per proces en vergelijk ze met de ingestelde limieten. Lekken in bestandshandvatten (bijvoorbeeld vergeten Close() aanroepen) kunnen op deze manier sneller worden herkend.
# Open FD's per proces bepalen
ls -l /proc//fd | wc -l
# Systeemwijd gebruik in een oogopslag
cat /proc/sys/fs/file-nr
# trim strace voor FD-fouten
strace -fp -e trace=desc,process,network 2>&1 | grep -E 'EMFILE|EAGAIN'.'
Opstartproblemen veroorzaakt door te krappe nproc-limieten worden onthuld door langzaam opstarten, „can't fork“ berichten of incomplete worker pools. Ik correleer deze gebeurtenissen met spawn-strategieën (pre-fork, dynamisch, on-demand) zodat aanpassingen niet alleen de symptomen verlichten maar ook de architectuur ondersteunen.
Automatisering, tests en rollback
Ik houd grenswijzigingen reproduceerbaar: ik onderhoud drop-ins voor systemd, sysctl.d bestanden en service templates declaratief. Elke verandering krijgt een ticket, gemeten waarden voor/na en een duidelijke rollback. In staging simuleer ik het gebruik met tools als wrk, vegeta of k6 en let ik op P95/P99 latencies, foutpercentages en wachtrijtijden. Alleen betrouwbare resultaten rechtvaardigen een uitbreiding naar productie.
# Maak drop-in steigers voor meerdere diensten
voor s in nginx php-fpm redis; doe
mkdir -p /etc/system/system/$s.service.d
cat < /etc/system/system/$s.service.d/limits.conf
[Service]
LimitNOFILE=65536
LimietNPROC=4096
TakenMax=8192
EOF
gedaan
systemctl daemon-reload
systemctl herstart nginx php-fpm redis
Voor campagnes stel ik de limieten op een gecontroleerde manier bij, noteer de start/eindtijd en vergelijk deze met de verkeerscurves. Na de piek herintroduceer ik de conservatievere waarden om het aanvalsoppervlak te minimaliseren en ongebruikte kernelbronnen vrij te maken.
Risico op verwarring: Ulimieten vs. watcher/kernelparameters
Niet elke „te veel bestanden“ fout wordt veroorzaakt door nofile. Bestandssysteem watchers (inotify) hebben hun eigen limieten (bijv. max_user_watches), die snel bereikt worden met veel kleine bestanden of ontwikkelingsstacks. vm.max_map_count (bijvoorbeeld voor zoekmachines) of net.ip_local_port_range (efemere poorten) kunnen ook als beperkende factoren werken. Ik controleer zulke parameters apart zodat ik niet aan de verkeerde knop draai.
PHP-FPM correct dimensioneren: Processen, wachtrijen, limieten
Met PHP-FPM coördineer ik pm.max_children, pm.max_requests en de ulimit-limieten zodat processtart, geheugen en Verbindingen gebalanceerd blijven. Wanneer FPM zijn bovenlimiet bereikt, komen verzoeken in een wachtrij terecht; dit is opzettelijk, maar heeft alleen zin als de webserver timeouts en backoff goed afhandelt. Ik meet de gemiddelde uitvoeringstijd en gebruik dit om een haalbaar procesnummer af te leiden dat de CPU en het RAM niet overbelast. Ik pas ook de bestandsdescriptorlimiet aan zodat parallelle upstream verbindingen en logboekschrijvers genoeg bewegingsruimte hebben. Als je dieper wilt graven, zul je praktische instelschroeven vinden voor PHP-FPM processen en bepaalt de beste Saldo.
Ik controleer ook hoeveel databaseverbindingen per FPM-werker tegelijkertijd open blijven staan, zodat verbindingspools niet de knelpunt worden. Een te groot aantal workers verhoogt de RAM druk en contextwissels, een te klein aantal stagneert de doorvoer. Daarom schaal ik in stappen, observeer latency P50/P95 en fouten, en pas deze in kleine stapjes aan. Pas wanneer wachtrijtijden, CPU belasting en foutpercentages in balans zijn, stel ik de waarden permanent vast. Op deze manier loopt de stack voorspelbaarder en blijft hij stabiel onder belasting. responsief.
Monitoring en capaciteitsplanning
Ik maak van elke stap een back-up met meetgegevens, anders hebben wijzigingen aan limieten alleen een vilt. Metrieken zoals open bestanden per proces, lopende en wachtende verzoeken, CPU-seconden per worker en RSS geheugen helpen me om ze te categoriseren. Logboeken laten me zien wanneer de harde limieten van kracht worden en of services daardoor verbindingen weigeren. Dashboards met P95/P99 latencies onthullen knelpunten die gemiddelde waarden verbergen. Uit dit alles leid ik een praktische hosting van proceslimieten af die het gebruik afvlakt en wachtrijen vermindert. verkort.
Ik houd altijd gereserveerde headroom vrij zodat korte pieken geen storing veroorzaken. produceren. Als je op weg bent naar maandelijkse of campagnepieken, verhoog ik de limieten één tot twee weken van tevoren en voer ik echte verkeerstests uit. Daarna heractiveer ik strengere limieten om bronnen en aanvalsoppervlakken te minimaliseren. Dit ritme beschermt het platform op een economische manier en vermindert tegelijkertijd het risico op verstoringen. Planning loont hier meerdere malen, omdat proactieve stappen servicevensters en Uptime veilig
Inodes en aantal bestanden: stille limieten met een groot effect
Naast nofile beperkt het bestandssysteem het aantal Inodes en dus het mogelijke aantal bestanden, ongeacht het gebruikte geheugen. Webprojecten met veel kleine cachebestanden of sessiebestanden lopen hier al snel vast. Ik controleer df -i, ruim oude artefacten, rotatie restanten en temp directories op en pas de structuur van het bestandssysteem aan indien nodig. Het consolideren of in-memory plaatsen van CMS caches verlicht de belasting van inodes en IO printing tegelijkertijd. Ik heb details, achtergrondinformatie en strategieën opgenomen in mijn gids voor Inodes begrijpen die het onderwerp heeft ontwikkeld voor hostingpraktijken ontgrendelt.
Als inodes schaars zijn, is een hogere bestandsdescriptorlimiet alleen al nuttig niets. Ik zorg daarom voor een duidelijke logrotatie, beperk de debug verbositeit en verplaats zelden gebruikte artefacten naar archiefopslag. Build pipelines zouden ook artefacten moeten opruimen zodat implementaties niet geleidelijk de inode reserves opeten. Zulke hygiëne houdt limieten stabiel op de lange termijn en bespaart veel tijd bij het oplossen van problemen. Een schone weergave van inodes voorkomt onverwachte fouten. Uitvaltijden.
Gerichte correctie van typische foutmeldingen
De melding „te veel open bestanden“ geeft bijna altijd aan dat er niet genoeg bestanden zijn. nofile. Ik verhoog de limiet tijdelijk in de shell, bevestig het effect en pas dan de waarden aan in limits.conf en systemd. Als er „resource temporarily unavailable“ verschijnt bij het spawnen, komt dit vaak door de nproc-limiet, die ik verhoog om overeen te komen met de architectuur van de worker. Als PHP scripts lijken te hangen, controleer ik ook memory_limit, max_execution_time en de CPU-seconden die door de hosting setup zijn toegekend voor CGI/FPM. Ik elimineer knelpunten in de keten en voorkom dat een switch op één plaats alleen maar nieuwe Remmen gegenereerd op een andere positie.
Als deze fouten sporadisch optreden, werk ik met metrische correlaties om de tijd- en belastingssituatie te bepalen. vangst. Pieken in gelijktijdige verbindingen, verhoogde backend fouten of lange DNS lookups geven goede indicaties. Vervolgens controleer ik de limieten van de betrokken services afzonderlijk om effectieve waarden te identificeren. Als de configuratie correct is maar de fouten blijven, zoek ik naar lekken in bestandshandvatten, defecte watchers of onnodige open sockets. Stapsgewijze beperking bespaart tijd en vermindert de Risico hernieuwde mislukkingen.
Een slimme balans tussen prestaties en veiligheid
Ik verhoog nooit grenzen zonder grenzen, want te wijde openingen staan open voor aanvallen. vergroten. Brute force of DoS scenario's profiteren van te hoge limieten als er geen andere controles zijn. Daarom combineer ik limieten met rate limiting, backoff strategieën en duidelijke timeouts in de webserver en upstream. Ik stel harde bovengrenzen in zodat legitieme pieken kunnen voorkomen maar misbruik niet kan escaleren. Op deze manier zorg ik voor beschikbaarheid zonder de Controle te verliezen.
In het dagelijks leven loont een getrapt concept: enige ruimte voor pieken, meetbaar effect en regelmatig Beoordelingen. Als je implementaties, verkeerscampagnes en seizoensbelastingen kent, kun je proactief limieten plannen. Ik documenteer elke wijziging met de datum, reden en gemeten waarden zodat latere analyses niet in het duister tasten. Deze catalogus versnelt toekomstige beslissingen en voorkomt dubbel werk. Prestaties en beveiliging profiteren omdat beslissingen zijn gebaseerd op Gegevens gebaseerd.
Hostingpakketten evalueren: waar moet ik op letten?
Ik controleer hostingaanbiedingen niet alleen op CPU en RAM, maar expliciet op Ulimieten voor processen, descriptors en CPU-seconden. Specifieke details over nproc, nofile en, indien van toepassing, inode-quota helpen me om de capaciteit correct in te schatten. Voor shops en API's heb ik transparante toezeggingen nodig voor PHP FPM-processen, CPU-budgetten en limietverhogingen op verzoek. VPS- of dedicated omgevingen geven me soevereiniteit, maar verstandige standaardwaarden voor de werking tellen hier ook mee. Duidelijke cijfers voorkomen teleurstellingen en houden migraties op schema eenvoudig.
| Plan | Proceslimiet (nproc) | Bestanden (nofile) | RAM/Proces | CPU-tijd | Geschiktheid |
|---|---|---|---|---|---|
| Beginner | 32-64 | 4096-8192 | 256–512 MB | 5-600 s | Kleine locaties |
| Zakelijk | 64-128 | 16384-65536 | 512–1024 MB | 600-3600 s | Winkels, API's |
| VPS/Dedicated | Configureerbaar | Configureerbaar | Zoals vereist | Zoals vereist | Hoge belasting |
Kort samengevat
Ik meet eerst de werkelijke benutting en dan til ik Grenzen in stappen en controleer het effect op latentie, foutpercentage en doorvoer. De kernschakelaars zijn nofile voor bestanden/sockets en nproc voor processen/dreads, aangevuld met fsize, stack en cpu. Ik stel permanente waarden consistent in in limits.conf en in systemd units zodat diensten identieke raamvoorwaarden hebben. Voor PHP-FPM synchroniseer ik procesaantallen, geheugen en wachtrijen nauwgezet met de bestandsdescriptorlimiet. Monitoring, inodehygiëne en verstandige bovengrenzen houden de hosting setups onder belasting Betrouwbaar en responsief.


