...

CPU-IPC en kloksnelheid: hostingprocessoren op de juiste manier vergelijken

CPU IPC geeft het aantal voltooide instructies per klokcyclus weer, terwijl de klokfrequentie het aantal cycli per seconde aangeeft. Geen van beide kengetallen op zichzelf laat zien hoe snel een hostingpakket je applicatie uitvoert: IPC is afhankelijk van het programma en de gegevens ervan, terwijl de werkelijke kloksnelheid onder belasting kan afwijken van de specificatie. Ook parallelliteit en beschikbare CPU-tijd zijn doorslaggevend bij de keuze. Een vergelijkbare applicatietest met doorvoersnelheid en responstijden biedt een betrouwbaardere basis dan een enkele GHz-waarde.

CPU IPC: instructies per klokcyclus

CPU IPC staat voor Instructions per Cycle, oftewel instructies per klokcyclus. Voor een afgebakend meetbereik wordt doorgaans het aantal voltooide machine-instructies gedeeld door het aantal CPU-cycli dat binnen datzelfde bereik is geteld. Een IPC van 2 betekent in dit verband gemiddeld twee voltooide instructies per getelde cyclus.

De waarde is een Kenmerk van de uitvoering, geen vast cijfer voor alle taken van een processor. Hetzelfde systeem kan bij een berekening met goed beschikbare gegevens een andere IPC behalen dan bij een databasequery, die vaak moet wachten op gegevens uit het hoofdgeheugen. Ook de betreffende dataset en het betreffende programmafragment beïnvloeden het resultaat.

Een cache houdt veelgebruikte gegevens dicht bij de CPU. Als een kern in plaats daarvan moet wachten op tragere geheugentoegangen, kunnen uitvoeringseenheden tijdelijk onbenut blijven. Ook beïnvloeden afhankelijkheden tussen instructies en vertakkingen in de programmastroom hoeveel werk tegelijkertijd kan worden uitgevoerd. Een lage IPC is daarom aanleiding voor nader onderzoek, maar nog geen eenduidige diagnose.

Een machine-instructie is bovendien geen gestandaardiseerde eenheid voor een voltooide webverzoek. Compilers, instructiesets en vectorisatie kunnen ertoe leiden dat verschillende programma’s voor dezelfde taak een verschillend aantal instructies nodig hebben. Een hogere IPC op zich bewijst daarom noch een kortere responstijd, noch meer verzoeken per seconde.

Voor een vergelijking is het van cruciaal belang welke toepassing en welk meetbereik achter de waarde schuilgaan. Een IPC-waarde zonder deze gegevens laat in het midden of de systemen überhaupt hetzelfde werk verrichten. Meer basisinformatie over de wisselwerking tussen kloksnelheid, kernen en geheugenhiërarchie vind je in het artikel over de CPU-architectuur bij hosting.

Inzicht in de kloksnelheid en boost van een server

De kloksnelheid geeft aan hoeveel cycli een CPU per seconde doorloopt. Eén gigahertz, afgekort GHz, komt overeen met een miljard cycli per seconde. Deze waarde zegt op zichzelf niets over hoeveel instructies een programma in deze cycli uitvoert of hoeveel bruikbaar werk het daarmee verricht.

In gegevensbladen staat vaak een Basisfrequentie en een maximale boost. De basisfrequentie dient als specificatiewaarde; de boost verwijst naar een hogere mogelijke frequentie onder geschikte omstandigheden. Beide gegevens zijn geen vervanging voor het observeren van de daadwerkelijk bereikte kloksnelheid tijdens het daadwerkelijke gebruik en bij de betreffende belasting.

Een voorbeeld hiervan is de AMD EPYC 9655: voor dit model vermeldt AMD 96 kernen, 192 threads, een basiskloksnelheid van 2,6 GHz en een maximale boost tot 4,5 GHz. Deze waarden beschrijven de specificaties en kloksnelheden van de processor. Ze zijn noch een gemeten IPC, noch een bewijs voor een bepaalde hostingdoorvoer.

