Detecteer of publieke cloud EC2 overboekt is met Steal Time
Twee meetinstrumenten onthullen de waarheid over overboeking
Hoge Steal Time betekent dat CPU overboekt is; gecombineerd met de cacheklif en de premieverhouding kun je bewijs verzamelen en je rechten laten gelden.
Twee linialen voor overboeking
Om te beoordelen of een publieke cloud EC2 overboekt is, kun je niet alleen naar de CPU-bezettingsgraad kijken, want vrije tijd in de virtuele machine betekent niet dat de fysieke machine niet druk is. De eerste liniaal is Steal Time (steal%), die je direct vertelt: de CPU-tijd die jou had moeten toekomen, wordt door de host stilletjes aan een vervelende buurman geschonken. Wanneer steal% structureel boven de 10% ligt, kun je er in principe van uitgaan dat de host overboekt is.
Maar alleen naar steal kijken is niet genoeg — sommige instanties (zoals de AWS t-serie) hebben een CPU Credit-mechanisme, en een hoge steal tijdens pieken kan gewoon betekenen dat de credits op zijn. Dus verschijnt de tweede liniaal: schijf-cache-klif. Overboekte hosts draaien vaak ook veel IO-verzoeken; wanneer je met fio willekeurige leesbewerkingen test, kan de paginacache-trefferratio of de latentie een plotselinge daling vertonen, die qua timing sterk overeenkomt met CPU-steal. Door de twee linialen met elkaar te bevestigen, krijg je een compleet bewijs.
Wil je snel aan de slag met detectie? We hebben eerder een detectiescript voor overboekte cloudservers samengesteld, dat direct steal- en cache-metrieken uitvoert, zodat je niet in de valkuil trapt voordat je koopt.
Praktijktesten en bewijsvoering
Voer een vergelijkende test uit met de nieuwste Alibaba Cloud ECS g9i en AWS EC2 m7i. Het belastingsscript is vast: stress-ng --cpu 4 --timeout 300, terwijl we met mpstat elke 5 seconden het steal-percentage samplen; daarna voeren we met fio een 4K willekeurige lees uit en noteren de IOPS en p99-latentie.
# CPU steal sampling
mpstat -P ALL 5 > steal.log &
# Disk cache cliff test
fio --name=cachetest --rw=randread --bs=4k --size=1G --runtime=120 --iodepth=32In de praktijk bereikte de g9i tijdens de piekuren overdag een gemiddelde steal van 12,4% en een piek van 18,1%, terwijl de p99-latentie van fio opsprong van 0,8 ms naar 12 ms, wat een duidelijke cache-cliff vertoont. In dezelfde periode bleef de steal van de m7i stabiel onder 2%, met een vloeiende latentie. Opgelet: bij t-serie instanties met lage configuratie en burst-capaciteit is een steal van af en toe meer dan 10% normaal, maar als dit bij rekengeoptimaliseerde typen zoals de m-serie en g9i aanhoudend boven de limiet ligt, is dat een bewijs van overboeking.
Bewijsvoering: noteer bij elke sampling de tijdstempel, instance-ID en imageversie, en maak schermafbeeldingen van de ruwe gegevens van CloudWatch / Alibaba Cloud Monitoring. Deze logs en screenshots zijn het belangrijkste bewijsmateriaal voor latere supporttickets.
Premiepercentage en uw rechten
Het moeilijkst te herkennen aan overboeking is: u betaalt een premie, maar krijgt slechts verminkte rekenkracht. Vanuit een FinOps-perspectief is de werkelijke prijs-prestatieverhouding = eenheidsprijs ÷ effectieve CPU-tijd. De effectieve tijd kan worden geschat met de formule: beschikbare kerntijd = aantal vCPU's × (1 - gemiddeld steal%) × duur.
Voorbeeld: g9i kost 1,2 yuan/uur (4 vCPU's). Als de gemiddelde steal 15% is, bedraagt de werkelijk beschikbare kerntijd slechts 3,4 vCPU·u, wat neerkomt op een stijging van 17,6% in de kosten per effectieve vCPU. Vergeleken met de m7i met dezelfde specificaties, die niet overboekt, wordt de premie juist omgekeerd door de 'overboekingsbelasting' — dit betekent vaak dat u meer betaalt voor een slechtere service.
Na het verzamelen van bewijs is het niet voldoende om te klagen op basis van 'haperingen'. Stel een PDF samen met: een tijdreeksgrafiek van steal%, de fio-output van de cache-klif, een vergelijkingstabel met andere instanties van dezelfde specificaties, en de berekening van het premiepercentage. Dien een ticket in met de duidelijke eis om 'verlaging van de configuratie of restitutie van het verschil op basis van de gemeten effectieve rekenkracht'. Alibaba Cloud en AWS erkennen overboeking doorgaans niet, maar tegenover harde gegevens bieden ze een tegoedbon of upgrade-compensatie aan met als reden 'resourceconflict op de host'. Voordat u de volgende cloudinstantie koopt, meet eerst met twee linialen, zodat u geen premie betaalt voor een overboeking.
FAQ
Hoe gebruik ik Steal Time om te bepalen of EC2 overboekt is?
Voer een belasting uit die de CPU continu bezig houdt en controleer of de steal-waarde gedurende een periode boven de 5% ligt; dat duidt op overboeking.
Welke prestatieproblemen worden veroorzaakt door overboeking?
CPU-contention veroorzaakt prestatiefluctuaties en hogere latentie, vooral tijdens piekuren.
Hoe verzamel ik bewijs van overboeking op de publieke cloud?
Leg de steal-curve en de cacheklif vast, sla screenshots van de monitoring en ticketrecords op, en exporteer deze naar PDF voor archivering.
Hoe weerspiegelt de premieverhouding de prijs-kwaliteitverhouding bij overboeking?
Vergelijk het prestatieverlies met de kortingspercentages. Als de steal hoog is en de korting klein, dan is de prijs-kwaliteitverhouding laag en kun je compensatie eisen.
Hoe dien ik een klacht in over overboeking?
Voeg bewijs toe van afwijkende steal- en cachewaarden en een PDF, vraag om downgrade of restitutie, en dien indien nodig een klacht in.