Enten du kjører en server for et program eller bare lokalt på din maskin, du vil datamaskinen som kjører på sitt beste. Det er derfor du bør sørge for å overvåke datamaskinens CPU, disk, og minnebruk. Overvåking ting som bruk av minne og disk usage er faktisk ganske enkelt. Hvor mye diskplass har du igjen? Er harddisken fragmentert? Du har nok RAM til programmer du bruker? Er du regelmessig bytte minne?
De er lett spørsmål å besvare, og de er spørsmål du bør stille., Men noen spørsmål er mer komplisert, spesielt når det kommer til CPU-beregninger. Jada, det er enkle beregninger som samlede CPU-bruken. Men hvis du bruker Linux, du har mer esoterisk (og noen ganger mer nyttig) beregninger som for eksempel CPU-belastning. I dette innlegget, vi kommer til å snakke om hva de CPU-belastning beregning egentlig betyr, og hvordan du kan bruke det til å optimalisere dine servere.
CPU-Belastning vs CPU-Bruk
Den første tingen å forstå er at CPU-belastning er ikke det samme som at CPU-bruken., Selv om de kan høres like ut, de er ganske forskjellige. CPU-bruk er en måling, i prosent, av hvor mye tid CPU bruker aktivt computing noe. For eksempel, hvis du hadde et program som kreves uavbrutt prosessorkraft for 54 av de siste 60 sekunder, CPU-bruk på én kjerne vil være 90%. I stedet, hvis programmet kreves bare seks sekunder saksbehandlingstid på én kjerne, og bruk vil være 10%.
de Fleste bedrifter søke å holde CPU-bruken av deres servere så nær 100% som mulig., De fleste servere er solgt av totalt datakraft, og hvis serveren er bare å sitte på 30% CPU-bruk, du betaler for for mye prosessorkraft. Du kan nedgradere din prosessor til et lavere nivå, spare penger, og ser ingen reduksjon i kvaliteten på din server ytelse.
CPU-Belastning
CPU-belastning er forskjellige. I stedet for å måle prosentandelen av tiden som CPU-en er i arbeid, CPU-belastning måler hvor mange programmer bruker eller venter for en prosessorkjerne på en gang. En helt inaktiv prosessor ville ha en legge-verdi på 0., I vår forrige eksempel, ville vi ha en-liten lasting av .9 .1, henholdsvis. Det er ganske intuitivt. Men, hva er unintuitive om CPU-belastning er at verdien 1 er ikke nødvendigvis et fullt lastet måling.
i Stedet, hva som utgjør «full» CPU-belastningen er avhengig av hvor mange operativsystem tråder din CPU skryte av. De fleste Cpuer i disse dager utgjøre mer enn bare en CPU-kjerne, som kjører mer enn bare én CPU tråden. Hvis din CPU har fire kjerner, deretter en CPU-belastning av 1 ikke er en fullastet CPU. I stedet, ville det bare være ett kvartal lastet., I stedet, CPU-belastningen vil bli ansett som fullstendig for din CPU hvis load-verdien var 4, 1.
Tyde Linux CPU-Belastning
du Kjører et program som viser Linux CPU-belastning totaler kan være litt forvirrende. Hvis du kjører en kommando som oppetid eller øverst kan du se en CPU-belastning verdi som ser ut som 1.68 0.55 5.91. Hvis du ikke vet hva du leter etter, dette ser ut som støy. Heldigvis, dette er faktisk ganske lett å tyde. Det er tre verdier her, og vi skal se på dem i rekkefølge.
Den første verdien er 1.68. Dette er verdien av CPU-belastning i løpet av de siste liten., Som vi har nevnt før, dette er et mål på hvor mange programmer som bruker CPU-tid i løpet av de siste liten. Så, i løpet av de siste liten på denne maskinen, var det et gjennomsnitt på 1.68 programmer enten du bruker CPU prosessering tid eller venter på CPU saksbehandlingstid. Hvis dette er et single-threaded CPU, som betyr at datamaskinen er overbelastet. Brukere som venter på sine programmer å kjøre på CPU, og opplever redusert ytelse. Hvis du i stedet, dette er en dual-core datamaskin eller en quad-core, brukerne er i stand til å få CPU-tid like raskt som de trengte det, i løpet av de siste liten.,
Den andre verdien er 0.55. Dette er måling i løpet av de siste 5 minutter. Som vi tidligere har diskutert, er et mål på under 1 betyr at CPU brukt litt av tiden i det vinduet helt inaktiv. I dette tilfellet, CPU var ledig for nesten halvparten av tiden. Hvis vi optimalisere vår CPU skal hele tiden gjøre noe, det er ikke et godt tegn.
Det endelige antallet, 5.91, er en måling av de siste 15 minutter. Hvis du bruker en åtte-core CPU, så dette tallet er ikke spesielt sjokkerende. Hvis du bruker en dual-core CPU, og deretter et tall som 5.91 betyr at CPU er svært overbelastet., Brukere er ofte venter for CPU-tid, og er trolig opplever betydelig redusert ytelse.
Unix vs. Linux CPU-Belastning
Hvis du er vant til å bruke CPU-belastning måling i Unix, noen av disse tallene kan virke litt høy til deg. Det er fordi Unix-og Linux måle CPU-belastning på en annen måte. Unix måler CPU-belastning uttrykkelig som et mål på programmer som aktivt bruker eller venter på CPU-behandling. Linux tiltak ting litt annerledes, og forstå hvordan er nøkkelen til gode system administrasjon.,
Linux måler CPU-belastning ved å se både på programmer som bruker eller venter på CPU-tid i tillegg til programmer som er i vente stater. For eksempel, et program som venter på en forespørsel til nettverket om, eller å legge noe fra en disk, ville ikke telle mot CPU-belastning på Unix. På Linux, det gjør det. Om dette er bedre eller verre tilnærming avhenger av use case. Hvis du er ute etter å måle noe, men totalt sett CPU-bruk, Unix har et bedre grensesnitt., Men hvis du har et program som er låst i 30 sekunder venter på et nettverk forespørsel, Linux vil fortelle deg det. Unix ville aldri overflate som data i det hele tatt.
Optimalisere CPU-Belastning
Det er ingen sølvkule for å optimalisere CPU-belastning. Det er en prosess som du trenger for å nærme seg en helhetlig måte. Mye som CPU-bruk, når du er på en server du ønsker å være nær 100%, men ikke over. Noen ganger er prosessen med å optimalisere CPU-belastning er ganske enkel. Kanskje din server vil bare bruke to tråder samtidig., I så fall, optimalisere server laster er ikke mer komplisert enn å ha en dual-core-prosessor. Det kan hende du trenger en raskere prosessor for å sørge for at disse programmene komplett i tid, men du vil aldri trenge mer enn to kjerner.
de Fleste systemer egentlig ikke begrense seg til nøyaktig to aktive tråder, skjønt. De fleste servere er mye mer komplisert. Og en av de virkelige utfordringene er å holde antall kjerner så lavt som mulig, fordi det sparer deg for penger, uten å gå for lavt og nedverdigende brukeropplevelser. Det kan være at du trenger for å optimalisere koden din server kjører., Noen ganger trenger du å finne ut hvor mye program tiden er fortært av å vente på ting som database spørringer. Det kan være at du må virkelig opp kjernen teller på prosessoren din. Bottlenecked servere kan ha en rekke årsaker, og kan bli løst på en rekke måter.
Hvordan er Din CPU-Belastning?
Overvåke og optimalisere CPU-belastning er en viktig del av å få mest mulig for din server minne. Dessverre, det er også en tidkrevende, manuell prosess. Som nevnt, de fleste Linux-kommandoer bare gi CPU-belastning for 15-minutters windows., Det er en god ting, ville du ikke vil at windows mye bredere enn det. Du vil ha en vanskelig tid å få nyttig informasjon ut av dem. Men, holde et øye på CPU-belastning over rullerende 15-minutters perioder er litt av en hodepine.
Heldigvis finnes det gode verktøy for å overvåke disse slags ting for deg. For eksempel, Scalyr kan overvåke CPU-belastning bare ved inntak av noen logger. Du vil ikke bare få en enkel numerisk utskrift., I stedet, du vil få en fin visuell som viser den samlede CPU-belastning over tid. Dette kan være spesielt nyttig, fordi det hjelper deg med å finne bestemte windows som er den mest krevende på din CPU. Optimalisere din server ytelse betyr å forstå det i detalj, og ikke bare på et høyt nivå.
en Del av det å være en god systems administrator betyr å forstå din server fra alle retninger. Å vite hvordan man skal tolke CPU-belastning og hvordan å optimalisere det er en viktig del av å maksimere bedriftens server investering., Før du kan gjøre det, trenger du å forstå hva din server CPU-belastning faktisk er. Det er ingen bedre dag enn i dag for å komme i gang overvåking av din server, CPU-belastning. Du kan begynne å formulere en plan for optimalisering i dag.
Dette innlegget ble skrevet av Eric Boersma. Eric er en programvare utvikler og utvikling manager som har gjort alt fra IT-sikkerhet i pharmaceuticals til å skrive intelligence-programvare for den AMERIKANSKE regjeringen til å bygge internasjonale utviklingsteam for non-profitt., Han elsker å snakke om de tingene han har lært underveis, og han liker å lytte til og lære av andre også.