Voor de EPYC-9005-serie definieert AMD de maximale boost als de hoogste frequentie die een enkele kern onder normale serveromstandigheden kan bereiken. De maximaal 4,5 GHz van de 9655 is dus geen garantie dat alle 96 kernen deze kloksnelheid continu kunnen aanhouden. Prestatie- en temperatuurlimieten beïnvloeden het gedrag onder belasting.

Voor een korte, afzonderlijke taak kan een tijdelijk hogere kloksnelheid van belang zijn; bij een langdurige parallelle belasting is het daarentegen interessant om te zien welk vermogen het systeem gedurende de gehele looptijd levert. Andere modellen uit de serie hebben andere frequenties en het aantal kernen. Een vergelijking die uitsluitend op de hoogste GHz-waarde is gebaseerd, zou deze verschillen en de concrete toepassing buiten beschouwing laten.

Kernen, threads en virtuele CPU's

Een proces is, eenvoudig gezegd, een actieve programma-instantie. Daarin voeren een of meer threads instructies uit. Een fysieke CPU-kern beschikt over de hardware om dergelijk werk uit te voeren; besturingssystemen zien, afhankelijk van de processor, één of meerdere logische CPU-threads per kern. Logische threads van dezelfde kern delen daarbij delen van de hardware.

Een taak met een sterk serieel gedeelte kan dit deel niet willekeurig over veel kernen verdelen. Daar is het van belang hoe snel de uitvoerende thread het concrete werk afhandelt. Onafhankelijke webverzoeken kunnen daarentegen vaak parallel worden verwerkt: dan kunnen extra beschikbare kernen de totale doorvoer ondersteunen, mits andere bronnen geen beperking vormen.

Het aantal logische threads is niet hetzelfde als het aantal onafhankelijke fysieke kernen. De EPYC 9655 heeft bijvoorbeeld volgens de fabrikant 96 fysieke kernen en 192 threads. Uit die 192 threads volgt noch een verdubbeling van de prestaties ten opzichte van 96 threads, noch een bepaalde doorvoersnelheid voor een webserver.

Bij een virtuele server stelt de aanbieder het gastbesturingssysteem vCPU's klaar. Een vCPU is niet automatisch een fysieke kern die exclusief kan worden gebruikt: de toewijzing aan de host-hardware kan per aanbod verschillen, en de reken tijd kan met andere gasten worden gedeeld of door limieten worden beperkt.

Vraag die je moet stellen voordat je een keuze maakt, met het oog op de concrete toezegging van middelen: is CPU-tijd gegarandeerd of wordt deze gedeeld? Zijn er permanente prestatiebeperkingen en hoe worden vCPU's toegewezen? Een groot aantal vCPU's helpt een parallelle toepassing alleen voor zover er daadwerkelijk voldoende rekentijd beschikbaar is; voor een serieel gedeelte is dit geen vervanging voor een snelle uitvoering op één thread.

IPC en klokfrequentie samen berekenen

IPC en klokfrequentie beschrijven verschillende aspecten van de CPU-prestaties. Voor een passend afgebakend meetbereik kunnen hun effecten bij benadering met elkaar in verband worden gebracht: instructies per seconde komen overeen met de IPC vermenigvuldigd met het aantal effectieve CPU-cycli per seconde. De IPC heeft daarbij betrekking op de voltooide instructies en het aantal getelde cycli binnen hetzelfde bereik.

Door AI gegenereerde illustratie van een taktschijf en gegroepeerde vormen als symbool voor instructies per cyclus
De door AI gegenereerde illustratie maakt een onderscheid tussen klokcycli en de instructies die daarin worden uitgevoerd.

Illustratief rekenvoorbeeld, geen meting: bij een veronderstelde constante van 2,0 instructies per cyclus en 3,0 GHz komt men rekenkundig uit op 6,0 miljard instructies per seconde. Ook 1,5 IPC bij 4,0 GHz levert 6,0 miljard op. In dit voorbeeld compenseert de hogere kloksnelheid dus de lagere IPC in de berekening.

