afsløre meningen med højst statistikker

, dets navn er unik for noget, der viser, system statistikker: top.det er en del af procps pakke, en række linux værker, som giver informationer.ud over toppen, procps omfatter også fri, vmstat, ps, og mange andre redskaber.- giver du et billede af et systems situation, f.eks. gratis fysisk hukommelse, antallet af løbende opgaver, procentdel af cpu 'en gang udnyttelse af hver processer - - alle i et enkelt billede.det er som at bruge ps, fri, og uptime på samme tid.- får de fleste af sine oplysninger fra flere sager under /proc fortegnelse.du er allerede klar over, at dette adresseregister, giver brugerne en bred vifte af omfattende statistikker, men takket være top kan vi sammenfatte de fleste af dem i en enkelt organiseret vindue.og endvidere med top, du kan gøre ting som:,, eller processer, der er baseret på anvendelse af cpu 'en gang, hukommelse, samlede runtime osv., skifter multi - på mode.i denne tilstand, du har givet op til fire vinduer og hvert vindue, kan tildeles forskellige miljøer (sortering, farver, frembydes i marken), sende et signal ved at nævne målet - processen pid og signalet.,,, at lære at bruge bedste mere effektivt, og der henvises til denne artikel, dog top ikke er den ideelle værktøj til indsamling af system statistikker i lange mellemrum, så at sige, en uge eller en måned.sadc (system aktivitetsdata samler) er et bedre redskab for denne type interval.sadc - skaber en log, der indeholder system statistikker og bruger sar til at generere betænkning og resumé baseret på denne træstamme.nogle mennesker bruger top i batch modus som et alternativ, men det er ikke lige så effektivt som sadc, fordi:,, sadc registrerer data i binær form, hvilket kræver mindre plads, i henhold til personlige eksperiment, ved hjælp af "tid" kommando, sadc arbejder hurtigere end top derfor værktøjet i sig selv ikke indføre store udgifter. det er nok til at genindføre top.lad os begynde med at forstå betydningen af hver enkelt del af top "instrumentbræt." også, i denne artikel, er det vigtigt at notere betydningen af "høj" eller "lav." der er ingen absolut tærskel for netop mærke en række højt eller lavt.jeg har en tendens til at anvende høje eller lave etiket, hvis tal er højere eller lavere end den gennemsnitlige antal, du plejer at se i de pågældende område.forarbejdningsvirksomhed, statistikker, på den øverste linje, der er vist i figur 1, der er (fra venstre): nuværende tidspunkt (time: minut: anden), uptime (time: minut), antallet af aktive brugernavne og belastning gennemsnit.de første to er selvforklarende.hvad med antallet af aktive bruger - id?man kunne tro, det er antallet af logget på brugerne, enten interaktivt eller ej (via ssh, f.eks.).ikke ligefrem.det tæller også antallet af pseudo - terminaler avlet under visse brugeridentitet privilegier.lad os sige, at du logget ind i gnom "joe, og så med to xterm vinduer, så tæller det som tre brugere.øverste trin antallet af hensyn til eksistensen af lokalitet proces.lad gennemsnit er repræsentationen af antallet af processer, mærket som runnable kører i kø.fra venstre til højre, de repræsenterer et minut, fem minutter og 15 minutters belastning gennemsnit.de er de samme tal, som de kan se i /ind /loadavg.en detaljeret beskrivelse findes i denne linux - tidende artikel.at huske på, at en proces i en runnable stat ikke neccessarily mener, det er for øjeblikket udføres af forarbejdningsvirksomheden.det er et mærke, der angiver, at "jeg (arbejde) er klar til at blive gennemført, men det er op til scheduler at bestemme, hvornår de vil hente mig.", hvis de f.eks. har et enkelt dobbelt - core processor og et minut belastning gennemsnit læser "2" i gennemsnit hver kerne er at udføre en - processen.hvis det lyder: "4" i gennemsnit en proces er blevet henrettet, og man venter i hver kerne.den aktuelle situation kan være forskellige, da belastning gennemsnit er faktisk viser "normaliseret tendenser" i visse intervaller, i stedet for særskilte tal på et givet tidspunkt.flytter en linje under, vi ser statistikker om antallet af opgaver i forskellige lande:,, der løber, som vi har drøftet, er antallet af opgaver i en runnable stat., sovende: processer er blokeret på grund af venter på en begivenhed (f.eks. tid eller i /o afslutning).det tegner sig for både afbrydelige (kan vække tidligere af sysv signal) eller kontinuerlig (fuldstændig ignorerer sysv signal) processer.,, stoppede: den nøjagtige betydning her, er "pause", ikke "fyret". i en terminal, du kan stoppe et program ved at sende en sigstop signal eller presning ctrl-z, hvis det er en forgrundsviden opgave.,, zombie: "et lig uden sjæl" er måske en god analogi.efter et barn opgave er afsluttet, er det ryddet op, og det eneste, der er tilbage, er en opgave, der omfatter en meget vigtig deskriptor værdi: exit - status.hvis antallet af zombier er højt, er det et tegn på, at et eller flere programmer er et insekt ordentligt om afslutning af barn opgaver.,, nu kommer vi cpu afsnit statistikker.ved at trykke på "1", de kunne skifte mellem kumulative og pr. centrale /fysiske cpu anvendelse.tallene her er afledt af /ind /. top er prøveudtagning og omdanner dem fra mod baseret nummer i procenter.de to gik de fleste områder% os og% sy, udgør andelen af cpu 'en tid, der er brugt i bruger tilstand og kerne - modus).hvad bruger - og kerner transportformer?lad os gå lidt tilbage og drøfte intel x86 - platform.i dette tilfælde, at forarbejdningsvirksomheden har fire niveauer for privilegier, der spænder fra 0 til 3, hver en "ring." ring 0 er den mest privilegerede område - - kode henrettet når cpu 'en træder dette niveau kan få adgang til noget på systemet.- ring 3 er de mindst begunstigede områder.,, linux kerne, som automatisk bruger ikke ringe 1 eller 2, med undtagelse af visse betingelser, dvs. på vej ind i en hypervisor.ring 0 er også kendt som kerne tilstand, fordi næsten alle kernel koder er ydet dette privilegium.- ring 3 er let at gætte, kendt som bruger tilstand.bruger rummet kode bor i denne ring.det logisk adskillelse primært tjener som beskyttelse.bruger koder kan gøre en indsats, men at røre underliggende lag, såsom at læse eller skrive til den harddisk eller tildeling af flere kilobyte ram, koderne er nødt til at bede om kernel tjenesteydelser, også kendt som systemet kræver.systemet kræver, er sammensat af et eller flere kernel funktioner.de kører på vegne af den ringe opgave.- fra det privilegium optrapning synspunkt er det den samme opgave, men at skifte fra bruger tilstand til kerne - tilstand.når et system til slutter, det vender tilbage til en værdi og den opgave er flyttet tilbage til bruger - tilstand.efter min mening et lavt eller højt antal på begge disse mode værdier er ikke stor bekymring.vi kan betragte det som en måde til at identificere vores system egenskaber.hvis du finder det,% sy, højere end% os det meste af tiden, er det sandsynligt, at din maskine fungerer som en fil serveren, databaseserver, eller noget lignende.på den anden side, en højere, i%, betyder, at din maskine er en masse nummer på.høj,% - værdier kan også betyde en kerne tråde er travlt med at gøre noget.kerne tråde er som normale opgaver, men der er en grundlæggende forskel: de opererer udelukkende i kerne - tilstand.kerne tråde er skabt til at udføre en bestemt opgave., f.eks.: pdflush skriver tilbage opdateret side depoter til dertil knyttede oplagring og migration tråd er mængdebalancerings mellem cpu 'er ved at omfordele nogle opgaver til mindre ladt forarbejdningsvirksomheder.hvis kernel tråde bruger for meget tid på kernel tilstand, bruger rummet opgaver vil være mindre en chance for at flygte.selv med de seneste scheduler som helt fair scheduler (ces), som giver bedre retfærdighed, du skulle læse den tilhørende dokumentation for at finjustere kernel tråd.,,% - og% si, er statistikker vedrørende cpu service afbryder.hej,%, er den procentdel af cpu 'en gang service hårdt afbryder, mens% si, når cpu betegner den bløde afbryde tid procentdel.,, okay, så hvorfor hedder de "bløde" og "hårde"?lidt om, hvordan linux kernel håndtag afbryde første: når en afbryder ankommer til en vis irq linje, linux kernel hurtigt anerkender det.de dermed forbundne kontaktperson i idt (afbryder deskriptor tabel) er gennemført.denne anerkendelse proces er gjort, mens invaliderende afbryde levering i de lokale processor.det er grunden til, at det skal være hurtigt; hvis ikke, antallet af verserende afbryder vil stige, og de vil få hardware svar endnu værre.den løsning, man?anerkende hurtigt udarbejde nogle data, og udskyde det virkelige arbejde før senere.denne udskudte arbejde er en blød afbryde, fordi det ikke er en afbryder, men behandles som en.ved at arbejde for at afbryde behandlingen, systemrespons bliver nemmere og indirekte giver brugeren til kode mere tid til at køre.hvorfor?simple... afbryde kontaktperson løber i kernen, mode, ligesom da vi udfører et system.en høj,% - værdi: en eller flere anordninger, har alt for travlt med at udføre deres arbejde, og sandsynligvis er overbelastet.i visse tilfælde kan det betyde anordningen er i stykker, så det er godt at gøre en grundig kontrol, før det bliver værre.kontrol /ind /afbrydes, og du kan finde kilden.vedrørende% si, et højt antal her ikke altid i forbindelse med høj frekvens af ægte afbryder.opdeling af arbejdet mellem de reelle afbryde kontaktperson og blød irqs er førerens arbejde, så højt,% si, har tendens til at vise, der er noget, der er nødvendigt for at optimere inden for føreren.den letteste måde at optimere er opgradere din kerne.hvis du samle kernen på egen hånd, anvende konfiguration fil af gamle kerne som basen ud af din nye kerne, - - så du kan sammenligne resultatet af blød irq forvaltning.enhver tredjepart, chauffører skal også forbedres.en rå observation med google siger, at net chauffører normalt er kilden til problemet.,, hukommelse, statistikker, lad os komme videre virtuelle hukommelse statistikker.dette område er afledt af /ind /meminfo indhold.,, hvad er "samlede hukommelse" i din mening?din ram?ikke rigtig.den virkelige betydning, er den samlede størrelse af ram, der er mappable af deres løbende kerne.hvis du ikke bruger en kerne, der har store vedrørende kapacitet, den maksimale adresserbare hukommelse er ca. 896 mb.896 mb er 1 gb minus nogle forbeholdt kernel tage plads.teoretisk set, 1 gb er kernel adresse rum, mens 3 gb er bruger rummet adresse rum i en 32 - bit - tal x86 - arkitekturen.for at sikre, at systemet kan gøre store adressering, installere en kerne pakke, som indeholder betingelser såsom "pae", "bigmem" eller "hugemem." ved hjælp af den modificerede kerne, du kan kort op til 64 gb ved hjælp af træk kaldet pae (fysiske adresse, udvidelse).de to forvirrende områder i hukommelse statistikker er "stødpuder" og "skjult" skjult?hvad er penge?for det første kan få den forkerte konklusion af dens placering.bemærker, at den er placeret i "swap" - linjen, så man kan se konklusion er det lager af swap - eller noget lignende.slet ikke.det er faktisk en del af "frue", som beskriver fysiske hukommelse forbrug., buffer er i erindring kopi af blokke som følge af kernen af rå disk adgang.for eksempel, da kerne vil læse indholdet af en fil, for det første kerne er at få oplysninger fra den forretningsmæssigt forbundne inode.at læse denne inode, kernen er en gade fra blok anordning på en bestemt sektor udlignet.derfor kan vi konkludere, at stødpudestørrelse stiger, hvis der er adgang til inode eller dentry (fortegnelse indrejse), eller superblock (, når vi gennemfører en skillevæg), når direkte adgang til en fil eller blokere anordning., skjult område fortæller os, størrelsen af ram plejede at cache indholdet af filer blev læst op for nylig.hvordan er det forskelligt fra buffer område?minder om, at stødpudestørrelse stiger, når vi omgå filesystem lag og skjult størrelse øges, når man gør det modsatte.vi kan også se skjult størrelse som den grad caching aggressivitet fra kernen.både buffer og lager, dyrker, som vi gør mere læse operationer, - - og det er helt normalt.senere læser kunne opfyldes ved at læse fra lager, som øger hastighed, samtidig med at læse latenstiden.hver proces, statistikker, resten af det øverste instrumentbræt er pr. proces statistikker.det er en meget bred subtopic til at dække, så må stilles:,, afsløre meningen med hukommelse forbundne områder: der virtual, res shr, nflt, og ndrt, forståelse, ni og pr områder og forbindelsen mellem de to, "hvor meget hukommelse er tildelt af opgave x?"du spørger.du er forvirret mellem ser der virtual, res eller shr.før jeg svarer på det, jeg tager et hurtigt erindre om to typer hukommelse område: anonyme eller fil støttet., et eksempel på et anonymt hukommelse område er resultatet af gennemførelsen af malloc(), en c funktion for at anmode om visse beløb af hukommelse.det kan ske, når din tekstbehandling, tildeler en buffer for at holde de tegn, du har skrevet.eller når en webbrowser forbereder bidder af hukommelse til at vise et websted.hvad med fil støttet hukommelse område?når dit program belastninger, en fælles bibliotek, et program der hedder pålæsser belastninger og kort de ønskede bibliotek i processen er på plads.således fra programmet synspunkt, at få adgang til biblioteket (dvs. at en funktion), som peger på visse hukommelse adresse.linuxdevcenter henviser til denne artikel for yderligere oplysninger om hukommelse tildeling., der virtual henviser til længden af hukommelse område, mens de res viser os, hvor mange hukommelseskort (kaldet sider) er tildelt og tildeles proces på plads.således er der virtual er tale om størrelsen af den jord, vi ejer, men parlamentet, hvad res er bygget oven på det behøver ikke nødvendigvis at besætte hele rummet.det meget sandsynligt, at res, er langt mindre, end der virtual, og det er helt logisk, fordi de krav, de kalder mekanisme, som kun tildele sider, når det, der virkelig er behov for.så svaret er klart: res viser tilnærmelse af pr - processen minde forbrug.men res i sig selv har en brist.minder om, at vi er på størrelse med fil støttet hukommelse område i beregningen (f.eks. fælles bibliotek).vi ved, at to eller flere løbende programmer kan anvende samme sæt af biblioteker.om kde - eller gnom baseret programmer.når du løber de programmer, de vil henvise til samme biblioteker, men tildeles egen adresse rum.du kan få den forkerte konklusion disse programmer kræver et stort område, og i virkeligheden summen af sider, der hører til de løbende programmer er lavere end summen af deres res., det er hvor shr kommer til undsætning.shr viser størrelsen af den fil støttet hukommelse område.således res minus shr efterlader os med størrelsen af anonyme hukommelse område.så, faktiske mindet forbrug af en proces, der er et eller andet sted mellem res og res minus shr, afhængigt af hvor mange fælles biblioteker er lastet med en given proces og andre processer, hvor der anvendes de samme biblioteker.lad os flytte til andre områder: nflt og ndrt.disse to områder ikke dukker op ved misligholdelse, så du er nødt til at udvælge dem, ved at trykke på "f" eller "o" og presserende nøglen, der repræsenterer det område.minder om, at kernen er efterspørgslen personsøgning, hvis en proces, peger på gyldige hukommelse adresse, men ingen side er til stede.den formelle navn i denne tilstand er side skyld.side skyld har to typer: mindre og større skyld.mindre side fejl ske, hvis der ikke er adgang til oplagring.på den anden side store side fejl medfører opbevaring adgang.en lille side er skyld i forbindelse med den anonyme hukommelse område, for der er ingen grund til at læse den.en undtagelse herfra er da sider er skiftet ud.en vigtig side skyld er forbundet til sagen med hukommelse område.på alle væsentlige fejl, disk blokke er læst og bragt ind.men takket være side lager, hvis målet disk blokere indhold findes der, så vil det være en mindre fejl., nflt fremgår af top kun tæller antallet af store side fejl.hvis dette antal er høj, er det en god indikation af, at du har brug for mere ram.hvis fri hukommelsen bliver stramt, nogle sider i side lager skal skylles ud og anonyme minde vil blive skiftet ud.derfor, hvis de er tilgængelige, yderligere store fejl forekommer.prøv at tilføje mere ram, indtil du ser moderat værdi for nflt.tjek også dit program er interne logbog eller statistikker og se, om høje nflt betyder reducerede ydeevne.normalt har et tæt forhold til latensperiode store side fejl., ndrt skulle vise antallet af beskidte sider.men uden en klar grund, er denne værdi (som er taget fra yderste højre felt af /ind /< pid > /statm) altid viser nul i linux kernel 2.6. x. håber, at nogen kunne fastsætte de relevante kernel kode, så top kan korrekt vis nummer.i mellemtiden, kan du se størrelsen af beskidte sider ved at kontrollere /ind /< pid > /smaps.statistikkerne er opdelt i hver vma (virtual hukommelse område) region.en beskidt side betyder, at en fil med side indeholder modificeret data.det sker, når kernen vil skrive til den disk.bortset fra direkte i /o i tilfælde, hvor data er skrevet på side lager og side i sig selv er mærket som beskidt.senere, pdflush kernel tråde med jævne mellemrum scanne de beskidte sider og skrive deres indhold til den disk.denne asynkron procedure forhindrer skriftligt opgave bliver blokeret for længe.nu må vi rette vores opmærksomhed mod ni og pr. område.disse områder udgør en prioritet i en proces.ni viser god plan, en statisk prioritet, der tildeles en opgave, når det er i brug.ved misligholdelse, hver gang en ny proces er godt niveau 0, men du kan klare det med "pæn" nytte.ni varierer fra 20 til 19.pr - viser den dynamiske prioritet, som er beregnet på grundlag af nice - niveau.når en proces begynder sit liv, er lig med ni plus 20.i runtime, pr, kunne gå op eller ned, afhængigt af kerne version, de bruger.pre-2.6.23 linux kerne, pr - kan være en værdi i ni + 20-x og ni + 20 + x, x, i sig selv kunne betragtes som "bonus" eller "rabat".hvis en proces sover meget, vil det få bonus, så det er decremented pr.hvis en proces, tygger en masse cpu 'en gang sin pr - vil blive øget.når kernen scheduler vil vælge, hvilken proces skal løbe, processen med den laveste dynamiske prioritet, vinder.i linux 2.6.23 over, pr - altid er ni plus 20.det er en konsekvens af den nye fusionerede karakteriseringsfaktorer scheduler, hvor sover interval ikke længere udelukkende dikterer dynamiske prioriterede justering.og nu, dynamisk prioritet er ikke det vigtigste, når udvælgelsen af den næste løber opgave.uden at gå for dybt ind i mellem interne affærer, er det tilstrækkeligt at sige, at de karakteriseringsfaktorer scheduler udvælger de runnable proces, der i øjeblikket forbruger mindst cpu 'en virtuel tid.det er "retfærdighed" karakteriseringsfaktorer, ønsker at opnå med alle, som har en proportional del af cpu forarbejdning magt, med pr - som vægtningsfaktor for denne retfærdighed.så kan vi afslutte med gennemførelsen af karakteriseringsfaktorer, en proces med højere pr - har en chance for at foregribe den lavere.,, om forfatteren, mulyadi santosa, rhce, bor i jakarta, hovedstaden i indonesien.han arbejder som freelancer og er en ejer af en opstart, der fokuserer på undervisning linux for forskellige niveauer af publikum.han skriver en månedlig klumme om linux, chip, indonesien, blad, og har skrevet artikler til forskellige indonesiske og udenlandske publikationer.du kan kontakte ham på denne e - mail - adresse er beskyttet fra spambots.du har brug for javascript mulighed for at se og besøge sin blog.,, bekræftelser,, avishay traeger, for at overbevise mig om at skrive om dette emne, breno leitao, sandeep k. sinha, cheetan nanda for nice - diskussion og hentydninger.,,




Previous:
Next Page: