of u nu een server voor een toepassing draait of alleen uw lokale machine, u wilt dat uw computer het beste draait. Daarom moet u ervoor zorgen dat uw computer CPU, schijf en geheugengebruik te controleren. Het monitoren van dingen zoals geheugengebruik en schijfgebruik zijn eigenlijk vrij eenvoudig. Hoeveel schijfruimte heb je nog? Is uw schijf gefragmenteerd? Heb je genoeg RAM voor de toepassingen die je gebruikt? Wissel je regelmatig geheugen?
dat zijn eenvoudige vragen om te beantwoorden, en het zijn vragen die je moet stellen., Maar sommige vragen zijn ingewikkelder, vooral als het gaat om CPU metrics. Zeker, er zijn eenvoudige statistieken zoals het totale CPU-gebruik. Maar als je Linux gebruikt, heb je meer esoterische (en soms nuttiger) statistieken, zoals CPU-belasting. In deze post, we gaan om te praten over wat de CPU-belasting metriek eigenlijk betekent, en hoe je het kunt gebruiken om uw servers te optimaliseren.
CPU-belasting vs.CPU-gebruik
het eerste wat je moet begrijpen is dat CPU-belasting niet hetzelfde is als CPU-gebruik., Ook al klinken ze misschien hetzelfde, ze zijn heel anders. CPU-gebruik is een meting, in een percentage, van hoeveel tijd de CPU actief besteedt aan het berekenen van iets. Bijvoorbeeld, als je een programma dat ononderbroken verwerkingskracht nodig voor 54 van de laatste 60 seconden, uw CPU-gebruik op een kern zou 90% zijn. In plaats daarvan, als het programma slechts vereist zes seconden verwerkingstijd op een kern, zou het gebruik 10%.
De meeste bedrijven proberen het CPU-gebruik van hun servers zo dicht mogelijk bij 100% te houden., De meeste servers worden verkocht door de totale rekenkracht, en als uw server zit alleen op 30% CPU-gebruik, je betaalt voor te veel processorkracht. U kunt uw processor downgraden naar een lager niveau, geld besparen en geen vermindering van de kwaliteit van de prestaties van uw server zien.
CPU-belasting
CPU-belasting is anders. In plaats van het meten van het percentage van de tijd dat de CPU werkt, CPU load meet hoeveel programma ‘ s worden gebruikt of wachten op een processor kern in een keer. Een volledig inactieve processor zou een belastingwaarde van 0 hebben., In ons vorige voorbeeld zouden we een minuut laadtijden van .9 en .1, respectievelijk. Dat is vrij intuïtief. Echter, wat niet intuïtief over CPU belasting is dat een waarde van 1 is niet per se een volledig geladen meting.
in plaats daarvan, wat “volledige” CPU belasting is afhankelijk van hoeveel besturingssysteem threads uw CPU heeft. De meeste CPU ‘ s vormen tegenwoordig meer dan één CPU-kern, met meer dan één CPU-thread. Als je CPU vier cores heeft, dan is een CPU-belasting van 1 geen volledig geladen CPU. In plaats daarvan zou het slechts een kwart geladen zijn., In plaats daarvan zou je CPU-belasting als vol worden beschouwd voor je CPU als je belastingwaarde 4 was, niet 1.
het ontcijferen van Linux CPU belastingen
het uitvoeren van een programma dat Linux CPU belasting totalen toont kan in het begin een beetje verwarrend zijn. Als je een commando als uptime of top uitvoert, zie je misschien een CPU-laadwaarde die eruit ziet als 1.68 0.55 5.91. Als je niet weet wat je zoekt, lijkt dit op lawaai. Gelukkig is dit eigenlijk vrij gemakkelijk te ontcijferen. Er zijn drie waarden hier, en we zullen ze in volgorde bekijken.
de eerste waarde is 1,68. Dit is de waarde van CPU-belasting tijdens de laatste minuut., Zoals we al eerder vermeld, Dit is een maat van hoeveel programma ‘ s werden met behulp van CPU tijd tijdens de laatste minuut. Dus, tijdens de laatste minuut op deze machine, waren er een gemiddelde van 1.68 programma ‘ s ofwel met behulp van CPU verwerkingstijd of wachten op CPU verwerkingstijd. Als dit een single-threaded CPU is, betekent dat dat de computer overbelast is. Gebruikers wachten op hun programma ‘ s om te draaien op de CPU, en ervaren gedegradeerde prestaties. Als dit in plaats daarvan een dual-core computer of een quad-core is, kunnen gebruikers de CPU-tijd net zo snel krijgen als ze nodig hadden, op het laatste moment.,
de tweede waarde is 0,55. Dit is de meting van de laatste 5 minuten. Zoals we eerder besproken, een meting onder 1 betekent dat de CPU een deel van de tijd doorgebracht in dat venster volledig inactief. In dit geval was de CPU bijna de helft van de tijd inactief. Als we onze CPU optimaliseren om voortdurend iets te doen, is dat geen goed teken.
het uiteindelijke getal, 5,91, is een meting van de laatste 15 minuten. Als u gebruik maakt van een acht-core CPU, dan is dit nummer niet bijzonder schokkend. Als je een dual-core CPU gebruikt, dan betekent een getal als 5.91 dat je CPU erg overbelast is., Gebruikers wachten regelmatig op CPU-tijd en ervaren waarschijnlijk aanzienlijk gedegradeerde prestaties.
Unix vs. Linux CPU Loads
als je gewend bent om de CPU load meting in Unix te gebruiken, kunnen sommige van deze getallen nogal hoog voor je lijken. Dat komt omdat Unix en Linux de CPU-belasting anders meten. Unix meet CPU-belasting uitdrukkelijk als een maat voor programma ‘ s die actief gebruik maken van of wachten op CPU-verwerking. Linux meet dingen een beetje anders, en begrijpen hoe is de sleutel tot een goed systeembeheer.,
Linux meet de CPU-belasting door zowel te kijken naar programma ’s die op dit moment CPU-tijd gebruiken of wachten, als naar programma’ s die in wachtstaten staan. Bijvoorbeeld, een programma dat wacht op een netwerk verzoek, of om iets te laden van een schijf, zou niet tellen voor CPU belasting op Unix. Op Linux wel. Of dit een betere of slechtere aanpak is, hangt af van uw use case. Als u alleen het totale CPU-gebruik wilt meten, biedt Unix een betere interface., Maar als je een programma hebt dat 30 seconden vastzit en wacht op een netwerkverzoek, zal Linux je dat vertellen. Unix zou die data nooit blootleggen.
CPU-belasting optimaliseren
Er is geen zilveren kogel voor het optimaliseren van uw CPU-belasting. Het is een proces dat je holistisch moet benaderen. Net als CPU-gebruik, wanneer je op een server wilt u dicht bij 100%, maar niet over. Soms, het proces van het optimaliseren van uw CPU belastingen is vrij eenvoudig. Misschien zal je server maar twee threads tegelijk gebruiken., In dat geval is het optimaliseren van de serverbelasting niet ingewikkelder dan het hebben van een dual-core processor. Je hebt misschien een snellere processor nodig om ervoor te zorgen dat deze programma ‘ s op tijd zijn voltooid, maar je hebt nooit meer dan twee cores nodig.
De meeste systemen beperken zich echter niet tot precies twee actieve threads. De meeste servers zijn veel ingewikkelder. En een van de echte uitdagingen is om het aantal cores zo laag mogelijk te houden, want dat bespaart u geld, zonder te laag te gaan en gebruikerservaringen te vernederen. Het kan zijn dat je nodig hebt om de code die uw server draait te optimaliseren., Soms, je nodig hebt om te bepalen hoeveel programma TIJD wordt verbruikt door te wachten op dingen zoals database queries. Het kan zijn dat je echt nodig hebt om de kern tellen op uw processor. Bottlenecked servers kunnen een aantal oorzaken hebben, en kunnen op een aantal manieren worden opgelost.
Hoe is uw CPU-belasting?
Het bewaken en optimaliseren van uw CPU belasting is een belangrijk onderdeel van het krijgen van het meeste voor uw server geheugen. Helaas is het ook een tijdrovend, handmatig proces. Zoals opgemerkt, de meeste Linux commando ‘ s bieden alleen CPU belasting voor 15-minuten windows., Dat is een goede zaak; je zou niet willen dat de ramen veel breder dan dat. Je zou het moeilijk hebben om nuttige informatie uit ze te krijgen. Echter, het houden van een oogje op CPU-belasting over rollende periodes van 15 minuten is een soort van hoofdpijn.
gelukkig zijn er goede hulpmiddelen om dit soort dingen voor u te controleren. Scalyr kan bijvoorbeeld de CPU-belasting controleren door enkele logs in te nemen. Je krijgt niet alleen een eenvoudige numerieke afdruk., In plaats daarvan krijg je een mooi beeld dat je totale CPU-belasting in de loop van de tijd toont. Dit kan vooral nuttig zijn, omdat het U helpt specifieke vensters te lokaliseren die het meest veeleisend zijn op uw CPU. Het optimaliseren van de prestaties van uw server betekent het begrijpen van het in detail, en niet alleen op een hoog niveau.
een deel van het zijn van een goede systeembeheerder betekent het begrijpen van uw server vanuit elke richting. Weten hoe CPU-belasting te interpreteren en hoe het te optimaliseren is een belangrijk onderdeel van het maximaliseren van uw bedrijf server investering., Voordat je dat kunt doen, moet je begrijpen wat de CPU-belasting van je server eigenlijk is. Er is geen betere dag dan vandaag om te beginnen met het monitoren van uw server CPU load. U kunt beginnen met het formuleren van een plan voor optimalisatie vandaag.
Dit bericht is geschreven door Eric Boersma. Eric is een software-ontwikkelaar en development manager die alles heeft gedaan van IT-beveiliging in farmaceutica tot het schrijven van intelligentiesoftware voor de Amerikaanse overheid tot het bouwen van internationale ontwikkelingsteams voor non-profitorganisaties., Hij houdt ervan om te praten over de dingen die hij heeft geleerd langs de weg, en hij geniet van het luisteren naar en leren van anderen ook.