Dezelfde instructiesnelheden betekenen echter niet dat beide systemen evenveel webverzoeken verwerken. Voor dezelfde taak kunnen programma’s, afhankelijk van de compiler, de instructieset en de gebruikte instructies, een verschillend aantal instructies nodig hebben. Een instructie is daarom geen uniforme eenheid van voltooid werk van de toepassing.

Ook de responstijd van een website is niet direct af te lezen uit het product. Een thread kan wachten op gegevens van de opslagmedia of op een netwerkantwoord; ondertussen verklaart de instructiesnelheid niet de volledige verstreken tijd. Bij een virtuele machine komt daar nog bij dat deze niet per se te allen tijde CPU-tijd krijgt.

Om een vergelijking te kunnen maken, moet daarom duidelijk zijn welke code en welke periode in aanmerking zijn genomen. De formule helpt bij het in kaart brengen van de actieve uitvoering; voor de hostingbeslissing zijn bovendien voltooide taken en hun responstijden binnen een vergelijkbaar verzoekprofiel nodig.

Gegevensblad en kerncijfers indelen

Een datasheet biedt nuttige aanwijzingen voor de keuze van een hosting-CPU. De gegevens geven echter antwoord op verschillende vragen: IPC beschrijft het gedrag binnen het betreffende meetbereik, terwijl frequentiegegevens en het aantal kernen de eigenschappen van een processormodel specificeren. Pas in combinatie met de toepassing vormen deze gegevens bruikbare vergelijkingscriteria.

CPU-statistieken en hun beperkingen bij het vergelijken van hostingdiensten
SleutelfiguurDat betekentVoordeelBelangrijkste grens
IPCVoltooide instructies per getelde cyclusPlaatst de uitvoering in het gemeten programmaHangt af van het programma en de gegevens; instructies vormen geen gestandaardiseerde werkeenheid
BasisfrequentieOpgave van de fabrikant betreffende de basisfrequentie van het modelVergemakkelijkt de indeling van de gespecificeerde maatEr is geen bewijs van het tempo dat bij elke taak is gehaald
Maximale boostHoogste gespecificeerde boostfrequentieGeeft het bovenste frequentiepotentieel weerGedefinieerd voor één kern van de EPYC 9005 onder normale bedrijfsomstandigheden, niet als continu klokfrequentie voor alle kernen
kerncijferAantal fysieke processorkernenVermelding van beschikbare parallelle verwerkingscapaciteitOp zichzelf geen maatstaf voor de doorvoer van de toepassing
DiscussiesAantal gelijktijdig ondersteunde logische CPU-threadsHelpt bij het indelen van de logische uitvoeringsmogelijkhedenEen logische thread komt niet overeen met een extra fysieke kern

De EPYC 9655 laat zien hoe dergelijke specificaties bij elkaar horen: volgens AMD beschikt het model over 96 kernen en 192 threads, een basiskloksnelheid van 2,6 GHz en een maximale boost tot 4,5 GHz. De 4,5 GHz is geen gegarandeerde kloksnelheid voor alle kernen bij continue belasting en geen gemeten hostingdoorvoer.

Een ranglijst op basis van het maximale aantal GHz zou buiten beschouwing laten hoeveel werk verschillende processors per cyclus en per taak verrichten. Een ranglijst op basis van het aantal kernen gaat daarentegen voorbij aan het feit dat niet elke toepassing haar werk even goed parallel kan verdelen. Beide gegevens zijn uitgangspunten, geen definitieve oordelen over de prestaties.

Let bij aanbiedingen daarom op de Modelvariant en op welke bronnen daadwerkelijk bruikbaar zijn. Voor een betrouwbare vergelijking heb je bovendien een passend belastingsprofiel nodig en resultaten met vergelijkbare software en configuratie. Specificaties van verschillende modellen mogen niet worden verward met een maximum dat voor de hele productfamilie wordt aangenomen.

