If you have a Linux server running at your office or at a data center for which you are responsible, you want to maintain an uptime of as close to a hundred percent. Hvis du har en Linux-server som kjører på kontoret eller på et datasenter som du er ansvarlig, vil du opprettholde en oppetid på så nær hundre prosent. In such a case you want to make sure you keep an eye on how the system is running. I et slikt tilfelle du ønsker å sørge for at du holder øye med hvordan systemet kjører. To be precise you want to monitor all the system resources that contribute to the system running fine which then results in a high uptime. For å være presis du vil overvåke alle systemressurser som bidrar til at systemet kjører fint som så resulterer i en høy oppetid. Memory, CPU, disk usage… are some of the things you want to observe. Minne, CPU, disk behandling ... er noen av tingene du vil observere. We would usually use a combination of the tools that come with a Linux or UNIX installation, such as “free”, “top”, “vmstat”… I'll introduce you to a tool that gives you just about all the info that the other tools combined give you, all under one roof – Dstat. Vi ville gjerne bruke en kombinasjon av de verktøyene som følger med Linux eller UNIX installasjon, for eksempel "gratis", "topp", "vmstat" ... Jeg skal introdusere deg til et verktøy som gir deg omtrent all den informasjon som andre verktøy kombinert gi deg, alt under ett tak - Dstat. The developer of this command line tool, Dag Wieers, calls it “a versatile replacement for vmstat, iostat, netstat and ifstat”. Utvikleren av dette kommandolinjeverktøyet, Dag Wieers, kaller det «et allsidig erstatning for vmstat, iostat, netstat og ifstat". He adds that “Dstat overcomes some of their limitations and adds some extra features…” To me Dstat is the mother of all command line system monitoring tools. Han legger til at "Dstat seirer noen av sine begrensninger og legger til noen ekstra funksjoner ..." For meg Dstat er mor til alle kommandolinje system avlytting verktøy. It's simple to install, easy to use, can be tweaked with ease, and it generates reports that you can plot as a graph to impress your boss. Den er enkel å installere, lett å bruke, kan bli forskjøvet med letthet, og det genererer rapporter som du kan plotte en graf å imponere sjefen din.
Installing Dstat Installere Dstat
Start by downloading the Dstat installer. Start med å laste ned Dstat installasjonsprogrammet. Point your web browser to the Dstat project's homepage – Peke nettleseren til Dstat prosjektets hjemmeside -- http://dag.wieers.com/home-made/dstat/ http://dag.wieers.com/home-made/dstat/ . . Scroll down to the section of the page where the downloads are listed. Bla ned til den delen av siden der nedlastinger er oppført. Pick the flavor of Linux on which you want to install the application and click on the download link. Pick smaken av Linux som du vil installere programmet og klikke på last ned linken. Now download the latest version of Dstat for the version of the Linux distribution you are running. Nå laste ned den nyeste versjonen av Dstat for den versjonen av Linux-distribusjon du kjører. I'll show you how to do it for a Red Hat Enterprise Linux version 4 machine: Jeg skal vise deg hvordan du gjør det for Red Hat Enterprise Linux versjon 4 machine:
# wget http://dag.wieers.com/rpm/packages/dstat/dstat-0.6.6-1.el4.rf.noarch.rpm # Wget http://dag.wieers.com/rpm/packages/dstat/dstat-0.6.6-1.el4.rf.noarch.rpm
Now install Dstat: Nå installerer Dstat:
# rpm -Uvh dstat-0.6.6-1.el4.rf.noarch.rpm # Rpm-Uvh dstat-0.6.6-1.el4.rf.noarch.rpm
If the installation went though without errors, that's it, you have Dstat installed and ready for use. Hvis installasjonen gikk dog uten feil, det er det, har du Dstat installert og klar til bruk. If there were some dependencies that came up during the installation just install the required packages and try again. Hvis det var noen avhengigheter som kom opp under installasjonen kun installere de nødvendige pakkene og prøv igjen. I don't think that Dstat has too many dependencies, so you should not face any problems. Jeg tror ikke at Dstat har for mange avhengigheter, så du bør ikke møte noen problemer.
Using Dstat Bruke Dstat
With Dstat installed on your system you should be good to go. Med Dstat installert på systemet ditt, bør du være godt å gå. Begin by launching the command from a terminal: Begynn med å lansere kommandoen fra en terminal:
# dstat # Dstat
The output would be something like the following. Utgangen ville være omtrent slik. Hit the key combination of ctrl+c to exit. Hit tastekombinasjonen av CTRL + C for å avslutte.
# dstat # Dstat
—-total-cpu-usage—- -disk/total -net/total- —paging– —system– - Total-cpu-bruk - -disk/total -net/total--Personsøker--system -
usr sys idl wai hiq siq|_read write|_recv _send|__in_ _out_|_int_ _csw_ usr sys IDL wai HiQ siq | _read skrive | _recv _SEND | __in_ _out_ | _int_ _csw_
7 1 91 1 0 0| 0 0 | 0 0 | 0 0 | 0 0 7 1 91 1 0 0 | 0 0 | 0 0 | 0 0 | 0 0
1 0 99 0 0 0| 0 0 | 0 0 | 0 0 |1051 1945 1 0 99 0 0 0 | 0 0 | 0 0 | 0 0 | 1051 1945
0 0 100 0 0 0| 0 12k|2269B 11.2k| 0 0 |1031 1923 0 0 100 0 0 0 | 0 12k | 2269B 11.2k | 0 0 | 1031 1923
1 0 99 0 0 0| 0 40k| 0 0 | 0 0 |1078 2235 1 0 99 0 0 0 | 0 40k | 0 0 | 0 0 | 1078 2235
0 0 100 0 0 0| 0 16k|6027B 21.5k| 0 0 |1008 2219 0 0 100 0 0 0 | 0 16k | 6027B 21.5k | 0 0 | 1008 2219
There are a number of options available for Dstat. Det finnes en rekke tilgjengelige alternativer for Dstat. As I mentioned earlier Dstat is quite easy to tweak. Som jeg nevnte tidligere Dstat er ganske lett å justere. So if you want to limit the data reading to the CPU, disk, and network, run the following command: Så hvis du vil begrense dataene lesing til CPU, disk og nettverk, kan du kjøre følgende kommando:
# dstat -CDN # Dstat-CDN
-disk/total -net/total- —paging– —system– -disk/total -net/total--Personsøker--system -
_read write|_recv _send|__in_ _out_|_int_ _csw_ _read skrive | _recv _SEND | __in_ _out_ | _int_ _csw_
0 0 | 0 0 | 0 0 | 0 0 0 0 | 0 0 | 0 0 | 0 0
0 12k|2295B 9603B| 0 0 |1053 1957 0 12k | 2295B 9603B | 0 0 | 1053 1957
0 0 | 594B 0 | 0 0 |1002 1893 0 0 | 594B 0 | 0 0 | 1002 1893
0 960k| 292B 3346B| 0 0 |1072 2012 0 960k | 292B 3346B | 0 0 | 1072 2012
0 4096B| 64B 0 | 0 0 |1031 1939 0 4096B | 64B 0 | 0 0 | 1031 1939
You can find more options in the application's help document which you can access by entering the following: Du kan finne flere alternativer i søknaden hjelp dokument som du kan få tilgang ved å taste inn følgende:
# dstat -h # Dstat-h
Play with the options a little so you get comfortable with them. Spill med alternativene litt, så får du komfortabel med dem. The default interval between data reads is two seconds. Standardverdien intervallet mellom data leser er to sekunder. You can change that interval if you need to. Du kan endre det intervallet hvis du må. To increase the interval to ten seconds enter the following: For å øke intervallet ti sekunder angi følgende:
# dstat 10 # Dstat 10
Another useful feature is to get aggregated updates for each entry. En annen nyttig funksjon er å få samlet oppdateringer for hver oppføring. So you can have Dstat give you an update every ten seconds in a new line, but as the data changes your line itself gets updated every second. Så du kan ha Dstat gi deg en oppdatering hvert tiende sekund på en ny linje, men ettersom dataene endrer linjen selv blir oppdatert hvert sekund.
You might optionally want Dstat to give you five updates with a frequency of three seconds. Du kan eventuelt vil Dstat å gi deg fem oppdateringer med en frekvens på tre sekunder. Here's how you would go about doing that: Her ser du hvordan du vil gå om gjør at:
# dstat 3 5 # Dstat 3 5
—-total-cpu-usage—- -disk/total -net/total- —paging– —system– - Total-cpu-bruk - -disk/total -net/total--Personsøker--system -
usr sys idl wai hiq siq|_read write|_recv _send|__in_ _out_|_int_ _csw_ usr sys IDL wai HiQ siq | _read skrive | _recv _SEND | __in_ _out_ | _int_ _csw_
3 1 95 2 0 0| 0 0 | 0 0 | 0 0 | 0 0 3 1 95 2 0 0 | 0 0 | 0 0 | 0 0 | 0 0
2 11 87 1 0 0| 0 180k|2581B 3239B| 0 0 |1136 697 2 11 87 1 0 0 | 0 180K | 2581B 3239B | 0 0 | 1136 697
7 8 85 0 0 0| 0 0 | 115k 106k| 0 0 |1603 3985 7 8 85 0 0 0 | 0 0 | 115k 106k | 0 0 | 1603 3985
2 1 98 0 0 0| 0 0 |77.5k 170k| 0 0 |1744 3856 2 1 98 0 0 0 | 0 0 | 77.5k 170k | 0 0 | 1744 3856
1 0 100 0 0 0| 0 0 |3451B 9993B| 0 0 |1045 149 1 0 100 0 0 0 | 0 0 | 3451B 9993B | 0 0 | 1045 149
2 1 94 4 0 0| 0 276k|20.4k 31.1k| 0 0 |1219 804 2 1 94 4 0 0 | 0 276k | 20.4k 31.1k | 0 0 | 1219 804
The feature that I find most useful is the output. Funksjonen som jeg finner mest nyttig er utgang. Dstat allows you to have the output of a session written into a comma separated file which can later be imported into a spreadsheet application such as Microsoft Excel and the data can be plotted into a graph. Dstat lar deg ha utgang av en sesjon skrevet inn en kommaseparert fil som senere kan importeres til et regnearkprogram som Microsoft Excel og data kan plottes inn i en graf. Here is how it can be used. Her er hvordan det kan brukes.
# dstat –output /tmp/dstat_data.csv -CDN # Dstat-output / tmp / dstat_data.csv-CDN
Let the above command run while you run your applications or do your testing on this machine. La over kommandoen kjøres mens du kjører applikasjoner eller gjøre din testing på denne maskinen. Hit the key combination of ctrl+c when you are done. Hit tastekombinasjonen av CTRL + C når du er ferdig. Open the file dstat_data.csv with a spreadsheet application such as Microsoft Excel or Open Office. Åpne filen dstat_data.csv med et regnearkprogram som Microsoft Excel eller Open Office. You can then select the columns you want plotted into a graph and let your spreadsheet application do the magic. Du kan deretter velge hvilke kolonner du vil ha plottet inn i en graf og la regnearket gjør magi.
Get a Report by Mail Få en rapport med e-post
There may be cases wherein you want to observe how your server is performing over a period of time. Det kan være tilfeller der du ønsker å observere hvordan din server gir over en tidsperiode. You can setup a background process in Linux that will give you a reading with a certain interval, generate a report, and mail out the file to you. Du kan konfigurere en bakgrunn prosess i Linux som vil gi deg en lesning med et visst intervall, generere en rapport og sende ut filen til deg. This can be especially useful during a stress-test. Dette kan være spesielt nyttig under en stress-test. Here's how you could do that. Her er hvordan du kunne gjøre det. The following script will run Dstat for three hours, reading the data every 30 seconds, and will mail out the report to me@myemailid.com. Følgende skript vil kjøre Dstat i tre timer, lese dataene hvert 30. sekund, og vil innlevere ut rapporten til me@myemailid.com.
#!/bin/bash #! / bin / bash
dstat –output /tmp/dstat_data_mail.csv -CDN 30 360 dstat-output / tmp / dstat_data_mail.csv-30 CDN 360
mutt -a /tmp/dstat_data_mail.csv -s “Dstat Report for 3 hour run” me@myemailid.com < /dev/null mutt-a / tmp / dstat_data_mail.csv-s "Dstat Rapport for 3 timers kjøring," me@myemailid.com </ dev / null
Save the above script in a file called dstat_script.sh on your server, give it executable permission and then run it as a background process: Lagre skriptet ovenfor i en fil kalt dstat_script.sh på serveren din, gi den kjørbare tillatelse og deretter kjøre det som bakgrunn prosess:
# chmod +x dstat_script.sh # Chmod + x dstat_script.sh
# nohup ./dstat_script.sh & # Nohup. / Dstat_script.sh &
Done. Ferdig. Yes, it's that simple. Ja, det er så enkelt. You will now be mailed this report after it's done running. Du vil nå bli sendt denne rapporten etter at den er ferdig kjører. You can optionally schedule this script as a daily cron job so that you can receive this data every day. Du kan eventuelt planlegge dette skriptet som en daglig cron jobb slik at du kan motta denne data hver dag.
As you may already have realized Dstat is a wonderful tool when applied to performance monitoring and debugging. Som du kanskje allerede har innsett Dstat er et fantastisk verktøy når det gjaldt ytelse overvåking og feilretting. The granularity, frequency, and nature of the data collected are completely up to you. Den detaljnivå, frekvens og natur av innsamlede data er helt opp til deg. Dstat empowers you to know what is going on on your server. Dstat lar deg vite hva som skjer på serveren. Used wisely this power can result in a lot less sleepless nights for you. Brukt klokt denne makten kan resultere i mye mindre søvnløse netter for deg.























