Het is geruststellende tekst in een verkooptrechter, geen technische garantie. Wanneer een host "onbeperkt" op de plankaart drukt, beloven ze niet oneindige overdracht over fysica en budgetten; ze beloven één specifiek punt op je factuur niet te meten terwijl ze alles controleren wat daadwerkelijk bepaalt of je site snel en bereikbaar blijft. De praktische waarheid is eenvoudig en een beetje irritant: je plan meet mogelijk niet de maandelijkse overdracht, maar het zal je absoluut op andere manieren meten zodra je gebruik ongewoon, piekerig of duur om te bedienen lijkt.
Ik heb dit vaak genoeg zien gebeuren om het patroon vanaf de eerste ondersteuningsdraad te herkennen. De site begint sterk, de ranglijsten stijgen, een campagne slaat aan, en dan ontwikkelt het "onbeperkte" plan een persoonlijkheid. Verzoeken duren langer. Statische middelen kruipen. Werkers lopen vast. Fouten verschijnen in zakken omdat de host begint de gedeelde omgeving te beschermen, niet jouw succes. Dat is geen kwaadwilligheid; het is een economische realiteit. Hosts verkopen "onbeperkt" om kleine sites aan te trekken waarvan het daadwerkelijke gebruik klein en voorspelbaar is. De uitschieters—video, downloads, openbare API's, slecht gecachte apps—worden "misbruik" op het moment dat de grafieken bewegen. De AV en de resourceplanners treden in werking. Als je "onbeperkt" hebt gekocht in de verwachting dat de startbaan zal opschalen, voel je je overrompeld. Als je het beschouwt als ongemeten op papier maar zeer gemeten in de praktijk, maak je slimmere architectuurkeuzes en vermijd je de opschortingsmail die altijd op het minst handige moment arriveert.
Bandbreedte, overdracht, doorvoer en poortsnelheid zijn niet hetzelfde
Het maakt me niet uit hoe vaak de industrie de termen vervaagt—als we eerlijk willen zijn over wat je daadwerkelijk kunt verplaatsen, moeten we de woordenschat scheiden. Bandbreedte is de grootte van de pijp op een bepaald moment. Doorvoer is wat je daadwerkelijk bereikt via die pijp na overhead, concurrentie en throttling. Gegevensoverdracht is de totale hoeveelheid die over een bepaalde periode wordt verplaatst, meestal een maand. Poortsnelheid is de harde limiet op de onmiddellijke stroom, meestal uitgedrukt als 10 Mbps, 100 Mbps, 1 Gbps, of hoger.
"Ongemeten" is een factureringsbelofte over maandelijkse overdracht, niet over de onmiddellijke snelheid die je pakketten op maandag om twaalf uur 's middags krijgen. "Onbeperkt" is een marketingstijl die impliceert dat er geen limiet is, maar wat je echt hebt, is een plan dat geen gigabytes meetelt voor overbelasting terwijl het limieten afdwingt via al het andere: CPU-aandelen, I/O, procesaantallen, verbindingsgelijktijdigheid, en uiteindelijk de poort die je pakketten moeten doorkruisen. Een 1 Gbps-poort kan in theorie een enorme hoeveelheid in een maand verplaatsen, maar als de host je poort na vijf minuten van constante doorvoer naar 100 Mbps vormt—of je simpelweg een "burstbare" rijstrook geeft die onder belasting afneemt—verdampt je theoretische overdracht in werkelijke wachttijd en mislukte verzoeken. De pijp waarvan je dacht dat je die had gekocht, is de pijp die je alleen bezet wanneer je stil bent.
Wanneer ik een plan beoordeel, vraag ik niet "Is de bandbreedte onbeperkt?" Ik stel een andere, lelijkere vraag: "Wat is de slechtste geval onmiddellijke doorvoer die ik gegarandeerd krijg wanneer de buren en ik allemaal druk bezig zijn?" Dat is het getal dat ervoor zorgt dat je afrekenproces niet vastloopt, je afbeeldingen niet traag laden, en je achtergrondtaken geen landingsbaan van herhalingen opbouwen die je later moet betalen.
Hoe shared hosting zo is ontworpen dat het onbeperkt lijkt (totdat het dat niet is)
Shared hosting is een kermistruc gebaseerd op gemiddelden. De meeste sites zijn klein. Het meeste verkeer is op een vriendelijke manier piekerig. De meeste pagina's worden in de cache opgeslagen na de eerste crawl. Zo kunnen hosts rekenkracht, geheugen, opslag I/O en netwerklijnen overinschrijven en toch vrolijke dashboards aan duizenden klanten aanbieden. De machine achter deze illusie is een nest van fair-share-schedulers en quotasystemen. CPU-aandelen voorkomen dat één account te lang een volledige core in beslag neemt. IOPS-vormgeving zorgt ervoor dat luidruchtige buren de SAN niet uithongeren. PHP-FPM- en Node-proceslimieten zorgen ervoor dat slechts een handvol verzoeken dynamisch tegelijk kan worden uitgevoerd. Inode-limieten beperken stilletjes het aantal bestanden dat je op schijf kunt bewaren, waardoor media-zware sites worden gesmoord voordat de overdracht ooit in een grafiek verschijnt.
Het belangrijkste om op te merken is dat geen van deze systemen de "bandbreedte"-regelitem raakt. Dat blijft ongemeten, dus de claim blijft technisch eerlijk. Op het moment dat je app er langer dan een moment druk uitziet, handhaven de fair-share-regels "typisch gebruik" door de delen van je stack die ze controleren te vertragen. Je zult zien dat dynamische verzoeken in de wachtrij staan terwijl statische middelen prima aanvoelen. Dan vertragen statische middelen omdat de oorsprong de bottleneck wordt die een CDN niet volledig kan maskeren. De host rekent je nog steeds niet voor de overdracht. Ze zorgen er gewoon voor dat je er minder van gebruikt door te verminderen hoe snel je het kunt serveren.
Ik vind niet dat shared hosts hierom schurken zijn. Het model werkt voor de overgrote meerderheid van websites en heeft het web goedkoop gehouden voor kleine uitgevers. Maar de uitdrukking "onbeperkte bandbreedte" geeft het verkeerde mentale model. Het nodigt je uit om te ontwerpen alsof je een toegewijde rijstrook hebt, en dat heb je niet. Je hebt toestemming om water in een emmer te gieten zonder per liter te betalen, maar je deelt nog steeds de kraan.
De kleine lettertjes die daadwerkelijk je gebruik regelen
Als je de waarheid wilt, lees dan niet de prijstabel; lees het Acceptable Use Policy. Je zult suikerzoete zinnen vinden zoals "typische websites" en "fair use," die vertalen naar "als je er als een filesharing-knooppunt, een streaming-site, een media-mirror, of een downloadhub uit gaat zien, behouden we ons het recht voor om je te vertragen, te migreren of te schorsen." Je zult verboden vinden op audio en video streaming vanaf de oorsprong, bestanddistributie op schaal, reservekopieën opgeslagen op webruimte, openbaar toegankelijke ZIP-collecties en "resource-intensieve" scripts die elk meer dan een paar seconden draaien. Je zult dagelijkse CPU-seconde limieten vinden, databasequery-limieten en verbindingsaantallen die je favoriete asynchrone crawler als een aanval laten lijken.
Entry-proceslimieten zijn bijzonder sluw. In cPanel-achtige omgevingen betekent een "entry process" vaak "het aantal gelijktijdige dynamische verzoeken dat mag starten." Raak je die limiet, dan komt de volgende bezoeker niet in de wachtrij; ze krijgen fouten. I/O-limieten en IOPS-nummers doen hetzelfde voor de schijf. Inode-limieten zetten je af wanneer je "te veel bestanden" hebt, die ambitieuze mediatheken raken voordat ze de doorvoer raken. Geen van deze dingen schendt "onbeperkte bandbreedte." Ze zorgen er gewoon voor dat je er heel weinig van gebruikt wanneer je site begint te groeien.
Ik ben de tel kwijt van de plannen die "onbeperkt" claimen terwijl ze stilletjes de CPU instellen op "100% van één core voor een paar seconden," I/O op "een paar megabytes per seconde continu," en processen op "een handvol tegelijk." Dat is een riem, bretels en een touw. Als je ze alle drie raakt, ren je niet; je schuifelt.
Hoe "onbeperkt" eruitziet op een drukke maandag
Stel je een normale maandag voor nadat een weekendvermelding je verse aandacht heeft bezorgd. Je HTML is redelijk licht, je afbeeldingen zijn fatsoenlijk, je leunt op een CDN voor statische middelen en je oorsprong behandelt de dynamische onderdelen. Het verkeer neemt met een factor vijf toe. In het begin is alles in orde omdat caches warm zijn en de CDN de meeste afbeeldingsverzoeken opvangt. Dan blijven je dynamische eindpunten achter. Het proceslimiet van de host houdt slechts een klein aantal gelijktijdige PHP- of Node-werkers actief. Er begint zich een wachtrij te vormen en de responstijden worden zo lang dat tijdslimieten tussen diensten worden overschreden. De CDN helpt nog steeds, maar cachemissen op HTML beginnen pijn te doen. Je database wordt spraakzamer en de I/O-scheduler trekt er nog een stukje van af omdat je nu "resource-intensief" bent. Jouw klanten, met perfecte timing, klikken op afbeeldingen die niet hot waren in de CDN, waardoor er bursts van de oorsprong worden getrokken die botsen met langzaam dynamisch werk.
Wat er daarna gebeurt, hangt af van de host. Sommige hosts vertragen je progressief totdat de prestaties zo slecht zijn dat bezoekers afhaken en je "gemiddelde" weer normaal wordt. Anderen activeren geautomatiseerde misbruikregels en verplaatsen je account naar een lagere pool of een quarantain VLAN. Een paar geven nog steeds de klassieke 509-reactie, "Bandbreedte Limiet Overschreden," zelfs als ze geen bytes tellen—509 is gewoon een nuttig stopteken om tijd te kopen terwijl ze het beoordelen. Het resultaat voelt identiek: de belofte van "onbeperkt" verdampt precies wanneer je het nodig hebt.
Een site die voornamelijk in cache opgeslagen HTML en statische middelen serveert, kan er met geïrriteerde bezoekers doorheen komen. Een winkel die zwaar op de winkelwagen leunt of een applicatie die veel zoekopdrachten vereist, zal het zwaar te verduren krijgen. De pijn verschijnt zelden als een nette, enkele metriek. Het is een mozaïek van kleine vertragingen die zich opstapelen tot mislukte aankopen en toenemende verlating.
Voordat we dieper ingaan, wil ik iets concreets en herbruikbaars maken zodat je het praktische plafond kunt zien, zelfs als een plan beweert dat het niet bestaat.
Ik ga een paar minuten over op harde cijfers. Dit is een Premium Sectie die zich volledig richt op de wiskunde die je op een servet kunt doen om poortsnelheid om te zetten in maandelijkse overdracht en vervolgens in paginaweergaven. Als je ooit hebt geworsteld met het omzetten van "1 Gbps ongemeten" in "Hoeveel bezoeken kan ik eigenlijk bedienen?" dan is dit waar het duidelijk wordt.
Premium content
Log in om door te gaan
De stille moordenaars: CPU-throttling, IOPS-vorming en proceslimieten
Als je ooit hebt gemerkt dat een site vertraagt terwijl de grafieken "normaal" leken, dan heb je kennisgemaakt met de stille moordenaars. CPU-throttling is het meest zichtbaar wanneer je weet waar je moet kijken. Gedeelde hosts wijzen een deel van een kern toe voor pieken en verminderen dan onder aanhoudende belasting. Je app crasht niet; het sleept. Dat is genoeg om zoekresultaten en conversiepercentages te verlagen zonder alarmen te activeren die ondersteuning zouden inschakelen.
IOPS-vorming is subtieler. Databases leven en sterven door opslaglatentie. Bestandsintensieve apps doen dat ook. Hosts gebruiken cgroups en storage QoS om grote gebruikers te voorkomen dat ze de array uithongeren. Je ziet geen foutmelding; je ziet een wachttijd van twintig milliseconden voor de schijf veranderen in tachtig, wat de verzoektijden in een nieuwe, lelijkere verdeling trekt. Combineer dat met een lage instapproceslimiet en je hebt een perfecte knijpbox gebouwd. Verzoeken duren langer, dus meer verzoeken zijn gelijktijdig, wat de limiet sneller bereikt, waardoor nieuwe bezoekers op de grond worden gedropt.
Proceslimieten, tenslotte, zijn de guillotine. Veel plannen beperken PHP-FPM of soortgelijke processen tot een handvol kinderen. Sommigen voegen een limiet toe aan het totale aantal gelijktijdige processen per gebruiker. Beide laten een host glimlachen en "onbeperkte bandbreedte" beloven terwijl ze ervoor zorgen dat je in de praktijk niet veel kunt verzenden. Als je ooit een spookflessehals hebt achtervolgd bij de CDN of in je applicatiecode, om vervolgens te ontdekken dat de host acht workers toestaat en het daarbij laat, dan heb je de val gevoeld.
Ik zet "onbeperkte bandbreedte" niet in mijn risicoregister als een probleem om op te lossen. Ik verminder mijn afhankelijkheid ervan. Het model dat voor de meeste kleine en middelgrote sites werkt, is saai en effectief. Cache HTML aan de rand zolang je inhoud het toelaat. Duw afbeeldingen, CSS en JS naar een CDN die je daadwerkelijk in productie valideert met een hoge hitrate, niet alleen een logo. Laad zware media naar objectopslag en wijs je CDN daarheen zodat de oorsprong het nooit ziet. Houd de oorsprong gefocust op dynamische lezingen en schrijvingen die echt berekening nodig hebben, en maak die zo stateloos en snel mogelijk.
Wanneer je dat doet, wordt het "onbeperkte bandbreedte"-plan acceptabel omdat je het niet vraagt de last te dragen die het niet zonder drama kan dragen. Zelfs als de host je oorsprong vormt, absorbeert de CDN de willekeurige aard van het verkeer. Je p95 stabiliseert en je koopt tijd om een stap te kiezen wanneer groei echt is in plaats van te reageren tijdens een storing. Alle kleine lettertjes bestaan nog steeds, maar je stapt er niet op. Je hebt een kleine, wendbare oorsprong gebouwd in plaats van een magazijn.
Ik zet nooit video streaming, bestandsdownloads, openbare software-spiegels of back-updistributie op een plan dat "onbeperkt" zegt. Ik zeg dat als iemand die heeft geprobeerd ze erdoorheen te persen en vervolgens heeft onderhandeld met ToS-taal na de feiten. Deze workloads zijn niet waarvoor gedeelde hosting is gebouwd, en de host zal je uitschakelen in naam van het beschermen van iedereen. Zelfs als je er kort mee wegkomt, ben je één vermelding verwijderd van pagina's met boze e-mails en een migratie om middernacht.
Zware ZIP-archieven van productmiddelen of leermaterialen zullen dezelfde alarmen activeren. Openbare API's die clientpolling aanmoedigen, ook. En alles wat gebruikers aanmoedigt om herhaaldelijk hetzelfde multi-megabyte bestand op nieuwe verbindingen op te halen, zal sneller poortvorming raken dan je denkt. De draad die deze gevallen verbindt is simpel: het zijn hoge-egress, lage-rekenkracht workloads die de transitrekening van de host aanvallen zonder de CPU of I/O te verbruiken waar hun planners op zijn afgestemd. Die mismatch is precies waarom "onbeperkte bandbreedte" als bewoording bestaat. Het is een zachte belofte die wordt ingetrokken zodra je gebruik niet meer op een kleine blog lijkt.
Ik wil je een advocaat-met-benchmarks vertaalgids geven die je kunt bewaren. De volgende sectie is een Premium Sectie waarin ik de meest voorkomende clausules die hosts gebruiken vertaal naar operationele realiteit. Als je niets anders leest, lees dit dan wanneer je om 1 uur 's nachts een plan scant en je afvraagt of "onbeperkt" je volgende lancering zal dragen.
Premium content
Log in om door te gaan
Monitoren wat belangrijk is zodat je weet voordat de schorsingsmail arriveert
Het dashboard dat je host je geeft, waarschuwt je niet voor de storing die eraan komt. Het rapporteert gemiddelden en totalen terwijl de pijn zich verbergt in de lange staart. Ik kijk naar andere signalen. Oorsprong egress versus CDN egress vertelt me of mijn cache zijn werk doet. Als de oorsprong egress sneller stijgt dan bezoeken, weet ik dat iets te agressief wordt omzeild of gewist. Verbindingconcurrentie is de kanarie voor proceslimieten; als gelijktijdige verbindingen een vlak plafond naderen, verwacht ik onmiddellijke fouten voor nieuwe bezoekers. De 95ste percentiel bandbreedte en verzoektijd zijn belangrijker dan gemiddelden omdat ze de delen van de dag voorspellen waar de host je zal vormen en je gebruikers hun reis niet zullen voltooien.
CPU-steeltijd is een geurtest voor gedeelde omgevingen. Als ik de steeltijd zie stijgen tijdens mijn stille uren, weet ik dat ik concurreer met buren en dat mijn uitbarsting op een vermoeide node zal landen. Langzame queries zijn altijd de tijd waard die je denkt niet te hebben; het oplossen van één slechte index kan het verschil maken tussen overleven van een vermelding en een dag verbranden met excuses maken. Foutenbudgetten—het aantal fouten dat je toestaat in een venster voordat je de gebruikerservaring als verslechterd beschouwt—verbinden dit alles. Als je fouten toenemen voordat het verkeer dat doet, heb je onzichtbare wrijving en "onbeperkt" zal niets dempen.
Volg het geld en het verhaal stopt mysterieus te zijn. Transit is duur als je geen geweldige peering kunt onderhandelen en als je gebruikers ver van je POP's zitten. Gedeelde hosting amortiseert die kosten over duizenden accounts waarvan de meeste nauwelijks iets gebruiken. "Onbeperkt" is een klantacquisitietool. Het verlaagt de wrijving en vergelijkt goed op een tabel waar het goedkopere plan "meer bevat". De host gaat ervan uit dat je klein zult zijn, of dat je het verstandige zult doen en je zware verkeer naar een CDN en objectopslag verplaatst zodra je groeit, wat egress verschuift naar een provider die niets anders doet dan egress.
Wolken keren het model om. Ze meten egress omdat het hun winstcentrum is en omdat hun netwerken kostbaar zijn om op wereldwijde schaal te draaien. Ze beloven geen "onbeperkt" omdat de prikkel anders is; ze willen dat je doordacht architecteert en betaalt voor wat je gebruikt. Gedeelde hosts willen dat je je kleine site meeneemt en gelukkig blijft totdat je niet meer klein bent, op welk punt ze willen dat je ofwel optimaliseert of upgraden. Niets hiervan is cynisch; het is hoe de rekeningen worden betaald. Maar het verklaart waarom de AV's zijn geschreven in fluwelen taal en waarom de technische limieten worden gehandhaafd met een lichte aanraking totdat ze dat niet meer zijn.
Beslissingspunten: wanneer "onbeperkt" prima is, wanneer het roekeloos is, en hoe te migreren
Ik gooi "onbeperkt" niet zomaar weg. Voor een kleine marketingwebsite met voornamelijk statische pagina's en een bescheiden blog is het prima als je er een CDN voor plaatst. Voor een winkel met weinig verkeer en verstandige caching kan het werken terwijl je product-markt fit vindt. Voor een publicatie die onvoorspelbaar piekt, is het riskant tenzij je agressief cachet en vooraf rendert. Voor alles dat grote bestanden uitzendt, is het de verkeerde tool vanaf de dag dat je lanceert.
Mijn beslisboom is bot. Als je p95 dynamische responstijd laag is en laag blijft onder lichte stress, kun je langer dan je denkt op een gedeeld plan blijven. Als je CDN-hitratio echt hoog is en je oorsprongsegress vlak blijft wanneer het verkeer verdubbelt, ben je veilig genoeg. Als een van die voorwaarden faalt, plan dan nu de verhuizing. Een kleine VPS met twee vCPU's en genoeg geheugen om swap te vermijden is saai en betrouwbaar. Het geeft je voorspelbare gelijktijdigheid, betere opslagprestaties en een netwerklane die je daadwerkelijk kunt begrijpen. Je kunt nog steeds dezelfde CDN- en objectopslagstrategie gebruiken. Wanneer je daaruit groeit, voel je het op manieren die je kunt instrumenteren en plannen, en stap je over naar dedicated of managed clusters omdat je ervoor kiest, niet omdat een ToS-clausule je daartoe dwingt.
Het migratiepad hoeft niet dramatisch te zijn. Houd je oorsprong stateless waar mogelijk, zodat DNS-overschakelingen schoon verlopen. Sla sessies op in een gedeelde backend waar je vanaf zowel oude als nieuwe oorsprong naar kunt verwijzen tijdens een korte overlap. Verwarm caches voordat je de schakelaar omzet, zodat de nieuwe oorsprong niet de volledige klap opvangt. Het punt is niet om perfect te zijn; het is om voorspelbaar te zijn. "Onbeperkt" faalt je onvoorspelbaar. Je doel is om te stoppen met verrast worden.
Ik beloofde praktische, geleefde scenario's omdat dat is hoe de randen van dit onderwerp duidelijk worden. De volgende sectie is een Premium Sectie met drie verhalen uit de echte wereld, elk beginnend op "onbeperkt," elk een andere muur rakend, en de exacte veranderingen die hen stabiliseerden.
Premium content
Log in om door te gaan
Mijn standpunt, botweg gezegd: het is ongemeten, niet onbeperkt — behandel het zo
Ik heb geen probleem met "onbeperkte bandbreedte" zolang we het erover eens zijn dat het betekent "we tellen geen bytes" en niets meer. Het is ongemeten, niet oneindig. De controles die uw ervaring vormgeven, bevinden zich in CPU-aandelen, I/O-limieten, proceslimieten, gelijktijdigheidslimieten en vormgeving van tijdelijke poorten wanneer u het druk krijgt. Als je als een volwassene ontwerpt—CDN ervoor, assets uitbesteed, dynamisch werk geminimaliseerd en snel—kun je gelukkig leven met een abonnement dat "onbeperkt" op de markt brengt, omdat je het zelden hoeft te testen. Als je ontwerpt alsof je een speciale baan hebt gekocht, zul je de betekenis van "fair use" leren kennen de eerste keer dat iemand om je site geeft.
Hier is hoe ik opereer. Ik behandel de oorsprong als een kleine API die respect verdient. Ik verplaats zware bytes naar plaatsen die zijn gebouwd voor egress, en ik betaal voor die egress omdat het de kosten van schaal is. Ik kijk naar p95, niet naar gemiddelden. Ik houd een oog op gelijktijdigheid en een ander op de lange staart van verzoektijden. Ik lees de ToS alsof het een technisch document is en vertaal elke eufemisme in een getal. Ik accepteer dat gedeelde hosting een overtekende omgeving is met een briljant waardevoorstel voor kleine sites en een reeks harde limieten voor iets ambitieus. Wanneer ambitie arriveert, verhuis ik omdat ik ervoor kies, niet omdat een fluwelen clausule me vertelt dat ik het moet doen.
Als je bent verbrand door "onbeperkt", geef jezelf dan niet de schuld. De bewoording is bedoeld om geruststellend te zijn, en het werkt. Bouw de kleine, veerkrachtige oorsprong. Zet een CDN ervoor. Laad de zware spullen uit. Ken je cijfers en je knelpunten. Wanneer de dag komt dat je een VPS of iets groters nodig hebt, maak de overstap met een warme cache en een koel hoofd. Je zult nooit meer op dezelfde manier naar "onbeperkte bandbreedte" kijken, en dat is het punt. Het was geen belofte. Het was een uitnodiging om het juiste werk te doen.