Övervakning

Förstå belastningsgenomsnitt på Linux

Förstå belastningsgenomsnitt på Linux
Lastmedelvärde är en mätning av mängden arbete jämfört med gratis CPU-cykler som finns tillgängliga på en systemprocessor. I den här artikeln ska jag definiera termen, visa hur Linux beräknar detta värde och sedan ge insikt i hur man tolkar systembelastning.

Olika metoder för beräkning av belastning

Innan vi dyker in i Linux-belastningsmedelvärden måste vi utforska de olika sätten som belastningen beräknas och ta itu med den vanligaste mätningen av CPU-belastningen - en procent.

Windows beräknar belastningen annorlunda än Linux, och eftersom Windows historiskt sett har varit mer populärt på skrivbordet, förstås Windows-definitionen av belastning i allmänhet av de flesta datoranvändare. De flesta Windows-användare har sett systembelastningen i Aktivitetshanteraren visas som en procentsats från 0% till 100%.

I Windows härleds detta genom att undersöka hur ”upptagen” System tomgångsprocess är och använder det inversa för att representera systembelastningen. Om till exempel ledig tråd kör 99% av tiden skulle CPU-belastningen i Windows vara 1%. Detta värde är lätt att förstå men ger mindre övergripande detaljer om systemets verkliga status.

I Linux representeras belastningsgenomsnittet istället av ett decimaltal som börjar på 0.00. Värdet kan grovt definieras som antalet processer under den senaste minuten som fick vänta på sin tur för körning. Till skillnad från Windows är Linux-belastningens genomsnitt inte en omedelbar mätning. Belastningen ges i tre värden - genomsnittet på en minut, genomsnittet på fem minuter och genomsnittet på femton minuter.

Förstå belastningsgenomsnitt i Linux

Till en början verkar detta extra detaljlager onödigt om du bara vill veta det aktuella läget för CPU-belastning i ditt system. Men eftersom medelvärdet för tre tidsperioder ges, snarare än en omedelbar mätning, kan du få en mer fullständig uppfattning om förändringen av systembelastningen över tiden i en enda blick på tre siffror

Att visa lastgenomsnittet är enkelt. På kommandoraden kan du använda en mängd olika kommandon. Jag använder helt enkelt kommandot "w":

root @ virgo [~] # w
21:08:43 upp 38 dagar, 4:34, 4 användare, belastningsmedelvärde: 3.11, 2.75, 2.70

Resten av kommandot visar vem som är inloggad och vad de kör, men för våra ändamål är denna information irrelevant så jag har klippt den från ovanstående skärm.

I ett idealiskt system ska ingen process hållas uppe av en annan process (eller tråd) utan i ett enda processorsystem, detta inträffar när lasten går över 1.00.

Orden ”enda processorsystem” är oerhört viktiga här. Om du inte kör en gammal dator har din dator antagligen flera CPU-kärnor. I maskinen jag är på har jag 16 kärnor:

root @ virgo [~] # nproc
16

I det här fallet är ett lastgenomsnitt på 3.11 är inte alls alarmerande. Det betyder helt enkelt att lite mer än tre processer var redo att köras och CPU-kärnor var närvarande för att hantera deras körning. På detta specifika system måste belastningen nå 16 för att kunna betraktas som "100%".

För att översätta detta till en procentbaserad systembelastning kan du använda det här enkla, om inte stumt, kommandot:

cat / proc / loadavg | klipp -c 1-4 | eko "skala = 2; ($ (Dessa kommandosekvenser isolerar 1 minuts medelvärde via klippning och ekar det, dividerat med antalet CPU-kärnor, via bc, en kommandoradsräknare, för att härleda procentsatsen.

Detta värde är inte vetenskapligt men ger en ungefärlig approximation av CPU-belastningen i procent.

En minut att lära sig, en livstid att behärska

I föregående avsnitt lade jag exemplet “100%” av en belastning på 16.0 på ett 16 CPU-kärnsystem i citat eftersom beräkningen av belastningen i Linux är lite mer otydlig än Windows. Systemadministratören måste komma ihåg att:

På grund av detta är det inte helt en empirisk sak att ta hand om CPU-belastning på ett Linux-system. Även om det vore så är inte CPU-belastning en tillräcklig mätning av det totala systemresursutnyttjandet. Som sådan kommer en erfaren Linux-administratör att överväga CPU-belastning i kombination med andra värden som I / O-väntan och procentsatsen av kärnan kontra systemtiden.

I / O Vänta

I / O-väntan ses lättast med kommandot "överst":

I skärmdumpen ovan har jag markerat I / O-väntan. Det här är en procentandel av tiden som CPU: n väntade på att in- eller utgångskommandon skulle slutföras. Detta är vanligtvis ett tecken på hög diskaktivitet. Även om en hög vänteprocent inte ensam kan försämra CPU-bundna uppgifter, kommer det att minska I / O-prestanda för andra uppgifter och få systemet att känna sig trögt.

Hög I / O-vänta utan någon uppenbar orsak kan indikera ett problem med en skiva. Använd kommandot “dmesg” för att se om några fel har inträffat.

Kärna vs. System tid

Ovan markerade värden representerar användarens och kärnans (system) tid. Detta är en fördelning av den totala förbrukningen av CPU-tid för användare (i.e. applikationer osv.) och kärnan (i.e. interaktion med systemenheter). Högre användartid indikerar mer CPU-användning av program där högre kärntid indikerar mer bearbetning på systemnivå.

En ganska genomsnittlig belastning

Att lära sig förhållandet mellan belastningsmedelvärde och faktisk systemprestanda tar tid, men innan lång tid ser du en tydlig korrelation. Beväpnad med detaljerna i systemprestandamätvärdena kommer du att kunna fatta bättre beslut om hårdvaruuppgraderingar och programresursanvändning.

OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...
Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...