Nice article. Nice artikkelen.
I've just found a little discrepancy between dstat and dd regarding the I/O: Jeg har nettopp funnet en liten uoverensstemmelse mellom dstat og dd angående I / O:
ifx@ids:/opt/informix/devices$ dd if=file_20GB of=/dev/null bs=2048 count=10000000 ifx @ ids: / opt / Informix / enheter $ dd if = file_20GB of = / dev / null bs = 2048 count = 10000000
10000000+0 Datensätze ein 10000000 0 Datensätze ein
10000000+0 Datensätze aus 10000000 0 Datensätze aus
20480000000 Bytes (20 GB) kopiert, 261,738 s, 78,2 MB/s 20480000000 Bytes (20 GB) kopiert, s 261738, 78,2 MB / s
A shell running dstat at the same time showed me: Et skall som kjører dstat samtidig viste meg:
-dsk/total—-dsk/hdc—–dsk/hdd– -dsk/total--dsk/hdc--dsk/hdd-
read writ: read writ: read writ Les stevningen: les stevningen: lese stevningen
140M 104k: 62M 24k:7960k 28k 140m 104K: 62m 24k: 7960k 28k
150M 0 : 64M 0 : 12M 0 150M 0: 64M 0: 12M 0
160M 0 : 0 0 : 80M 0 160M 0: 0 0: 80M 0
154M 0 : 43M 0 : 34M 0 154M 0: 43M 0: 34m 0
150M 0 : 75M 0 : 0 0 150M 0: 75m 0: 0 0
153M 56k:8384k 20k: 68M 8192B 153M 56k 8384k 20k: 68M 8192B
So it looks like we all should use dstat if we want to impress people with big numbers. Så det ser ut som vi alle bør bruke dstat hvis vi ønsker å imponere folk med store tall.
Looks also like you shouldn't compare dstat to something else than dstat if you really want to compare systems, I doubt I'll use it any more for this kind of stuff any more. Ser også ut som du bør ikke sammenligne dstat til noe annet enn dstat hvis du virkelig vil sammenligne systemer, tviler jeg at jeg skal bruke den noe mer for denne typen ting lenger.