Tartalomjegyzék
Kivonat
Számos program áll rendelkezésre a rendszer állapotának vizsgálatához. Ebben a fejezetben ezek közül néhány kerül bemutatásra, a legfontosabb és leggyakrabban használt paraméterekkel.
Minden bemutatott parancsnál megtalálhatók a vonatkozó kimenetek példái is. A példákban az első sor maga a parancs (a > vagy # karakterrel jelzett prompt után). A megjegyzéseket szögletes zárójel ([...]) jelöli, és ha szükséges, a hosszú sorokat megtörtük. A hosszú sorok sortöréseit visszafelé dőlt törtvonal (\) jelzi.
# command -x -y
output line 1
output line 2
output line 3 is annoyingly long, so long that \
we have to break it
output line 3
[...]
output line 98
output line 99
A leírások rövidek, hogy minél több segédprogram bemutatásra tudjon kerülni. A parancsokról további információ a kézikönyvoldalakon (man) olvasható. A legtöbb parancs kiadható a --help paraméterrel is; ennek hatására kiírja a használható paraméterek rövid listáját.
A legtöbb linuxos rendszerfelügyeleti eszköz csak a rendszer egy megadott részét vizsgálja, azonban létezik néhány „svájci-bicska” jellegű segédprogram, amely a rendszer valamilyen szempontjából átfogó képet nyújt. Érdemes elsősorban ezeket az eszközöket használni, ahhoz, hogy átfogó képet kapjunk a rendszerről és hogy megmutassák, hogy melyik részek további vizsgálata szükséges.
A vmstat információt gyűjt a folyamatokkal, memóriával, I/O-val, megszakításokkal és a processzorral kapcsolatban. Ha mintavételezési gyakoriság megadása nélkül kerül meghívásra, akkor az utolsó újraindítás óta eltelt időszak átlagértékeit mutatja. Ha meghívásakor a mintavételezési gyakoriság is megadásra kerül, akkor az aktuális mintavételeket mutatja:
13.1. példa - vmstat kimenete alacsony kihasználtságú számítógépen
tux@mercury:~> vmstat -a 2 procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------- r b swpd free inact active si so bi bo in cs us sy id wa st 0 0 0 750992 570648 548848 0 0 0 1 8 9 0 0 100 0 0 0 0 0 750984 570648 548912 0 0 0 0 63 48 1 0 99 0 0 0 0 0 751000 570648 548912 0 0 0 0 55 47 0 0 100 0 0 0 0 0 751000 570648 548912 0 0 0 0 56 50 0 0 100 0 0 0 0 0 751016 570648 548944 0 0 0 0 57 50 0 0 100 0 0
13.2. példa - vmstat kimenete magas kihasználtságú számítógépen
tux@mercury:~> vmstat 2 procs -----------memory----------- ---swap-- -----io---- -system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 32 1 26236 459640 110240 6312648 0 0 9944 2 4552 6597 95 5 0 0 0 23 1 26236 396728 110336 6136224 0 0 9588 0 4468 6273 94 6 0 0 0 35 0 26236 554920 110508 6166508 0 0 7684 27992 4474 4700 95 5 0 0 0 28 0 26236 518184 110516 6039996 0 0 10830 4 4446 4670 94 6 0 0 0 21 5 26236 716468 110684 6074872 0 0 8734 20534 4512 4061 96 4 0 0 0
![]() | |
A vmstat kimenetének első sora mindig az utolsó újraindítás óta eltelt időszak átlagértékeit mutatja. | |
Az oszlopok a következőket jelentik:
Folyamatok száma a futási sorban Ezek a folyamatok arra várnak, hogy szabad időt kapjanak a processzortól. Amennyiben a folyamatok száma ebben az oszlopban folyamatosan magasabb, mint a rendelkezésre álló processzorok száma, akkor az azt jelzi, hogy a számítógép processzorkapacitása alacsony.
Folyamatok száma, amely nem a processzor erőforrására vár. Amennyiben a folyamatok száma magas ebben az oszlopban, akkor az I/O problémára utal (hálózat vagy lemez).
A jelenleg felhasznált csereterület (swap).
Fel nem használt memória mennyisége.
Jelenleg fel nem használt, lefoglalható memória. Ez az oszlop csak akkor jelenik meg, ha a vmstat a -a paraméterrel kerül meghívásra (javasolt).
Jelenleg használt memória, amely normális esetben nem foglalható le. Ez az oszlop csak akkor jelenik meg, ha a vmstat a -a paraméterrel kerül meghívásra (javasolt).
Fájlpuffer gyorsítótár a RAM-ban. Ez az oszlop nem jelenik meg, ha a vmstat a -a paraméterrel kerül meghívásra (javasolt).
Page gyorsítótár a RAM-ban. Ez az oszlop nem jelenik meg, ha a vmstat a -a paraméterrel kerül meghívásra (javasolt).
Másodpercenként a RAM-ból a csereterületre (swap) mozgatott adatmennyiség. Amennyiben ez az oszlop hosszabb ideig nagy adatmennyiséget mutat, akkor a számítógépnek több memóriára van szüksége.
Másodpercenként a a csereterületről (swap) a RAM-ba mozgatott adatmennyiség. Amennyiben ez az oszlop hosszabb ideig nagy adatmennyiséget mutat, akkor a számítógépnek több memóriára van szüksége.
A blokkeszközről másodpercenként érkező blokkok száma (pl. lemezolvasás). A csereterület gyakori használata kihatással lehet az itt látható értékekre.
A blokkeszközre másodpercenként érkező blokkok száma (pl. lemezírás). A csereterület gyakori használata kihatással lehet az itt látható értékekre.
Másodpercenkénti megszakítások száma. Ennek magas száma nagy I/O aktivitásra utal (hálózat és/vagy lemez).
Másodpercenkénti kontextusváltás. Leegyszerűsítve ez azt jelenti, hogy a kernelnek a memóriában az egyik futtatható kódot egy másikra kellett cserélnie.
Felhasználófolyamatok általi processzorhasználat százalékban.
Rendszerfolyamatok általi processzorhasználat százalékban.
A processzor tétlenül töltött ideje százalékban. Amennyiben ez az érték hosszabb ideig nulla, akkor a processzor(ok) teljes kapacitással dolgoznak. Ez nem feltétlenül jelent rosszat – érdemes inkább az és oszlopokat megnézni az elegendő processzorteljesítmény vizsgálatához.
I/O várakozással töltött idő. Amennyiben ez az érték nullánál jóval magasabb, akkor az I/O rendszerben szűk keresztmetszet található (hálózat vagy lemez).
Virtuális gépek processzorhasználata százalékban.
További paraméterek a vmstat --help parancs használatával tekinthetők meg.
A sar részletes jelentéseket képes generálni a rendszer szinte minden fontos tevékenységéről, így például a CPU-ról, a memóriáról, az IRQ-k használatáról, az I/O-ról és a hálózatokról. Ennek segítségével azonnali jelentések is készíthetők, vagy előre elkészített lekérdezések is használhatók az sadc által gyűjtött adatokból. A sar és a sadc az adatokat a /proc könyvtárból gyűjti.
![]() | sysstat csomag |
|---|---|
A sar és a sadc a | |
Amennyiben hosszabb ideig van szükség a rendszer monitorozására, akkor az automatikus adatgyűjtéshez az sadc programot érdemes használni. A gyűjtött adat a sar használatával bármikor beolvasható. A sadc elindításához az /etc/init.d/boot.sysstat start parancsot kell futtatni. Ez egy hivatkozást ad hozzá az /etc/cron.d/ könyvtár alatt, amely a sadc programot hívja meg az alábbi alapértelmezett beállításokkal:
Minden elérhető adat összegyűjtésre kerül.
Az adat a következő helyre kerül kiírásra: /var/log/sa/sa, ahol a DDDD az adott napot jelöli. Amennyiben a fájl már létezik, akkor az archiválásra kerül.
Az összefoglaló jelentés a /var/log/sa/sar fájlba kerül, ahol a DDDD az adott napot jelenti. A létező fájlok archiválásra kerülnek.
Az adatgyűjtés 10 percenként történik és az összesítő jelentés 6 óránként készül el (lásd /etc/sysstat/sysstat.cron).
Az adatgyűjtést a /usr/lib64/sa/sa1 parancsfájl végzi (vagy 32 bites rendszereken a /usr/lib/sa/sa1)
Az összefoglaló jelentést a /usr/lib64/sa/sa2 (vagy 32 bites rendszerek a /usr/lib/sa/sa2) parancsfájl végzi.
A beállítások módosításához célszerű lemásolni a sa1 és az sa2 parancsfájlokat és azokat módosítani. Módosítsa az /etc/cron.d/sysstat hivatkozást az /etc/sysstat/sysstat.cron módosított másolatával, hogy az új parancsfájlt hívja meg.
Azonnali jelentés készítéséhez indítsa el a sar programot időintervallum és darabszám megadásával. Fájlokból történő jelentések készítéséhez, a fájl megadásához használja a -f kapcsolót. Amennyiben a fájlnév, az időintervallum és a darabszám sem kerül megadásra, akkor a sar a jelentést a /var/log/sa/sa, fájlból készíti el, ahol DDDD az aktuális napot jelöli. Ez az alapértelmezett elérési útvonal, ahová a sadc lementi az adatokat. Több fájl, több -f kapcsolóval kérdezhető le.
sar 2 10 # on-the-fly report, 10 times every 2 seconds sar -f ~/reports/sar_2010_05_03 # queries file sar_2010_05_03 sar # queries file from today in /var/log/sa/ cd /var/log/sa &&\ sar -f sa01 -f sa02 # queries files /var/log/sa/0[12]
Az alábbiakban néhány hasznos példa található a sar hivásainak használatára: Az oszlopok jelentésének részletes leírása a sar man (1) man oldalain található. A man oldalakon további beállításokról és jelentésekről kaphat részletes információt – a sar számos további funkcióval rendelkezik.
Paraméterek nélkül elindítva a sar egyszerű jelentést készít a processzor használatáról. Több processzorral rendelkező számítógépeken az összes processzor eredményei összegződnek. A -P ALL kapcsoló használatával a statisztika processzoronként külön szerepel.
mercury:~ # sar 10 5 Linux 2.6.31.12-0.2-default (mercury) 03/05/10 _x86_64_ (2 CPU) 14:15:43 CPU %user %nice %system %iowait %steal %idle 14:15:53 all 38.55 0.00 6.10 0.10 0.00 55.25 14:16:03 all 12.59 0.00 4.90 0.33 0.00 82.18 14:16:13 all 56.59 0.00 8.16 0.44 0.00 34.81 14:16:23 all 58.45 0.00 3.00 0.00 0.00 38.55 14:16:33 all 86.46 0.00 4.70 0.00 0.00 8.85 Average: all 49.94 0.00 5.38 0.18 0.00 44.50
Amennyiben a (a processzor I/O műveletre történő várakozásának ideje százalékban) értéke hosszabb ideig jóval magasabb, mint nulla, akkor az I/O rendszerben szűk keresztmetszet található (hálózat vagy a lemez). Amennyiben az értéke hosszabb ideig nulla, akkor a processzor teljes kapacitással működik.
-r¶
A sar átfogó képet nyújt a rendszermemóriáról (RAM) a -r kapcsoló segítségével:
mercury:~ # sar -r 10 5 Linux 2.6.31.12-0.2-default (mercury) 03/05/10 _x86_64_ (2 CPU) 16:12:12 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 16:12:22 548188 1507488 73.33 20524 64204 2338284 65.10 16:12:32 259320 1796356 87.39 20808 72660 2229080 62.06 16:12:42 381096 1674580 81.46 21084 75460 2328192 64.82 16:12:52 642668 1413008 68.74 21392 81212 1938820 53.98 16:13:02 311984 1743692 84.82 21712 84040 2212024 61.58 Average: 428651 1627025 79.15 21104 75515 2209280 61.51
Az utolsó két oszlop ( és ) megmutatja a teljes memória (RAM és a csereterület) méretét, amelyre a legrosszabb esetben szükség van a jelenlegi terhelés mellett (kilobyte-ban, illetve százalékban megadva).
-B¶
A kernel paging statisztika megjelenítéséhez a -B kapcsolót kell használni.
mercury:~ # sar -B 10 5 Linux 2.6.31.12-0.2-default (mercury) 03/05/10 _x86_64_ (2 CPU) 16:11:43 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff 16:11:53 225.20 104.00 91993.90 0.00 87572.60 0.00 0.00 0.00 0.00 16:12:03 718.32 601.00 82612.01 2.20 99785.69 560.56 839.24 1132.23 80.89 16:12:13 1222.00 1672.40 103126.00 1.70 106529.00 1136.00 982.40 1172.20 55.33 16:12:23 112.18 77.84 113406.59 0.10 97581.24 35.13 127.74 159.38 97.86 16:12:33 817.22 81.28 121312.91 9.41 111442.44 0.00 0.00 0.00 0.00 Average: 618.72 507.20 102494.86 2.68 100578.98 346.24 389.76 492.60 66.93
A (major faults per second) oszlop azt mutatja, hogy mennyi memórialap került betöltésre a lemezről (swap) a memóriába. Ennek nagy száma azt jelenti, hogy nincs elegendő memória a számítógépben. A oszlop a vizsgált lapok számát mutatja (), összehasonlítva a memória gyorsítótárában, vagy a swap gyorsítótárban újrahasznált lapokkal (). Ez mutatja a memórialapok felhasználásának hatékonyságát. Egészségesnek tekinthető a 100 körüli érték (minden inaktív memóriaoldal újra felhasználásra kerül) vagy a 0 (amikor nincs vizsgált oldal). Ennek az értéknek nem szabad 30 alá esnie.
-d¶
A -d kapcsoló használatával megjelennek a blokkeszközök (hdd, optikai meghajtók, USB tároló eszközök stb.). Érdemes használni a -p kapcsolót, amely olvasható formátumban jeleníti meg a oszlopot.
mercury:~ # sar -d -p 10 5 Linux 2.6.31.12-0.2-default (neo) 03/05/10 _x86_64_ (2 CPU) 16:28:31 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 16:28:41 sdc 11.51 98.50 653.45 65.32 0.10 8.83 4.87 5.61 16:28:41 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 16:28:41 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 16:28:51 sdc 15.38 329.27 465.93 51.69 0.10 6.39 4.70 7.23 16:28:51 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 16:28:51 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 16:29:01 sdc 32.47 876.72 647.35 46.94 0.33 10.20 3.67 11.91 16:29:01 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 16:29:01 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 16:29:11 sdc 48.75 2852.45 366.77 66.04 0.82 16.93 4.91 23.94 16:29:11 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 16:29:11 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 16:29:21 sdc 13.20 362.40 412.00 58.67 0.16 12.03 6.09 8.04 16:29:21 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util Average: sdc 24.26 903.52 509.12 58.23 0.30 12.49 4.68 11.34 Average: scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
A legjobb teljesítmény akkor érhető el, ha a számítógépben több merevlemez található és az I/O kérések egyenlően oszlanak el a merevlemezek között. Érdemes összehasonlítani az összes merevlemez , és paraméterének (átlag) értékeit. Az és oszlopok folyamatosan magas értékei azt mutatják, hogy a merevlemezen található szabad terület száma alacsony.
-n KULCSSZÓ¶
Az -n kapcsoló többféle hálózati statisztikát jelenít meg. Az -n kapcsolóhoz az alábbi kulcsszavak adhatók meg:
DEV: Statisztikát készít az összes hálózati eszközről
EDEV: Statisztikát készít a hálózati eszközök hibáiról.
NFS: Statisztikát készít az NFS-kliensről.
NFSD: Statisztikát készít az NFS-kiszolgálóról.
SOCK: Statisztikát készít a socketekről
ALL: Elkészíti az összes statisztikát
A sar által készített statisztikák és jelentések általában nem áttekinthetők. A kSar, egy Java alkalmazás, amely segít a sar adatok megjelenítésében, és áttekinthető grafikonokat készít. Emellett lehetőség van a statisztikák exportálására PDF formátumban is. A kSar képes folyamatosan képes feldolgozni az adatokat, valamint lehetőség van korábbi adatok feldolgozására is. A kSar BSD licenc alatt jelenik meg és a http://ksar.atomique.net/ weboldalon érhető el.
Az iostat a rendszereszközök terhelését figyeli. Az általa készített jelentések hasznosak lehetnek a számítógéphez csatlakoztatott lemezek jobb terheléselosztásának kialakítására.
Az első iostat jelentés a rendszerindítás óta gyűjtött adatokat jeleníti meg. Az ezt követő jelentések az előző jelentés óta eltelt időt ölelik fel.
tux@mercury:~> iostat
Linux 2.6.32.7-0.2-default (geeko@buildhost) 02/24/10 _x86_64_
avg-cpu: %user %nice %system %iowait %steal %idle
0,49 0,01 0,10 0,31 0,00 99,09
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 1,34 5,59 25,37 1459766 6629160
sda1 0,00 0,01 0,00 1519 0
sda2 0,87 5,11 17,83 1335365 4658152
sda3 0,47 0,47 7,54 122578 1971008
Az -n kapcsoló használatával az iostat a hálózati fájlrendszerek (NFS) terhelési adatait is hozzáadja a statisztikához. Az -x kapcsoló részletes statisztikai adatokat jelenít meg.
Az is meghatározható, hogy mely eszközöket, milyen időközönként kell figyelni. Például az iostat -p sda 3 5 parancs 5 jelentést készít, 3 másodpercenként az sda eszközről.
![]() | sysstat csomag |
|---|---|
Az iostat a | |
Az mpstat segédprogram minden egyes elérhető processzor aktivitását nyomon követi. Amennyiben a számítógépben csak egyetlen processzor van, akkor az általános statisztikák készülnek csak el.
A -P kapcsolóval megadható a processzorok száma, amelyek adatai a jelentésbe kerüljenek (érdemes megjegyezni, hogy a 0 az első processzor). Az időzítési paraméterek pont ugyanúgy működnek, mint az iostat parancs esetében. Az mpstat -P 1 2 5 parancs 5 jelentést készít, 2 másodpercenként a második (1-es számú) processzorról.
tux@mercury:~> mpstat -P 1 2 5 Linux 2.6.32.7-0.2-default (geeko@buildhost) 02/24/10 _x86_64_ 08:57:10 CPU %usr %nice %sys %iowait %irq %soft %steal \ %guest %idle 08:57:12 1 4.46 0.00 5.94 0.50 0.00 0.00 0.00 \ 0.00 89.11 08:57:14 1 1.98 0.00 2.97 0.99 0.00 0.99 0.00 \ 0.00 93.07 08:57:16 1 2.50 0.00 3.00 0.00 0.00 1.00 0.00 \ 0.00 93.50 08:57:18 1 14.36 0.00 1.98 0.00 0.00 0.50 0.00 \ 0.00 83.17 08:57:20 1 2.51 0.00 4.02 0.00 0.00 2.01 0.00 \ 0.00 91.46 Average: 1 5.17 0.00 3.58 0.30 0.00 0.90 0.00 \ 0.00 90.05
Ha meg akarja tekinteni, hogy melyik terhelés melyik feladathoz tartozik, akkor a pidstat parancsot kell használni. Ez a parancs kiírja az összes kiválasztott feladat vagy amennyiben nincs megadva feladat, akkor az összes Linux kernelhez kapcsolódó feladat aktivitását. Ugyancsak megadható, hogy milyen időközönként mennyi jelentés készüljön.
Például a pidstat -C top 2 3 kiírja az olyan feladatok terhelési statisztikáit, amelyek nevében szerepel a „top”. Három jelentés fog készülni két másodperces időközökkel.
tux@mercury:~> pidstat -C top 2 3 Linux 2.6.27.19-5-default (geeko@buildhost) 03/23/2009 _x86_64_ 09:25:42 AM PID %usr %system %guest %CPU CPU Command 09:25:44 AM 23576 37.62 61.39 0.00 99.01 1 top 09:25:44 AM PID %usr %system %guest %CPU CPU Command 09:25:46 AM 23576 37.00 62.00 0.00 99.00 1 top 09:25:46 AM PID %usr %system %guest %CPU CPU Command 09:25:48 AM 23576 38.00 61.00 0.00 99.00 1 top Average: PID %usr %system %guest %CPU CPU Command Average: 23576 37.54 61.46 0.00 99.00 - top
A Linux-kernel számos üzenetet tárol egy gyűrűpufferben. Ezen üzenetek megtekintésére szolgál a dmesg parancs:
tux@mercury:~> dmesg [...] end_request: I/O error, dev fd0, sector 0 subfs: unsuccessful attempt to mount media (256) e100: eth0: e100_watchdog: link up, 100Mbps, half-duplex NET: Registered protocol family 17 IA-32 Microcode Update Driver: v1.14 <tigran@veritas.com> microcode: CPU0 updated from revision 0xe to 0x2e, date = 08112004 IA-32 Microcode Update Driver v1.14 unregistered bootsplash: status on console 0 changed to on NET: Registered protocol family 10 Disabled Privacy Extensions on device c0326ea0(lo) IPv6 over IPv4 tunneling driver powernow: This module only works with AMD K7 CPUs bootsplash: status on console 0 changed to on
A régebbi események a /var/log/messages és /var/log/warn fájlokban vannak naplózva.
Egy adott folyamatazonosítóval (PID) rendelkező folyamathoz tartozó összes nyitott fájl listájának megtekintéséhez használja a -p paramétert. Ha például látni szeretné az aktuális parancsértelmező által használt összes fájlt, írja be a következőket:
tux@mercury:~> lsof -p $$ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 5552 tux cwd DIR 3,3 1512 117619 /home/tux bash 5552 tux rtd DIR 3,3 584 2 / bash 5552 tux txt REG 3,3 498816 13047 /bin/bash bash 5552 tux mem REG 0,0 0 [heap] (stat: No such bash 5552 tux mem REG 3,3 217016 115687 /var/run/nscd/passwd bash 5552 tux mem REG 3,3 208464 11867 /usr/lib/locale/en_GB. [...] bash 5552 tux mem REG 3,3 366 9720 /usr/lib/locale/en_GB. bash 5552 tux mem REG 3,3 97165 8828 /lib/ld-2.3.6.so bash 5552 tux 0u CHR 136,5 7 /dev/pts/5 bash 5552 tux 1u CHR 136,5 7 /dev/pts/5 bash 5552 tux 2u CHR 136,5 7 /dev/pts/5 bash 5552 tux 255u CHR 136,5 7 /dev/pts/5
A speciális $$ parancsértelmező-változót használtuk, amelynek az értéke az aktuális parancsértelmező folyamatazonosítója.
Az lsof parancs paraméterek nélkül kiadva minden éppen nyitott fájlt felsorol. Gyakran fájlok ezrei vannak nyitva, ezért mindegyiket ritkán érdemes kilistázni. Az összes fájl listája azonban a keresési funkciókkal kombinálva hasznos listákat eredményez. Ilyen például az összes karakteres eszköz listája:
tux@mercury:~> lsof | grep CHR bash 3838 tux 0u CHR 136,0 2 /dev/pts/0 bash 3838 tux 1u CHR 136,0 2 /dev/pts/0 bash 3838 tux 2u CHR 136,0 2 /dev/pts/0 bash 3838 tux 255u CHR 136,0 2 /dev/pts/0 bash 5552 tux 0u CHR 136,5 7 /dev/pts/5 bash 5552 tux 1u CHR 136,5 7 /dev/pts/5 bash 5552 tux 2u CHR 136,5 7 /dev/pts/5 bash 5552 tux 255u CHR 136,5 7 /dev/pts/5 X 5646 root mem CHR 1,1 1006 /dev/mem lsof 5673 tux 0u CHR 136,5 7 /dev/pts/5 lsof 5673 tux 2u CHR 136,5 7 /dev/pts/5 grep 5674 tux 1u CHR 136,5 7 /dev/pts/5 grep 5674 tux 2u CHR 136,5 7 /dev/pts/5
Az -i kapcsoló használatával az lsof kilistázza a jelenleg nyitott internetes fájlokat is:
tux@mercury:~> lsof -i [...] pidgin 4349 tux 17r IPv4 15194 0t0 TCP \ jupiter.example.com:58542->www.example.net:https (ESTABLISHED) pidgin 4349 tux 21u IPv4 15583 0t0 TCP \ jupiter.example.com:37051->aol.example.org:aol (ESTABLISHED) evolution 4578 tux 38u IPv4 16102 0t0 TCP \ jupiter.example.com:57419->imap.example.com:imaps (ESTABLISHED) npviewer. 9425 tux 40u IPv4 24769 0t0 TCP \ jupiter.example.com:51416->www.example.com:http (CLOSE_WAIT) npviewer. 9425 tux 49u IPv4 24814 0t0 TCP \ jupiter.example.com:43964->www.example.org:http (CLOSE_WAIT) ssh 17394 tux 3u IPv4 40654 0t0 TCP \ jupiter.example.com:35454->saturn.example.com:ssh (ESTABLISHED)
Az udevadm monitor a kernel ueventeket és az udev szabályok által kibocsátott eseményeket figyeli és kiírja az eseményben érintett eszköz elérési útját (DEVPATH) a konzolra. Egy USB-pendrive csatlakoztatásával kapcsolatos események sorozata:
![]() | udev események monitorozása |
|---|---|
Csak a root felhasználónak van joga az udev események figyelésére az udevadm parancs használatával. | |
UEVENT[1138806687] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2 UEVENT[1138806687] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2/4-2.2 UEVENT[1138806687] add@/class/scsi_host/host4 UEVENT[1138806687] add@/class/usb_device/usbdev4.10 UDEV [1138806687] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2 UDEV [1138806687] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2/4-2.2 UDEV [1138806687] add@/class/scsi_host/host4 UDEV [1138806687] add@/class/usb_device/usbdev4.10 UEVENT[1138806692] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2/4-2.2 UEVENT[1138806692] add@/block/sdb UEVENT[1138806692] add@/class/scsi_generic/sg1 UEVENT[1138806692] add@/class/scsi_device/4:0:0:0 UDEV [1138806693] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2/4-2.2 UDEV [1138806693] add@/class/scsi_generic/sg1 UDEV [1138806693] add@/class/scsi_device/4:0:0:0 UDEV [1138806693] add@/block/sdb UEVENT[1138806694] add@/block/sdb/sdb1 UDEV [1138806694] add@/block/sdb/sdb1 UEVENT[1138806694] mount@/block/sdb/sdb1 UEVENT[1138806697] umount@/block/sdb/sdb1
A Linux audit keretrendszer egy komplex auditrendszer, amely összegyűjti az összes biztonsággal kapcsolatos esemény részletes adatát. Ezek az információk elemezhetők, hogy felismerjenek például egy biztonsági irányelv megsértést.
A xrestop parancs statisztikákat jelenít meg az egyes X11-kliensek kiszolgálóoldali erőforrásairól. A kimenet hasonló ehhez: 13.3.4. - Folyamatok táblázata: top.
xrestop - Display: localhost:0
Monitoring 40 clients. XErrors: 0
Pixmaps: 42013K total, Other: 206K total, All: 42219K total
res-base Wins GCs Fnts Pxms Misc Pxm mem Other Total PID Identifier
3e00000 385 36 1 751 107 18161K 13K 18175K ? NOVELL: SU
4600000 391 122 1 1182 889 4566K 33K 4600K ? amaroK - S
1600000 35 11 0 76 142 3811K 4K 3816K ? KDE Deskto
3400000 52 31 1 69 74 2816K 4K 2820K ? Linux Shel
2c00000 50 25 1 43 50 2374K 3K 2378K ? Linux Shel
2e00000 50 10 1 36 42 2341K 3K 2344K ? Linux Shel
2600000 37 24 1 34 50 1772K 3K 1775K ? Root - Kon
4800000 37 24 1 34 49 1772K 3K 1775K ? Root - Kon
2a00000 209 33 1 323 238 1111K 12K 1123K ? Trekstor25
1800000 182 32 1 302 285 1039K 12K 1052K ? kicker
1400000 157 121 1 231 477 777K 18K 796K ? kwin
3c00000 175 36 1 248 168 510K 9K 520K ? de.comp.la
3a00000 326 42 1 579 444 486K 20K 506K ? [opensuse-
0a00000 85 38 1 317 224 102K 9K 111K ? Kopete
4e00000 25 17 1 60 66 63K 3K 66K ? YaST Contr
2400000 11 10 0 56 51 53K 1K 55K 22061 suseplugge
0e00000 20 12 1 50 92 50K 3K 54K 22016 kded
3200000 6 41 5 72 84 40K 8K 48K ? EMACS
2200000 54 9 1 30 31 42K 3K 45K ? SUSEWatche
4400000 2 11 1 30 34 34K 2K 36K 16489 kdesu
1a00000 255 7 0 42 11 19K 6K 26K ? KMix
3800000 2 14 1 34 37 21K 2K 24K 22242 knotify
1e00000 10 7 0 42 9 15K 624B 15K ? KPowersave
3600000 106 6 1 30 9 7K 3K 11K 22236 konqueror
2000000 10 5 0 21 34 9K 1K 10K ? klipper
3000000 21 7 0 11 9 7K 888B 8K ? KDE WalletAz ipcs parancs megadja az aktuálisan használt IPC-erőforrások listáját:
------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00000000 58261504 tux 600 393216 2 dest 0x00000000 58294273 tux 600 196608 2 dest 0x00000000 83886083 tux 666 43264 2 0x00000000 83951622 tux 666 192000 2 0x00000000 83984391 tux 666 282464 2 0x00000000 84738056 root 644 151552 2 dest ------ Semaphore Arrays -------- key semid owner perms nsems 0x4d038abf 0 tux 600 8 ------ Message Queues -------- key msqid owner perms used-bytes messages
A ps parancs folyamatlistát készít. A legtöbb paraméter mínuszjel nélkül is megadható. A ps --help parancs egy rövidített súgóoldalt jelenít meg, a kézikönyvoldalon pedig részletes súgó található.
Az összes folyamat felhasználói és parancssori információkkal történő kiíratásához adja ki a ps aux parancsot:
tux@mercury:~> ps axu USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 696 272 ? S 12:59 0:01 init [5] root 2 0.0 0.0 0 0 ? SN 12:59 0:00 [ksoftirqd root 3 0.0 0.0 0 0 ? S< 12:59 0:00 [events [...] tux 4047 0.0 6.0 158548 31400 ? Ssl 13:02 0:06 mono-best tux 4057 0.0 0.7 9036 3684 ? Sl 13:02 0:00 /opt/gnome tux 4067 0.0 0.1 2204 636 ? S 13:02 0:00 /opt/gnome tux 4072 0.0 1.0 15996 5160 ? Ss 13:02 0:00 gnome-scre tux 4114 0.0 3.7 130988 19172 ? SLl 13:06 0:04 sound-juic tux 4818 0.0 0.3 4192 1812 pts/0 Ss 15:59 0:00 -bash tux 4959 0.0 0.1 2324 816 pts/0 R+ 16:17 0:00 ps axu
Annak ellenőrzésére például, hogy hány sshd folyamat fut, használja a -p paramétert a pidof paranccsal, amelyik megjeleníti az adott folyamat folyamatazonosítóját (PID-jét).
tux@mercury:~> ps -p $(pidof sshd) PID TTY STAT TIME COMMAND 3524 ? Ss 0:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid 4813 ? Ss 0:00 sshd: tux [priv] 4817 ? R 0:00 sshd: tux@pts/0
A folyamatlista az igényeknek megfelelően formázható. A -L paraméter visszaadja a kulcsszavak listáját. Adja meg a következő parancsot a folyamatok kiíratásához, memóriahasználat szerint rendezve:
tux@mercury:~> ps ax --format pid,rss,cmd --sort rss
PID RSS CMD
2 0 [ksoftirqd/0]
3 0 [events/0]
4 0 [khelper]
5 0 [kthread]
11 0 [kblockd/0]
12 0 [kacpid]
472 0 [pdflush]
473 0 [pdflush]
[...]
4028 17556 nautilus --no-default-window --sm-client-id default2
4118 17800 ksnapshot
4114 19172 sound-juicer
4023 25144 gnome-panel --sm-client-id default1
4047 31400 mono-best --debug /usr/lib/beagle/Best.exe --autostarted
3973 31520 mono-beagled --debug /usr/lib/beagle/BeagleDaemon.exe --bg --autHasznos ps hívások
--sort oszlop
A kimenet oszlop szerinti rendezése. Az oszlop helyén a következők lehetnek:
pmem fizikai memória aránya |
pcpu CPU aránya |
rss resident set size (nem a cserepartíciót használó fizikai memória) |
Megjeleníti az összes folyamatot, azok PID-jét, CPU felhasználását, memóriaméretét (belsőt és virtuálist), nevét és a rendszerhívását.
Megjeleníti a folyamatfát (melyik folyamat melyikhez kapcsolódik).
A pstree parancs fa formában állítja elő a folyamatok listáját:
tux@mercury:~> pstree
init-+-NetworkManagerD
|-acpid
|-3*[automount]
|-cron
|-cupsd
|-2*[dbus-daemon]
|-dbus-launch
|-dcopserver
|-dhcpcd
|-events/0
|-gpg-agent
|-hald-+-hald-addon-acpi
| `-hald-addon-stor
|-kded
|-kdeinit-+-kdesu---su---kdesu_stub---yast2---y2controlcenter
| |-kio_file
| |-klauncher
| |-konqueror
| |-konsole-+-bash---su---bash
| | `-bash
| `-kwin
|-kdesktop---kdesktop_lock---xmatrix
|-kdesud
|-kdm-+-X
| `-kdm---startkde---kwrapper
[...]
A -p paraméter hozzáadja a folyamatazonosítót egy adott névhez. Ha a parancssorokat is szeretné megjeleníteni, használja a -a paramétert.
A top parancs amely a table of processes névből ered megjeleníti a folyamatok listáját, amely két másodpercenként frissül. A program lezárásához nyomja meg a Q gombot. A -n 1 paraméter a folyamatlista egyetlen megjelenése után lezárja a programot. Az alábbiakban egy példa a top -n 1 parancs kimenetére:
tux@mercury:~> top -n 1
top - 17:06:28 up 2:10, 5 users, load average: 0.00, 0.00, 0.00
Tasks: 85 total, 1 running, 83 sleeping, 1 stopped, 0 zombie
Cpu(s): 5.5% us, 0.8% sy, 0.8% ni, 91.9% id, 1.0% wa, 0.0% hi, 0.0% si
Mem: 515584k total, 506468k used, 9116k free, 66324k buffers
Swap: 658656k total, 0k used, 658656k free, 353328k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 16 0 700 272 236 S 0.0 0.1 0:01.33 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root 10 -5 0 0 0 S 0.0 0.0 0:00.27 events/0
4 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 khelper
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
11 root 10 -5 0 0 0 S 0.0 0.0 0:00.05 kblockd/0
12 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
472 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pdflush
473 root 15 0 0 0 0 S 0.0 0.0 0:00.06 pdflush
475 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0
474 root 15 0 0 0 0 S 0.0 0.0 0:00.07 kswapd0
681 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 kseriod
839 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 reiserfs/0
923 root 13 -4 1712 552 344 S 0.0 0.1 0:00.67 udevd
1343 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
1587 root 20 0 0 0 0 S 0.0 0.0 0:00.00 shpchpd_event
1746 root 15 0 0 0 0 S 0.0 0.0 0:00.00 w1_control
1752 root 15 0 0 0 0 S 0.0 0.0 0:00.00 w1_bus_master1
2151 root 16 0 1464 496 416 S 0.0 0.1 0:00.00 acpid
2165 messageb 16 0 3340 1048 792 S 0.0 0.2 0:00.64 dbus-daemon
2166 root 15 0 1840 752 556 S 0.0 0.1 0:00.01 syslog-ng
2171 root 16 0 1600 516 320 S 0.0 0.1 0:00.00 klogd
2235 root 15 0 1736 800 652 S 0.0 0.2 0:00.10 resmgrd
2289 root 16 0 4192 2852 1444 S 0.0 0.6 0:02.05 hald
2403 root 23 0 1756 600 524 S 0.0 0.1 0:00.00 hald-addon-acpi
2709 root 19 0 2668 1076 944 S 0.0 0.2 0:00.00 NetworkManagerD
2714 root 16 0 1756 648 564 S 0.0 0.1 0:00.56 hald-addon-storAlapértelmezés szerint a kimenet a CPU felhasználás szerint kerül megjelenítésre ( oszlop, Shift+P gyorsbillentyű). A rendezés módja az alábbi gyorsbillentyűkkel módosítható:
| Shift+M: Belső memória () |
| Shift+N: Folyamat ID () |
| Shift+T: Idő () |
Bármely más mező alapján történő kereséshez az F billentyű megnyomása után megjelenő listából lehet választani. A rendezés sorrend módosítása az Shift+R billentyű megnyomásával történik.
A -U paraméter csak egy adott felhasználóhoz rendelt folyamatokat figyeli. Helyettesítse be az UIDUID értéket a felhasználó azonosítójával. Az aktuális felhasználó folyamatainak megjelenítéséhez a top -U $(id -u) parancs használható.
A kernel a nice szint alapján (amit niceness-nek nevezünk) meghatározza, hogy melyik folyamatnak van szüksége több CPU-időre. Minél magasabb a folyamat „nice”-szintje, annál kevesebb CPU-időt vehet el más folyamatoktól. A nice értékek -20-tól (ez a legalacsonyabb „nice” szint) 19-ig mehetnek. Negatív értékeket csak a root felhasználó állíthat be.
A nice-szint módosítása hasznos például, ha egy rendszeren, amelyen egyéb feladatok is futnak, egy nagy, nem időkritikus folyamatot futtat, amely sokáig tart és sok CPU-időt igényel (ilyen például a kernelfordítás). Egy ilyen folyamat nice-szintjének „emelésével” garantálható, hogy a többi feladat például a webkiszolgáló magasabb prioritást élvezhet.
A nice paraméterek nélküli meghívása kiírja az aktuális nice értéket.
tux@mercury:~> nice 0
A nice parancs_neve parancs 10-zel megnöveli az adott parancs nice-értékét. A nice -n szintparancs_neve paranccsal az előzőhöz képest relatíve módosítható az adott parancs nice-értéke.
Egy folyamat nice-értékének módosításához használja a renice prioritás -p parancsot, például:
folyamatazonosító
renice +5 3266
Egy adott felhasználó összes folyamatának a nice -u paranccsal lehet módosítani a nice-értékét. A felhasználó_nevenice -g parancs használatával lehet a nice értéket átírni.
folyamatcsoport_azonosítója
A free segédprogram megvizsgálja a RAM és a swap használatát. A kimenetben mind a szabad, mind a használt memória (és a csereterületek) részletes adatai láthatók:
tux@mercury:~> free
total used free shared buffers cached
Mem: 2062844 2047444 15400 0 129580 921936
-/+ buffers/cache: 995928 1066916
Swap: 2104472 0 2104472
A -b, -k, -m, -g paraméterek használatával az eredményt byte-okban, kilobyte-okban, megabyte-okban illetve gigabyte-okban jelenítik meg. A -d késleltetés paraméter hatására a képernyő késleltetés másodpercenként frissül. A free -d 1.5 parancs például másfél másodpercenként frissíti a képernyőt.
/proc/meminfo¶
A /proc/meminfo sokkal részletesebb információt ad a memóriahasználatról, mint a free. A free tulajdonképpen ennek a fájlnak a tartalmát használja fel. Az alábbiakban egy 64 bites rendszer kimenete látható. Érdemes megjegyezni, hogy ez kicsit különbözik a 32 bites rendszerek kimenetétől, mivel a memóriakezelésük különböző.
tux@mercury:~> cat /proc/meminfo MemTotal: 8182956 kB MemFree: 1045744 kB Buffers: 364364 kB Cached: 5601388 kB SwapCached: 1936 kB Active: 4048268 kB Inactive: 2674796 kB Active(anon): 663088 kB Inactive(anon): 107108 kB Active(file): 3385180 kB Inactive(file): 2567688 kB Unevictable: 4 kB Mlocked: 4 kB SwapTotal: 2096440 kB SwapFree: 2076692 kB Dirty: 44 kB Writeback: 0 kB AnonPages: 756108 kB Mapped: 147320 kB Slab: 329216 kB SReclaimable: 300220 kB SUnreclaim: 28996 kB PageTables: 21092 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 6187916 kB Committed_AS: 1388160 kB VmallocTotal: 34359738367 kB VmallocUsed: 133384 kB VmallocChunk: 34359570939 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 2689024 kB DirectMap2M: 5691392 kB
A legfontosabb részek:
Felhasználható memória mérete
Felhasznált összes memória mérete
Fájlpuffer gyorsítótár a RAM-ban.
Lapozó gyorsítótár a RAM-ban.
Lapozó gyorsítótár a csereterületen
Jelenleg használt memória, amely normális esetben nem foglalható le. Ez az érték a névtelen memórialapok () és a fájlként tárolt memórialapok () összege.
Jelenleg fel nem használt, lefoglalható memória. Ez az érték a névtelen memórialapok () és állomány alapú memórialapok () összege.
A csereterület teljes mérete
A teljes fel nem használt csereterület
Az a memóriamennyiség, amely a merevlemezre történő kiírásra vár
Az a memóriamennyiség, amely éppen kiírásra került a merevlemezre
Az nmap parancs által fo
Kernel adatstruktúra gyorsítótár
Azon becsült teljes memóriamennyiség (RAM és a csereterület), amely a legrosszabb esetben a jelenlegi terheléshez szükséges.
Pontos meghatározása egy bizonyos folyamat által lefoglalt memóriamennyiségnek, amelynek meghatározása nem lehetséges az általánosan használt eszközökkel, mint amilyen a top vagy aps. A pontos adat meghatározásához a kernel 2.6.14-ben megjelenő smaps alrendszerének használata szükséges. Ez a /proc/ helyen található és megjeleníti azokat a clean és dirty memórialapokat, amelyeket az adott pid/smapsPID-del rendelkező folyamat használ. Ez különbséget tesz a közös és saját memória között, így megállapítható, hogy egy folyamat mennyi memóriát használ a közös memóriaterületek használata nélkül.
A netstat a hálózati kapcsolatokat, az útválasztási táblát (-r), a csatolókat (-i), a maszkolási kapcsolatokat (-M), a multicast-tagságokat (-g) és hálózati statisztikákat (-s) jeleníti meg.
tux@mercury:~> netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.2.0 * 255.255.254.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 0 0 0 eth0 loopback * 255.0.0.0 U 0 0 0 lo default 192.168.2.254 0.0.0.0 UG 0 0 0 eth0
tux@mercury:~> netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 1624507 129056 0 0 7055 0 0 0 BMNRU lo 16436 0 23728 0 0 0 23728 0 0 0 LRU
A hálózati kapcsolatok és statisztikák megjelenítésekor megadható a megjeleníteni kívánt sockettípus: TCP (-t), UDP (-u) vagy nyers (-r). A -p paraméter a programok PID-jét és nevét jeleníti meg, amelyekhez az egyes socketek tartoznak.
Az alábbi példa kiírja az összes TCP-kapcsolatot, illetve az e kapcsolatokat használó programokat.
mercury:~ # netstat -t -p Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Pro [...] tcp 0 0 mercury:33513 www.novell.com:www-http ESTABLISHED 6862/fi tcp 0 352 mercury:ssh mercury2.:trc-netpoll ESTABLISHED 19422/s tcp 0 0 localhost:ssh localhost:17828 ESTABLISHED -
A következőkben pedig a TCP protokoll statisztikái láthatók:
tux@mercury:~> netstat -s -t
Tcp:
2427 active connections openings
2374 passive connection openings
0 failed connection attempts
0 connection resets received
1 connections established
27476 segments received
26786 segments send out
54 segments retransmited
0 bad segments received.
6 resets sent
[...]
TCPAbortOnLinger: 0
TCPAbortFailed: 0
TCPMemoryPressures: 0Az iptraf segédprogram egy menüvel rendelkező helyi hálózati felügyeleti eszköz. Hálózati statisztikákat készít, beleértve a TCP és UDP értékek számolását, az Ethernet terhelési adatokat, az IP ellenőrzőösszeg hibákat és még sok mást.
Ha bármilyen kapcsoló használata nélkül indítja el a programot, akkor az interaktív módban indul el. Használhatja a menüket, hogy az iptraf a megfelelő adatokat jelenítse meg. Lehetőség van egy meghatározott hálózati csatoló megadására is.
Az iptraf parancs több kapcsolóval is használható és batch módban is lehet futtatni. A következő parancs statisztikát gyűjt az eth0 csatolóról (-i) 1 percen keresztül (-t). A háttérben fog futni (-B) és a statisztikákat az iptraf.log fájlba gyűjti a home könyvtárba (-L).
tux@mercury:~> iptraf -i eth0 -t 1 -B -L ~/iptraf.log
A naplófájlt például a more parancs segítségével lehet megvizsgálni:
tux@mercury:~> more ~/iptraf.log Mon Mar 23 10:08:02 2010; ******** IP traffic monitor started ******** Mon Mar 23 10:08:02 2010; UDP; eth0; 107 bytes; from 192.168.1.192:33157 to \ 239.255.255.253:427 Mon Mar 23 10:08:02 2010; VRRP; eth0; 46 bytes; from 192.168.1.252 to \ 224.0.0.18 Mon Mar 23 10:08:03 2010; VRRP; eth0; 46 bytes; from 192.168.1.252 to \ 224.0.0.18 Mon Mar 23 10:08:03 2010; VRRP; eth0; 46 bytes; from 192.168.1.252 to \ 224.0.0.18 [...] Mon Mar 23 10:08:06 2010; UDP; eth0; 132 bytes; from 192.168.1.54:54395 to \ 10.20.7.255:111 Mon Mar 23 10:08:06 2010; UDP; eth0; 46 bytes; from 192.168.1.92:27258 to \ 10.20.7.255:8765 Mon Mar 23 10:08:06 2010; UDP; eth0; 124 bytes; from 192.168.1.139:43464 to \ 10.20.7.255:111 Mon Mar 23 10:08:06 2010; VRRP; eth0; 46 bytes; from 192.168.1.252 to \ 224.0.0.18 --More--(7%)
¶
A /proc fájlrendszer egy pszeudo-fájlrendszer, amelyben a kernel tárol fontos információkat virtuális fájlok formájában. A CPU típusa például ezzel a paranccsal jeleníthető meg:
tux@mercury:~> cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 4 model name : Intel(R) Pentium(R) 4 CPU 3.40GHz stepping : 3 cpu MHz : 2800.000 cache size : 2048 KB physical id : 0 [...]
A megszakítások kiosztása és használata a következő paranccsal kérdezhető le:
tux@mercury:~> cat /proc/interrupts
CPU0
0: 3577519 XT-PIC timer
1: 130 XT-PIC i8042
2: 0 XT-PIC cascade
5: 564535 XT-PIC Intel 82801DB-ICH4
7: 1 XT-PIC parport0
8: 2 XT-PIC rtc
9: 1 XT-PIC acpi, uhci_hcd:usb1, ehci_hcd:usb4
10: 0 XT-PIC uhci_hcd:usb3
11: 71772 XT-PIC uhci_hcd:usb2, eth0
12: 101150 XT-PIC i8042
14: 33146 XT-PIC ide0
15: 149202 XT-PIC ide1
NMI: 0
LOC: 0
ERR: 0
MIS: 0Néhány fontos fájl és tartalma:
/proc/devices
a rendelkezésre álló eszközök
/proc/modules
a betöltött kernelmodulok
/proc/cmdline
kernel parancssor
/proc/meminfo
részletes adatok a memóriahasználatról
/proc/config.gz
az aktuálisan futó kernel gzip-pel tömörített konfigurációs fájlja
További információ az/usr/src/linux/Documentation/filesystems/proc.txt szövegfájlban található (ez a fájl a kernel-source csomag telepítése után érhető el). Az aktuálisan futó folyamatok adatai a /proc/NNN könyvtárakban találhatók meg, ahol az NNN a vonatkozó folyamatok folyamatazonosítója (PID-je). A folyamatok saját jellemzőiket a /proc/self/ könyvtárakban találhatják meg:
tux@mercury:~> ls -l /proc/self lrwxrwxrwx 1 root root 64 2007-07-16 13:03 /proc/self -> 5356 tux@mercury:~> ls -l /proc/self/ total 0 dr-xr-xr-x 2 tux users 0 2007-07-16 17:04 attr -r-------- 1 tux users 0 2007-07-16 17:04 auxv -r--r--r-- 1 tux users 0 2007-07-16 17:04 cmdline lrwxrwxrwx 1 tux users 0 2007-07-16 17:04 cwd -> /home/tux -r-------- 1 tux users 0 2007-07-16 17:04 environ lrwxrwxrwx 1 tux users 0 2007-07-16 17:04 exe -> /bin/ls dr-x------ 2 tux users 0 2007-07-16 17:04 fd -rw-r--r-- 1 tux users 0 2007-07-16 17:04 loginuid -r--r--r-- 1 tux users 0 2007-07-16 17:04 maps -rw------- 1 tux users 0 2007-07-16 17:04 mem -r--r--r-- 1 tux users 0 2007-07-16 17:04 mounts -rw-r--r-- 1 tux users 0 2007-07-16 17:04 oom_adj -r--r--r-- 1 tux users 0 2007-07-16 17:04 oom_score lrwxrwxrwx 1 tux users 0 2007-07-16 17:04 root -> / -rw------- 1 tux users 0 2007-07-16 17:04 seccomp -r--r--r-- 1 tux users 0 2007-07-16 17:04 smaps -r--r--r-- 1 tux users 0 2007-07-16 17:04 stat [...] dr-xr-xr-x 3 tux users 0 2007-07-16 17:04 task -r--r--r-- 1 tux users 0 2007-07-16 17:04 wchan
A végrehajtható fájlok és könyvtárak címhozzárendelését a maps fájl tartalmazza:
tux@mercury:~> cat /proc/self/maps 08048000-0804c000 r-xp 00000000 03:03 17753 /bin/cat 0804c000-0804d000 rw-p 00004000 03:03 17753 /bin/cat 0804d000-0806e000 rw-p 0804d000 00:00 0 [heap] b7d27000-b7d5a000 r--p 00000000 03:03 11867 /usr/lib/locale/en_GB.utf8/ b7d5a000-b7e32000 r--p 00000000 03:03 11868 /usr/lib/locale/en_GB.utf8/ b7e32000-b7e33000 rw-p b7e32000 00:00 0 b7e33000-b7f45000 r-xp 00000000 03:03 8837 /lib/libc-2.3.6.so b7f45000-b7f46000 r--p 00112000 03:03 8837 /lib/libc-2.3.6.so b7f46000-b7f48000 rw-p 00113000 03:03 8837 /lib/libc-2.3.6.so b7f48000-b7f4c000 rw-p b7f48000 00:00 0 b7f52000-b7f53000 r--p 00000000 03:03 11842 /usr/lib/locale/en_GB.utf8/ [...] b7f5b000-b7f61000 r--s 00000000 03:03 9109 /usr/lib/gconv/gconv-module b7f61000-b7f62000 r--p 00000000 03:03 9720 /usr/lib/locale/en_GB.utf8/ b7f62000-b7f76000 r-xp 00000000 03:03 8828 /lib/ld-2.3.6.so b7f76000-b7f78000 rw-p 00013000 03:03 8828 /lib/ld-2.3.6.so bfd61000-bfd76000 rw-p bfd61000 00:00 0 [stack] ffffe000-fffff000 ---p 00000000 00:00 0 [vdso]
A /proc fájlrendszer fontos adatainak összefoglalására szolgál a procinfo parancs:
tux@mercury:~> procinfo Linux 2.6.32.7-0.2-default (geeko@buildhost) (gcc 4.3.4) #1 2CPU Memory: Total Used Free Shared Buffers Mem: 2060604 2011264 49340 0 200664 Swap: 2104472 112 2104360 Bootup: Wed Feb 17 03:39:33 2010 Load average: 0.86 1.10 1.11 3/118 21547 user : 2:43:13.78 0.8% page in : 71099181 disk 1: 2827023r 968 nice : 1d 22:21:27.87 14.7% page out: 690734737 system: 13:39:57.57 4.3% page act: 138388345 IOwait: 18:02:18.59 5.7% page dea: 29639529 hw irq: 0:03:39.44 0.0% page flt: 9539791626 sw irq: 1:15:35.25 0.4% swap in : 69 idle : 9d 16:07:56.79 73.8% swap out: 209 uptime: 6d 13:07:11.14 context : 542720687 irq 0: 141399308 timer irq 14: 5074312 ide0 irq 1: 73784 i8042 irq 50: 1938076 uhci_hcd:usb1, ehci_ irq 4: 2 irq 58: 0 uhci_hcd:usb2 irq 6: 5 floppy [2] irq 66: 872711 uhci_hcd:usb3, HDA I irq 7: 2 irq 74: 15 uhci_hcd:usb4 irq 8: 0 rtc irq 82: 178717720 0 PCI-MSI e irq 9: 0 acpi irq169: 44352794 nvidia irq 12: 3 irq233: 8209068 0 PCI-MSI l
Az összes információ megjelenítéséhez használja a -a paramétert. A -nN paraméter minden N másodpercben frissíti az adatokat. Ebben az esetben a program lezárásához nyomja meg a q billentyűt.
Alapértelmezésben az összesített adatok kerülnek megjelenítésre. A -d paraméter különbségi értékeket szolgáltat. A procinfo -dn5 az utolsó öt másodpercben módosult adatokat jeleníti meg:
![]() | Hozzáférés a PCI beállításokhoz. |
|---|---|
A legtöbb operációs rendszernél root felhasználói jogosultságok kellenek a PCI beállítások eléréséhez. | |
Az lspci parancs felsorolja a PCI-erőforrásokat:
mercury:~ # lspci
00:00.0 Host bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE \
DRAM Controller/Host-Hub Interface (rev 01)
00:01.0 PCI bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE \
Host-to-AGP Bridge (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM \
(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM \
(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM \
(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM \
(ICH4/ICH4-M) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 81)
00:1f.0 ISA bridge: Intel Corporation 82801DB/DBL (ICH4/ICH4-L) \
LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE \
Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) \
SMBus Controller (rev 01)
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM \
(ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
01:00.0 VGA compatible controller: Matrox Graphics, Inc. G400/G450 (rev 85)
02:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (LOM) \
Ethernet Controller (rev 81)
A -v paraméter használata részletesebb felsorolást eredményez:
mercury:~ # lspci -v [...] 00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet \ Controller (rev 02) Subsystem: Intel Corporation PRO/1000 MT Desktop Adapter Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 19 Memory at f0000000 (32-bit, non-prefetchable) [size=128K] I/O ports at d010 [size=8] Capabilities: [dc] Power Management version 2 Capabilities: [e4] PCI-X non-bridge device Kernel driver in use: e1000 Kernel modules: e1000
Az eszközök nevének feloldásáról az /usr/share/pci.ids ad információt. Az ebben a fájlban fel nem sorolt PCI-azonosítók „Unknown device” (ismeretlen eszköz) megjelölést kapnak.
A -vv paraméter minden egy program által lekérdezhető információt megad. Tisztán numerikus értékek megadásához a -n paramétert kell használni.
Az lsusb parancs kilistázza az összes USB-eszközt. A -v paraméter hatására részletesebb listát ír ki. A részletes adatokat a /proc/bus/usb/ könyvtárból olvassa a program. A következőkben az lsusb parancs kimenete látható, a következő csatlakoztatott USB-eszközök esetén: USB-elosztó, USB-kulcs, merevlemez és egér.
mercury:/ # lsusb
Bus 004 Device 007: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash \
2.0 / Astone USB Drive
Bus 004 Device 006: ID 04b4:6830 Cypress Semiconductor Corp. USB-2.0 IDE \
Adapter
Bus 004 Device 005: ID 05e3:0605 Genesys Logic, Inc.
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 005: ID 046d:c012 Logitech, Inc. Optical Mouse
Bus 001 Device 001: ID 0000:0000
A file meghatározza egy fájl vagy fájlok listájának típusát az /usr/share/misc/magic fájl alapján.
tux@mercury:~> file /usr/bin/file
/usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), \
for GNU/Linux 2.6.4, dynamically linked (uses shared libs), stripped
A -f paraméter a megvizsgálandó fájlnevek listáját tartalmazó fájlt határoz meg. A lista-z paraméter hatására a file tömörített fájlok belsejébe is belenéz:
tux@mercury:~> file /usr/share/man/man1/file.1.gz
usr/share/man/man1/file.1.gz: gzip compressed data, from Unix, max compression
tux@mercury:~> file -z /usr/share/man/man1/file.1.gz
/usr/share/man/man1/file.1.gz: troff or preprocessor input text \
(gzip compressed data, from Unix, max compression)
Az -i paraméter a mime type-ot jeleníti meg a hagyományos leírás helyett.
tux@mercury:~> file -i /usr/share/misc/magic /usr/share/misc/magic: text/plain charset=utf-8
A mount parancs megmutatja, melyik fájlrendszer (eszköz és típus) van melyik csatolási pontra felcsatolva:
tux@mercury:~> mount /dev/sda3 on / type reiserfs (rw,acl,user_xattr) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) udev on /dev type tmpfs (rw) devpts on /dev/pts type devpts (rw,mode=0620,gid=5) /dev/sda1 on /boot type ext2 (rw,acl,user_xattr) /dev/sda4 on /local type reiserfs (rw,acl,user_xattr) /dev/fd0 on /media/floppy type subfs (rw,nosuid,nodev,noatime,fs=floppyfss,p
A fájlrendszerek teljes kihasználtságáról a df paranccsal kaphat információt. A -h (vagy--human-readable) paraméter az átlagos felhasználó számára érthető formába önti a kimenetet.
tux@mercury:~> df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 11G 3.2G 6.9G 32% / udev 252M 104K 252M 1% /dev /dev/sda1 16M 6.6M 7.8M 46% /boot /dev/sda4 27G 34M 27G 1% /local
Egy adott könyvtárban az alkönyvtárakban található fájlok összméretének megjelenítéséhez adja ki a du parancsot. Az -s paraméter nem jeleníti meg a részletes adatokat, csak azok összegzését. Megint csak, a -h könnyen érthető formába önti a kimenetet:
tux@mercury:~> du -sh /opt 192M /opt
A bináris állományok tartalma a readelf segédprogrammal olvasható. Ez más hardverarchitektúrákhoz készült ELF-fájlokkal is működik.
tux@mercury:~> readelf --file-header /bin/ls ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: Advanced Micro Devices X86-64 Version: 0x1 Entry point address: 0x402540 Start of program headers: 64 (bytes into file) Start of section headers: 95720 (bytes into file) Flags: 0x0 Size of this header: 64 (bytes) Size of program headers: 56 (bytes) Number of program headers: 9 Size of section headers: 64 (bytes) Number of section headers: 32 Section header string table index: 31
A stat parancs megjeleníti a fájltulajdonságokat:
tux@mercury:~> stat /etc/profile File: `/etc/profile' Size: 9662 Blocks: 24 IO Block: 4096 regular file Device: 802h/2050d Inode: 132349 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2009-03-20 07:51:17.000000000 +0100 Modify: 2009-01-08 19:21:14.000000000 +0100 Change: 2009-03-18 12:55:31.000000000 +0100
A --file-system paraméter részletesen megadja annak a fájlrendszernek a tulajdonságait, amelyben a megadott fájl található:
tux@mercury:~> stat /etc/profile --file-system
File: "/etc/profile"
ID: d4fb76e70b4d1746 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 2581445 Free: 1717327 Available: 1586197
Inodes: Total: 655776 Free: 490312
Ez a parancs annak eldöntésére lehet hasznos, hogy jelenleg milyen folyamatok vagy felhasználók használnak bizonyos fájlokat. Tegyük fel például, hogy le szeretné csatolni az /mnt könyvtárhoz csatolt fájlrendszert. Az umount parancs kimenete: „device is busy” (az eszköz foglalt). Ekkor a fuser paranccsal meg lehet állapítani, mely folyamatok is használják pillanatnyilag az eszközt:
tux@mercury:~> fuser -v /mnt/*
USER PID ACCESS COMMAND
/mnt/notes.txt tux 26597 f.... less
A less folyamat lezárását követően (amely egy másik terminálon futott), a fájlrendszer sikeresen lecsatolható. A -k kapcsoló használatával, az fuser leállítja azokat a folyamatokat is, amelyek a fájlt használják.
A w parancs megjeleníti, hogy ki van bejelentkezve a rendszerre és mit csinál éppen. Például:
tux@mercury:~> w 14:58:43 up 1 day, 1:21, 2 users, load average: 0.00, 0.00, 0.00 USER TTY LOGIN@ IDLE JCPU PCPU WHAT tux :0 12:25 ?xdm? 1:23 0.12s /bin/sh /usr/bin/startkde root pts/4 14:13 0.00s 0.06s 0.00s w
Ha a felhasználók bármelyike távolról jelentkezett be, akkor a -f megjeleníti a számítógépeket, amelyekről a kapcsolatot létesítették.
A parancsok által felhasznált idő a time segédprogrammal mérhető. Ez a segédprogram két verzióban létezik: mint egy parancsértelmező beépített része, és mint program (/usr/bin/time).
tux@mercury:~> time find . > /dev/null real 0m4.051s user 0m0.042s sys 0m0.205s
Számos olyan adat létezek, amely egyszerűen mérhető az idő függvényében. Például, a hőmérséklet-változás, vagy a hálózati csatolón keresztül küldött és érkező adatok mennyisége. Az RRDtool segítségével lehet tárolni és megjeleníteni ezeket az adatokat részletes és testreszabható grafikonok használatával.
Az RRDtool elérhető a legtöbb UNIX platformon és a Linux disztribúciókban. Így az openSUSE disztribúciónak is része. Telepíthető a YaST-on keresztül, vagy a , root felhasználóként indított parancs segítségével:
zypper install rrdtool
![]() | |
Perl-, Python-, Ruby- vagy PHP-kötések is elérhetők hozzá, így szabadon és viszonylag egyszerűen lehet fejleszteni hozzá. | |
Az RRDtool a Round Robin Database tool rövidítése. A Round Robin egy módszer, valamely állandó mennyiségű adat kezeléséhez. A cirkuláris buffer elvét használja, amelynél az olvasott adatnak nincsen sem eleje, sem vége. Az RRDtool Round Robin adatbázisokat használ az adatok tárolására és kiolvasására.
Ahogy arról már korábban is szó volt, az RRDtool olyan adatok feldolgozására lett tervezve, amelyek egy bizonyos idősíkon változnak. Az ideális esetben ez egy érzékelő által szolgáltatott, rendszeres időközönként beolvasott adat (mint a hőmérséklet, sebesség stb.), ami egy megadott formában kerül exportálásra. Az ilyen jellegű adatokat az RRDtool könnyedén képes feldolgozni.
Néha nem lehetséges az adatokat automatikusan és meghatározott időközönként kinyerni. Az ilyen jellegű adatok előfeldolgozása szükséges mielőtt az RRDtool-nak átadásra kerülnek és gyakran kézzel kell az adatfájlt módosítani.
Egy egyszerű példa az RRDtool használatára. A következő példában látható az RRDtool használatának három fontos fázisa: adatbázis létrehozása creating, mérési adatok frissítése updating és az adatok megjelenítése viewing.
Tegyük fel, hogy szeretnénk összegyűjteni és megjeleníteni a Linux memóriahasználattal kapcsolatos információit és azok változását az idő elteltével. Ahhoz, hogy a példa érdekesebb legyen, mérjük a jelenleg szabad memória mennyiségét 40 másodpercig, 4 másodperces időközönként. A mérés alatt három memóriaigényes alkalmazást indítunk el, majd zárunk be: egy Firefox webböngészőt, egy Evolution levelezőklienst, és az Eclipse fejlesztői keretrendszert.
Az RRDtool széles körben elterjedt a hálózati adatok mérésére és megjelenítésére. Ehhez az Simple Network Management Protocolt (SNMP) használja. Ez a protokoll képes lekérdezni a hálózati eszközök értékeit. Pontosan ezek az értékek kerülnek eltárolásra az RRDtool segítségével. Az SNMP-vel kapcsolatos további tudnivalók a http://www.net-snmp.org/ weboldalon találhatók.
Jelen eset azonban más – kézzel kell az adatokat begyűjteni. A free_mem.sh parancsfájl folyamatosan kiolvassa a szabad memória aktuális méretét és azt kiírja a szabványos kimenetre.
tux@mercury:~> cat free_mem.sh
INTERVAL=4
for steps in {1..10}
do
DATE=`date +%s`
FREEMEM=`free -b | grep "Mem" | awk '{ print $4 }'`
sleep $INTERVAL
echo "rrdtool update free_mem.rrd $DATE:$FREEMEM"
doneÉrdemes megemlíteni
Az időintervallum 4 másodpercre van beállítva, és a sleep parancsot használja.
Az RRDtool a Unix time elnevezésű speciális formátumban fogadja az időbélyegeket. Ez az 1970. január 1. (UTC) óta eltelt idő másodpercben. Például az 1272907114 érték a 2010-05-03 17:18:34 időpontot jelöli.
A szabad memória információ byte-ban jelenik meg a free-b parancs használatával. Javasolt valamilyen alapegység (byte) használata, mint annak valamelyik többszöröse (mint kilobyte).
A sor az echo ... paranccsal tartalmazza az adatbázis jövőben fájlnevét (free_mem.rrd), és együtt egy parancssort hoznak létre az RRDtool értékek frissítéséhez.
A free_mem.sh futtatását követően, a kimenet valahogy így néz ki:
tux@mercury:~> sh free_mem.sh rrdtool update free_mem.rrd 1272974835:1182994432 rrdtool update free_mem.rrd 1272974839:1162817536 rrdtool update free_mem.rrd 1272974843:1096269824 rrdtool update free_mem.rrd 1272974847:1034219520 rrdtool update free_mem.rrd 1272974851:909438976 rrdtool update free_mem.rrd 1272974855:832454656 rrdtool update free_mem.rrd 1272974859:829120512 rrdtool update free_mem.rrd 1272974863:1180377088 rrdtool update free_mem.rrd 1272974867:1179369472 rrdtool update free_mem.rrd 1272974871:1181806592
Érdemes a parancs kimenetét egy fájlba irányítani:
sh free_mem.sh > free_mem_updates.log
annak érdekében, hogy könnyen feldolgozható legyen a jövőben.
A Round Robin adatbázis a példánk szerint a következő parancs segítségével hozható létre:
rrdtool create free_mem.rrd --start 1272974834 --step=4 \ DS:memory:GAUGE:600:U:U RRA:AVERAGE:0.5:1:24
Érdemes megemlíteni
Ez a parancs létrehoz egy free_mem.rrd nevű fájlt a mért értékek Round Robin típusú adatbázisban való tárolására.
A --start kapcsoló segítségével lehet beállítani azt időpontot (a Unix időt), amelytől kezdődően az első érték bekerül az adatbázisba. Ebben a példában, ez eggyel kevesebb, mint a free_mem.sh korábbi értékének kimenete (1272974835).
A --step kapcsoló határozza meg, hogy a mért értékek milyen időközönként kerüljenek az adatbázisba.
A DS:memory:GAUGE:600:U:U rész egy új adatforrást állít be az adatbázis részére. Ennek neve memory, típusa gauge, a frissítések között eltelt maximális idő 600 másodperc, és a minimális és maximális mérési tartomány ismeretlen (U, mint unknown).
Az RRA:AVERAGE:0.5:1:24 egy Round Robin archívumot (RRA) hoz létre, amelyben a konszolidáció funkciók (CF) által feldolgozott adatok kerülnek tárolásra, amely kiszámolja az átlagos adatokat. A konszolidáció funkció végén található 3 paraméter.
Ha nem jelenik meg hibaüzenet, akkor a free_mem.rrd adatbázis létrejön a jelenlegi könyvtárban:
tux@mercury:~> ls -l free_mem.rrd -rw-r--r-- 1 tux users 776 May 5 12:50 free_mem.rrd
Az adatbázis létrehozását követően fel kell tölteni a mért adatokkal. A korábbi példában (13.11.2.1. - Adatgyűjtés) már létrejött egy free_mem_updates.log fájl, amely rrdtool update parancsokat tartalmaz. Ezek a parancsok végzik el az értékek frissítését az adatbázisban.
tux@mercury:~> sh free_mem_updates.log; ls -l free_mem.rrd -rw-r--r-- 1 tux users 776 May 5 13:29 free_mem.rrd
Ahogy az látható a free_mem.rrd mérete nem változik az adatok frissítését követően.
A mért adatok megvannak, az adatbázis létrehozása megtörtént és az értékek is belekerültek. Most már elkezdődhet a munka az adatbázissal és lekérdezhetjük vagy megjeleníthetjük az értékeket.
Az adatbázisban található összes érték lekérdezéséhez a következő parancs megadása szükséges:
tux@mercury:~> rrdtool fetch free_mem.rrd AVERAGE --start 1272974830 \
--end 1272974871
memory
1272974832: nan
1272974836: 1.1729059840e+09
1272974840: 1.1461806080e+09
1272974844: 1.0807572480e+09
1272974848: 1.0030243840e+09
1272974852: 8.9019289600e+08
1272974856: 8.3162112000e+08
1272974860: 9.1693465600e+08
1272974864: 1.1801251840e+09
1272974868: 1.1799787520e+09
1272974872: nanÉrdemes megemlíteni
Az AVERAGE az átlagértékeket tölti le az adatbázisból, mivel csak egyetlen adatforrás van megadva (13.11.2.2. - Adatbázis létrehozása) az AVERAGE feldolgozásához.
A kimenet első sora a 13.11.2.2. - Adatbázis létrehozása példában megadott módon írja ki az adatforrás nevét.
A bal oldali oszlopban szereplő eredmények független pontokat jelölnek az időben, míg a jobb oldaliban látható a megfelelő mért átlagos értékek tudományos formátumban.
A nan az utolsó sorban azt jelöli, hogy „nem szám”.
Grafikon készítése az adatbázisban található adatok alapján.
tux@mercury:~> rrdtool graph free_mem.png \ --start 1272974830 \ --end 1272974871 \ --step=4 \ DEF:free_memory=free_mem.rrd:memory:AVERAGE \ LINE2:free_memory#FF0000 \ --vertical-label "GB" \ --title "Free System Memory in Time" \ --zoom 1.5 \ --x-grid SECOND:1:SECOND:4:SECOND:10:0:%X
Érdemes megemlíteni
A free_mem.png az elkészült grafikon fájlneve.
A --start és --end értékei határozzák meg a grafikon által megjelenített időtartományt.
A --step határozza meg a grafikon időléptékét (másodpercben).
A DEF:... rész a free_memory elnevezésű adatdefiníció. Az adatok a free_mem.rrd adatbázisból és a memory elnevezésű adatforrásból kerülnek kiolvasásra. Az average (átlag) értékek számításra kerülnek, mivel nincs más meghatározva a 13.11.2.2. - Adatbázis létrehozása példában.
A LINE... rész határozza meg a grafikon vonalának tulajdonságait. Ez 2 pixel széles, az adatok a free_memory adatbázisból jönnek és a színe pedig piros.
--vertical-label határozza meg az y tengely feliratát, a --title a grafikon főcímét határozza meg.
A --zoom állítja be a nagyítás mértékét. Ennek az értéknek nagyobbnak kell lennie, mint nulla.
Az --x-grid a háló megrajzolását és azok feliratát határozza meg. A példában minden másodperces felbontású, míg a rácsvonal 4 másodpercenként kerül megrajzolásra. A feliratok 10 másodpercenként jelennek meg a rácsvonalak alatt.
Az RRDtool egy rendkívül összetett segédeszköz, amely számtalan paranccsal és alparanccsal rendelkezik. Némelyik könnyen érthető, de a kívánt eredmény eléréséhez és a megjelenés finomhangolásához jobban meg kell ismerni az eszközt.
Az RRDtool man oldala (man 1 rrdtool) csupán alapvető információkat tartalmaz a programról, ezért érdemes megtekinteni az RRDtool weboldalát. Itt részletes dokumentáció található az rrdtool parancsról és annak alparancsairól. Néhány oktatóanyag is található az RRDtool folyamatainak megértéséhez.
A hálózati forgalom monitorozásához érdemes megnézni az MRTG (Multi Router Traffic Grapher) programot. A MRTGrapher bármilyen hálózati eszköz forgalmáról képes grafikont rajzolni és egyszerűen használható az RRDtool programmal.