&ktimemon; Martin Maierhofer
m.maierhofer@tees.ac.uk
&erik.kjaer.pedersen.role;
2001-11-29 0.03.01 &ktimemon; er en systemovervågning for K-desktopmiljøet KDE ktimemon systemovervågning timemon
Indledning &ktimemon; er et lille program der holder øje med din computers system-forbrug. Det kan vise søjlegrafer der indeholder information om CPU-, hukommelses- og swapforbrug så vel som disk-brug og sammenhængsskift-aktivitet. I KDE's ånd understøtter den indstilling via en grafisk brugerflade. Den understøtter også dokning, &ie; den kan vise oplysningerne i panelets statusfelt. For øjeblikket understøtter &ktimemon; kun et begrænset antal systemer: &Linux;-baserede installationer med /proc-filsystem, &Solaris;-baserede installationer med kstat-biblioteket og Digital &UNIX; (tidligere DEC/OSF1) baserede installationer med table(2) systemkald. Hjælp med overførsel til andre systemer er meget velkommen. &ktimemon; kan startes fra kommandolinjen eller fra &kde;'s start-menu (i Værktøj-undermenuen). Hvis du vælger at starte fra kommandolinjen, vil &ktimemon; respektere de sædvanlige &X-Window; programflag såsom . &ktimemon; er sessionsfølsom, &ie; den holder øje med den aktuelle tilstand (farver &etc;) og genopretter dem i brugerens næste session. Fundamentale ting på skærmen Efter at have startet &ktimemon; vil et lille vindue vise sig der giver oplysninger indsamlet fra operativsystemet. Hvis du flytter musen hen over &ktimemon;-vinduet og lader den hvile et lille stykke tid, vil et værktøjsvink (&ie; et lille midlertidigt vindue) vise sig. Værktøjsvinket indeholder numerisk information om systemparametre vist i søjlegrafer. Værktøjsvink kan deaktiveres (referér til Indstilling). Visningstilstande &ktimemon; kan vise to forskellige sæt systeminformation. Som forklaret i Indstilling-kapitlet, kan museknapper bindes til forskellige handlinger. Pr standard er venstre museknap bundet til tilstandsskifte-handlingen, &ie; ved at klikke med &LMB; hvorsomhelst i &ktimemon;-vinduet, skifter den viste information fra Normal tilstand (standarden) til Udvidet tilstand, og omvendt. Normal tilstand Efter at have startet &ktimemon; den første gang, vil den vise information om den aktuelle CPU-aktivitet, så vel som hukommelses- og swap-brug. Tre søjlegrafer bruges til at vise disse oplysninger; de opdateres regelmæssigt (standardintervallet er 0.5s, men det kan ændres, se Indstilling). De tre søjlegrafer repræsenterer (fra venstre mod højre): CPU-brug. &ktimemon; viser søjlen i tre forskellige farver, repræsenterende CPU-tid tilbragt i forskellige tilstande. Fra neden og opad er de: kerne-tilstand, bruger-tilstand og bruger-tilstand med lavere prioritet (nice) - idet &Solaris; ikke synes at understøtte statistik for nice-tilstand, repræsenterer den øverste del af søjlen tid tilbragt i vente-tilstand på sådanne systemer. Mellemrummet fra toppen af søjlen til toppen af vinduet repræsentere procent CPU-tomgang. Hukommelses-forbrug Ligesom CPU-forbrug-søjlen, er denne søjle sammensat af tre underfelter, repræsenterende (nedefra og opad): hukommelse tildelt til processer, hukommelse brugt af I/O-buffere og hukommelse brugt til fil-cachning. For Digital &UNIX;-baserede systemer, repræsenterer det midterste afsnit inaktiv hukommelse (&ie; hukommelse der er tildelt men ikke har været brugt et stykke tid), og for &Solaris;-baserede systemer, bruges det midterste afsnit af søjlen ikke, og det øverste afsnit repræsenterer den mængde hukommelse der er brugt af kernen. Igen, mellemrummet fra toppen af søjlen til toppen af vinduet repræsenterer fri hukommelse. Swap-forbrug. Denne søjle består af et enkelt felt, der repræsenterer det aktuelle swap-forbrug relativ til systemets totale mængde swap-plads. Klik på den museknap der er bundet til tilstandsskift i &ktimemon;-vinduet skifter til Udvidet tilstand. Udvidet tilstand I denne tilstand bruges de tre søjlegrafer til at vise et andet sæt systeminformation. Igen, fra venstre mod højre, viser de: Paging-aktivitet. Denne søjle består af to dele, den nedre halvdel som viser antallet af hukommelsessider der er skrevet sekundær opbevaring til i det sidste eksempelinterval. Tilsvarende indikerer den øvre halvdel antallet af sider der er læst fra sekundær opbevaring. Swap-aktivitet. Den anden søjle vise den analoge information for swap-aktivitet. Sammenhængsskift. Igen, denne søjlegraf består af et enkelt felt som indikerer antallet af sammenhængsskift i det sidste eksempelinterval. Idet der ingen naturlig måde er at skalere informationen vist i Udvidet tilstand, bruger &ktimemon; som standard autoskalering (forklaret i afsnittet 'Hyppige spørgsmål'). Der er imidlertid mulighed for at angive skaleringsinformation, se afsnittet Indstilling Bemærk at de to sæt søjlegrafer deles om de samme farver, &ie; farveopsætningen for Normal tilstand også bruges til at vise oplysningerne i Udvidet tilstand (se også Indstilling om hvordan man ændrer farvesammensætningen). Menustruktur Som standard er &RMB; bundet til menu popop-handlingen, &ie; klik med højre museknap hvorsomhelst i &ktimemon;-vinduet får en menu, som bliver diskuteret i de følgende afsnit. <guimenuitem >Opsætning...</guimenuitem > Opsætning...-menupunktet bruges til at få indstillingsdialogen frem. Indstillingsmulighederne diskuteres i afsnittet Indstilling. <guimenuitem >Dokket i panel</guimenuitem > Ved at vælge Dokket i panel-menupunktet, skifter &ktimemon; mellem sin standardvisning (&ie; et normalt vindue) og en tilstand i panelet, hvor &ktimemon;-vinduet forsvinder og en mindre udgave vises systempanelet. Bortset fra reduktionen i størrelse, opfører den paneliserede &ktimemon; sig nøjagtigt ligesom sin storebror. <guimenu >Hjælp</guimenu > &help.menu.documentation; <guimenuitem >Vandrette linjer</guimenuitem > Ved at vælge Vandrette linjer-menu-indgangen, skifter &ktimemon; fra lodrette søjler til vandrette linjer og omvendt. Ikke særlig nyttigt, men det var nemt at implementere ;-) <guimenuitem >Afslut</guimenuitem > Afslut-menupunktet - overraskelse! -- bruges til at afslutte &ktimemon;. Det vil gemme den aktuelle tilstand (⪚ farvesammensætning, vinduesstørrelse, om den vises i panel eller ej) og genoprette denne tilstand næste gang den køres. Indstillingsinformationen gemmes i filen $HOME/.kde/share/config/ktimemonrc, hvor $HOME refererer til brugerens hjemmemappe. Hvis denne fil slettes vil &ktimemon; starte i sin standard-tilstand næste gang den startes. Indstilling &ktimemon; kan indstilles via en ligefrem dialog (se også diskussionen af Indstillingsmenuen). På Generel-siden, kan intervallet angives så vel som skaleringsinformation (se også diskussionen om udvidet tilstand). Hvis Autoskalering-afkrydsningsfeltet er markeret (autoskalering forklares i afsnittet OSS), kan skaleringsfaktorer ikke redigeres, idet &ktimemon; bestemmer dem automatisk. Farver-siden kan bruges til at skræddersy farverne på søjlegraferne efter individuel smag. En lille eksempel-søjlegraf giver tilbagemelding med det samme. I Interaktion-siden kan musebindinger blive tilpassede. Klik med en museknap på &ktimemon;-vinduet kan ignoreres, udløse et tilstandsskift (se også Tilstande), starte sammenhængsmenuen (se også Menu), eller starte en ydre proces. Kommandolinjen angivet for eksterne processer fortolkes af standard-skallen, &ie; skal-kommandoer, miljøvariabler, omdirigering &etc; kan bruges. Interaktion-siden indeholder også et afkrydsningsfelt som kan bruges til at deaktivere automatisk fremkomst af værktøjsvink med numerisk information om søjlegraferne (sammenligne med Fundamentale ting på skærmen). Hyppige spørgsmål og svar Hvilke operativsystemer understøtter &ktimemon;? &ktimemon; understøtter &Linux;-baserede systemer med /proc-filsystemet, &Solaris;-baserede systemer med kstat-biblioteket, og Digital &UNIX; (tidligere DEC/OSF1)-systemer med table(2)-systemkald grænseflade. Kun &Linux;-udgaven er blevet grundigt testet, hvis du kommer ud for problemer med &Solaris;/Digital &UNIX;-overførslen af programmet, så tøv ikke med at kontakte mig. Bidrag til at tilpasse &ktimemon; til andre platforme er yderst velkomne. Kontakt mig venligst på m.maierhofer@tees.ac.uk hvis du har til hensigt at overføre &ktimemon; til andre udgaver af &UNIX;. Hvordan virker autoskalering? Glad for at du spurgte. Da der ikke er nogen rimelig prædetermineret skaleringsfaktor for paging/swapping-operationer og sammenhængsskift (i modsætning til ⪚ hukommelsesforbrug, hvor du kan tage den totale hukommelsesstørrelse basislinje), bruger &ktimemon; en semi-intelligent (tjoh, ...) autoskaleringsmekanisme. Autoskalering virker sådan her: Hver af de tre søjlegrafer som beskrevet i afsnittet 'udvidet tilstand' har en tilknyttet skaleringsfaktor. Den oprindelige værdi af disse faktorer er sat til en eller anden prædetermineret værdi. Hver gang et nyt eksempel vises, bliver den tilsvarende værdi tentativt skaleret med den tilsvarende faktor. Hvis værdien kan vises på skalaen valgt med denne faktor, sker der ingen ændring (&ie; små ændringer i aktiviteten blive reflekteret ved en ændring af søjlens højde). Hvis den skalerede værdi enten er for stor eller for lille til at blive vist med den nuværende skaleringsfaktor, justeres skaleringen så den nye værdi vises nogenlunde halvvejs oppe af søjlegrafen. Således skulle senere ændringer have en god chance for at kunne vises relativ til den aktuelle værdi, uden at skulle ændre skalaen igen. Hvorfor kommer der et beskedfelt med diagnostisk uddata fra afledt kommando frem? Hvis du binder en museknap til en ekstern kommando som beskrevet i Indstilling-kapitlet, tjekker &ktimemon; for et gyldigt kommandonavn. I stedet vil en kommando-skal blive startet til at køre udsagnet, så skal-kommandoernes miljøvariabler og mere kan bruges. For at tillade nogen tilbagemelding tilbrugeren, overvåger &ktimemon; stderr-uddata fra kommando-skallen og rapporterer den i dette beskedfelt. Selvom denne metode kan hjælpe når en kommando ikke kan findes, kan den være ret irriterende hvis den kaldte kommando udskriver harmløs diagnostisk information på stderr. En simpel og elegant løsning på dette problem er at tilføje 2>/dev/null ved slutningen af kommando-specifikationen. Dette omdirigerer diagnostiske beskeder besked-nirvana, og forhindrer beskedfeltet i at komme frem hele tiden. Tak og anerkendelser &ktimemon; er baseret på en Xt-udgave ved min broder. Tak til Tobe Toben, ttoben@artis.uni-oldenburg.de, Cristian Tibirna ctibirna@gch.ulaval.ca, Dirk A. Mueller dmuell@rhrk.uni-kl.de, Mark Krischer krischem@amp.com, og Lubos Lunak l.lunak@sh.cvut.cz for fejlrapporter, patcher, kommentarer, forslag. &erik.kjaer.pedersen.credit; &underGPL;