Een van de meest cruciale aspecten van de prestaties van een website is de hoeveelheid bandbreedte die aan het gebruik ervan wordt toegewezen. Bandbreedte bepaalt hoe snel de webserver de gevraagde informatie kan uploaden. Hoewel er andere factoren zijn waarmee u rekening moet houden met betrekking tot de prestaties van een website, is bandbreedte vaak de beperkende factor.
Bandbreedtedefinitie
Bandbreedte wordt gedefinieerd in termen van het aantal bits per seconde. Een bit is de kleinste hoeveelheid computerinformatie, een nul of een, en acht ervan vormen een enkele byte. Historisch gezien worden netwerkverbindingen gemeten in bits, terwijl apparaten van eindgebruikers zoals computergeheugen en harde schijven in bytes worden gemeten. Een megabit is iets meer dan een miljoen bits (meer precies, 1.048.576 bits), terwijl een gigabit meer dan een miljard bits is (precies 1.073.741.824 bits). Daarom kan een verbinding van 100 megabit per seconde meer dan 104 miljoen bits per seconde verzenden, wat handiger is uitgedrukt als 13 MB per seconde.
Bandbreedtevereisten berekenen
De meeste webservers sturen op verzoek statische pagina's en afbeeldingen naar webbrowsers, wat betekent dat er geen wijzigingen aan deze bestanden nodig zijn voordat ze via internet worden geüpload. In deze gevallen zijn de bandbreedtevereisten vrij eenvoudig. Tel het totale aantal bytes op dat wordt gebruikt door de bronnen die deel uitmaken van een bepaalde pagina op uw site: een HTML-pagina is een bepaald aantal kilobytes HTML, JavaScript en opgenomen bestanden, terwijl de afbeeldingen die de pagina opvraagt waarschijnlijk een groter aantal zullen zijn van kilobyte. Een homepage kan bijvoorbeeld 25 KB aan HTML, Cascading Style Sheets en JavaScript bevatten, die vervolgens verzoeken om 250 KB aan afbeeldingen. Als je deze pagina voor de eerste keer opvraagt, heb je dus 275 KB aan data nodig, oftewel 2.200 kilobits. Bij een internetverbinding van 100 megabit zou je iets meer dan een kwart megabit gebruiken voor een seconde, wat ongeveer overeenkomt met 300 gelijktijdige gebruikers die toegang hebben tot de site zonder te vertragen. Er gaat altijd een bepaalde hoeveelheid bandbreedte verloren door overheadnetwerkvereisten, dus het is een goed idee om deze schattingen naar beneden af te ronden (in dit geval van 364 naar 300). Websites die meer dan 300 gelijktijdige gebruikers verwachten, zouden daarom meer internetbandbreedte nodig hebben of kleinere bestanden op hun homepages gebruiken.
CPU-knelpunten
Een website kan ook worden vertraagd door de noodzaak om dynamische bestanden weer te geven. Dit is het geval wanneer een webpagina wordt gegenereerd op basis van programmeercode; pagina's op een WordPress-site zijn bijvoorbeeld geen statische HTML, maar worden op verzoek gegenereerd door PHP-programmering in de WordPress-sjabloon. Een dynamische site met dezelfde parameters als het voorbeeld van een statische pagina zou slechts 300 gelijktijdige gebruikers kunnen verwerken als de CPU-vereisten om elke pagina te genereren ongeveer minder dan een derde van 1 procent van de CPU bedragen. Aan de andere kant, als 1 procent van de CPU wordt gebruikt om een pagina te genereren, zal het maximale aantal gelijktijdige gebruikers dichter bij 100 dan 300 liggen, ook al kan de beschikbare bandbreedte meer gebruikers aan.
Caching- en inhoudsleveringsnetwerken
Bandbreedteknelpunten kunnen worden verbeterd door gebruik te maken van netwerken voor het leveren van inhoud, of CDN's, die kopieën van de gegevens van uw webserver opslaan, meestal op meerdere punten op internet. Een CDN kan zich bijvoorbeeld in Tokio en Londen bevinden en informatie van uw webserver dupliceren -- of cachen -- voor respectievelijk gebruikers in Azië en Europa. Het CDN staat fysiek dichter bij de gebruiker, waardoor de levering wordt versneld en het aantal hits op uw primaire webserver wordt verminderd. Evenzo kan caching op de lokale webserver of CDN's ook de CPU-vereisten aanzienlijk verminderen, maar dit gaat ten koste van het verzenden van enigszins verouderde pagina's naar webbrowsers.