Hosting-CPU kiezen op basis van het belastingprofiel

Welke CPU geschikt is voor hosting, hangt af van wat de server moet doen. Een lange, afzonderlijke taak stelt andere eisen dan veel onafhankelijke webverzoeken. De tabel zet typische belastingprofielen om in een belangrijke maatstaf en een vraag die vóór de keuze moet worden beantwoord.

Vergelijkingsmaatstaven voor typische hostingbelastingen
lastprofielBelangrijkste meetgrootheidVraag vóór de aankoop
CPU-intensieve afzonderlijke taakDuur van de specifieke taakHoe snel werkt het betreffende seriële gedeelte onder aanhoudende belasting?
Parallelle webverzoekenVerzoeken per seconde en verdeling van de responstijden bij een bepaalde mate van parallelliteitHoeveel doorvoer leveren de bruikbare bronnen bij een aanvaardbare responstijd?
Database met veel opslagruimteLooptijd en responstijden van representatieve zoekopdrachtenKomen de opslagconfiguratie en de instellingen overeen met de werkgegevensset?
VPSToepassingsdoorvoer en responstijden binnen de toegezegde capaciteitHoe worden vCPU's toegewezen en welke CPU-limieten of -verdelingen gelden er?

Bij een afzonderlijke taak is de prestatie van de uitvoerende thread bijzonder belangrijk wanneer een groot deel van het werk serieel verloopt. Meer kernen zorgen niet automatisch voor een verkorting van dit deel. Ook een korte maximale boost volstaat niet als bewijs voor een langlopende taak: doorslaggevend is de gemeten looptijd onder de beoogde omstandigheden.

Veel onafhankelijke verzoeken kunnen daarentegen tegelijkertijd worden verwerkt. Hier is het niet alleen van belang hoeveel prestaties per thread worden geleverd, maar ook hoeveel resources tegelijkertijd beschikbaar zijn en hoe de responstijden zich ontwikkelen bij een toenemende belasting. De som van de nominale GHz-waarden is geen vervanging voor een vergelijking van de Totale doorvoer bij gelijke parallelliteit.

Bij een database met een grote werkdataset kunnen geheugentoegangen de uitvoering vertragen als de benodigde gegevens niet efficiënt uit de caches worden opgehaald. Een lage IPC kan aanleiding zijn voor nader onderzoek, maar is op zichzelf geen bewijs van een geheugenbottleneck. Controleer daarom ook de query's, de gegevensset en de geheugenconfiguratie voordat je de CPU vervangt.

Door AI gegenereerde illustratie van geheugenmodules in de sleuven van een servermoederbord
De door AI gegenereerde illustratie verwijst naar het werkgeheugen als mogelijke beïnvloedende factor bij databasebelasting.

Bij de VPS is bovendien de Toezegging inzake middelen Belangrijk: een vCPU is niet automatisch een exclusieve fysieke kern. Informeer naar de toewijzing, mogelijke CPU-limieten en het delen met andere gasten. Pas met deze gegevens kan een applicatietest zinvol worden vergeleken met een aanbod op een dedicated server.

Vergelijkbare gebruikstests plannen

Een zinvolle vergelijking begint bij jouw toepassing, niet bij een op zichzelf staand CPU-cijfer. Stel voor beide hostingpakketten dezelfde softwareversie, dezelfde dataset en dezelfde configuratie in. SPEC beschouwt de eigen toepassing op de eigen infrastructuur als de ideale maatstaf voor productkeuze.

Definieer vervolgens een Aanvraagprofiel, dat het latere gebruik zo goed mogelijk weergeeft: bijvoorbeeld welke pagina’s of API-eindpunten worden aangeroepen en hoeveel verzoeken er tegelijkertijd binnenkomen. Zorg ervoor dat de mate van parallelliteit en de limieten voor de beschikbare middelen tussen de doorlopen vergelijkbaar blijven. Als een aanbieder andere limieten voorschrijft, documenteer deze dan expliciet, in plaats van het verschil uitsluitend aan de CPU toe te schrijven.

Zorg voor een opwarmfase, zodat bijvoorbeeld de applicatie is opgestart en de caches zich kunnen vullen. Daarna helpen meerdere voldoende lange doorlopen om kortstondige schommelingen te onderscheiden van een terugkerend verschil. Leg ook vast of er tijdens de meting nog andere taken op de systemen draaiden.

Registreer naast de doorvoer ook de Verdeling van de responstijden en de fouten. Een hoger gemiddelde aantal afgehandelde verzoeken per seconde heeft op zich weinig nut als afzonderlijke verzoeken erg lang moeten wachten of vaker mislukken. Vergelijk daarom ook hoge percentielen van de responstijd bij dezelfde mate van parallelliteit.

Gepubliceerde SPEC-CPU2017-resultaten kunnen aanvullende informatie bieden. SPECspeed meet de tijd die nodig is voor taken, SPECrate de doorvoer; de twee maatstaven zijn niet direct onderling uitwisselbaar. Vergelijk resultaten van dezelfde maatstaf en houd rekening met de systeemconfiguratie en de software. De CPU-suite geeft geen volledig beeld van het netwerk en de I/O van een complete hostingdienst.

IPC en frequentie tijdens het gebruik controleren

Voor een eigen Linux-testomgeving kun je met perf de voltooide instructies en cycli van een bestaand, getest programma vastleggen. In het volgende voorbeeld is testprogramm een plaatshouder: vervang deze door je testprogramma en, indien van toepassing, de bijbehorende argumenten. Het commando is een voorstel voor een meting, geen reeds uitgevoerde test.

Terminal
perf stat -e '{instructions,cycles}' -- testprogramm

De accolades vatten de gebeurtenissen samen tot een Tellergroep samen. Ze moeten gelijktijdig worden geregistreerd, wat fouten als gevolg van tijdverschuivende multiplexing kan verminderen. Deel het aantal getelde instructies door het aantal getelde cycli om de IPC voor dit meetbereik te verkrijgen; perf kan deze waarde ook direct weergeven.

Of de gebeurtenissen beschikbaar zijn en mogen worden gelezen, hangt af van de hardware, de kernel, de machtigingen en, indien van toepassing, de virtualisatieomgeving. Een gebeurtenisgroep die niet beschikbaar is of niet gezamenlijk kan worden geteld, levert geen betrouwbare vergelijking op. Wijzig de beveiligingsinstellingen niet alleen voor dit voorbeeld.

Ook een frequentieweergave heeft context nodig: scaling_cur_freq komt volgens de kernel-documentatie in veel gevallen overeen met de laatst door het stuurprogramma opgevraagde toestand en niet noodzakelijkerwijs met de daadwerkelijk bereikte hardwarekloksnelheid. De waarde die niet overal beschikbaar is cpuinfo_cur_freq moet daarentegen de actuele frequentie weergeven die door de hardware wordt vastgesteld. Meer over de CPU-regelaar op hostingservers legt de regeling van de frequentieschaling uit.

Een lage IPC is een aanwijzing voor nader onderzoek, maar geen definitieve diagnose. Geheugentoegangen kunnen de uitvoering vertragen; bovendien moet worden nagegaan welk deel van het programma is gemeten en of er andere factoren meespelen. Vergelijk de tellerwaarde daarom met het gedrag van de toepassing en de manier waarop deze toegang krijgt tot gegevens.

Knelpunt herkennen en beslissen over een upgrade

Begin met een concreet symptoom: worden verzoeken traag bij hoge belasting, neemt het aantal fouten toe of duurt een bepaalde taak te lang? Noteer wanneer het probleem zich voordoet en welke taken er tegelijkertijd worden uitgevoerd. Pas dan kan worden nagegaan of meer CPU-vermogen de betreffende vertraging überhaupt kan verminderen.

Controleer eerst de beschikbare en gebruikte CPU-tijd. Een taak die voortdurend veel rekenkracht vereist, kan baat hebben bij een snellere uitvoering of meer bruikbare parallelliteit. Een hoge belasting alleen verklaart echter noch welke code deze veroorzaakt, noch of de responstijd vooral daar ontstaat. Zet de bevindingen daarom naast de doorvoer en responstijden van dezelfde belastingsfase.

Onderzoek vervolgens de geheugenbehoefte en de gegevenstoegang. Als een database vaak gegevens buiten de CPU-cache moet ophalen, kan deze op geheugen moeten wachten; een lage IPC kan hierop wijzen, maar bewijst de oorzaak niet. Ook een tekort aan werkgeheugen, toegang tot opslagmedia of trage externe diensten kunnen de waargenomen vertraging beïnvloeden.

Bij een VPS hoort de Toezegging inzake middelen Wat betreft de diagnose: vraag naar de toewijzing van de vCPU’s, mogelijke CPU-limieten en het delen met andere gasten. Een dedicated server biedt een andere toewijzing van fysieke resources, maar ook daar zijn de toepassing, de configuratie en het belastingprofiel bepalend voor het resultaat. Vergelijk beide aanbiedingen indien mogelijk met dezelfde applicatietest.

Overweeg een CPU-upgrade als uit de metingen blijkt dat er sprake is van een CPU-bottleneck en het nieuwe tarief daadwerkelijk de benodigde rekentijd biedt. Als de vertraging voornamelijk te wijten is aan het geheugen, de opslagmedia of een externe dienst, is het zinvoller om daar verder onderzoek te doen. Leg de uitgangssituatie vast, zodat je een wijziging achteraf op een vergelijkbare manier kunt beoordelen.

Beschouw maximale boost-waarden niet als een gegarandeerde continue kloksnelheid voor alle kernen en beschouw een IPC-waarde niet als een universele eigenschap van de CPU. Evenmin volstaat één enkel benuttingscijfer voor een volledige diagnose van knelpunten. De beslissing wordt genomen op basis van de concrete taak en de daadwerkelijk beschikbare middelen, niet op basis van één enkele piekwaarde.

Bronnen en stand van zaken op vakgebied

Stand van het onderzoek:

Stand van het onderzoek: 4 november 2026; het voorbeeld van het gegevensblad heeft betrekking op de AMD EPYC 9655. Geen grafiek, aangezien er geen vergelijkbare meetwaarden beschikbaar zijn.

https://www.intel.com/pressroom/kits/core2duo/pdf/ICM_whitepaper.pdf

https://www.amd.com/content/dam/amd/en/documents/epyc-business-docs/datasheets/amd-epyc-9005-series-processor-datasheet.pdf

https://www.spec.org/cpu2017/Docs/overview.html

https://www.man7.org/linux/man-pages/man2/perf_event_open.2.html

https://www.man7.org/linux/man-pages/man1/perf-report.1.html

https://www.amd.com/en/products/processors/server/epyc/9005-series/amd-epyc-9655.html

https://www.man7.org/linux/man-pages/man1/perf-stat.1.html

https://www.man7.org/linux/man-pages/man1/perf-list.1.html

https://docs.kernel.org/admin-guide/pm/cpufreq.html

Huidige artikelen

Door AI gegenereerde illustratie van twee vergelijkbare pagina-indelingen op verschillende hostingplatforms
Wordpress

WordPress-benchmark: de prestaties van hosting op reproduceerbare wijze testen

Een betrouwbare WordPress-benchmark maakt een onderscheid tussen de browserervaring, het gedrag bij hoge belasting en de invloed van de hosting. Zo kun je vergelijkbare metingen plannen, de cache-status controleren en de resultaten evalueren zonder beloften over een testwinnaar.