Zkompiloval jsem 25 nástrojů pro monitorování výkonu a ladění, které budou užitečné při práci v prostředí Linuxu. Tento seznam není v žádném případě úplný ani směrodatný.
Tento seznam však obsahuje dostatek nástrojů, abyste si mohli pohrát a vybrat ten, který je vhodný pro váš konkrétní scénář ladění a monitorování.
1. SAR
Pomocí nástroje sar můžete dělat dvě věci:1) Monitorovat výkon systému v reálném čase (CPU, paměť, I/O atd.) 2) Průběžně shromažďovat data o výkonu na pozadí a provádět analýzu historických dat pro identifikaci úzká hrdla.
Sar je součástí balíčku sysstat. Níže jsou uvedeny některé z věcí, které můžete dělat pomocí nástroje sar.
- Kolektivní využití procesoru
- Statistiky jednotlivých CPU
- Použitá a dostupná paměť
- Vyměňte použitý a dostupný prostor
- Celkové I/O aktivity systému
- Jednotlivé I/O aktivity zařízení
- Statistiky přepínání kontextu
- Spustit frontu a načíst průměrná data
- Síťové statistiky
- Hlášení dat sar z konkrétního času
- a mnoho dalšího..
Následující příkaz sar zobrazí statistiku CPU systému třikrát (s intervalem 1 sekundy).
Následující příkaz „sar -b“ hlásí I/O statistiku. „1 3“ znamená, že sar -b se provede každou 1 sekundu, celkem tedy třikrát.
$ sar -b 1 3 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:56:28 PM tps rtps wtps bread/s bwrtn/s 01:56:29 PM 346.00 264.00 82.00 2208.00 768.00 01:56:30 PM 100.00 36.00 64.00 304.00 816.00 01:56:31 PM 282.83 32.32 250.51 258.59 2537.37 Average: 242.81 111.04 131.77 925.75 1369.90
Další příklady SAR:Jak nainstalovat/konfigurovat Sar (sysstat) a 10 užitečných příkladů příkazů Sar
2. Tcpdump
tcpdump je síťový analyzátor paketů. Pomocí tcpdump můžete zachycovat pakety a analyzovat je na případná úzká hrdla výkonu.
Následující příklad příkazu tcpdump zobrazuje zachycené pakety v ASCII.
$ tcpdump -A -i eth0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652 E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g. ......G..7\+KA....A...L. 14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652 E.....@.@..\..i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba... E..(R.@.|.....9...i.*...]...V..*P..OWp........
Pomocí tcpdump můžete zachytit pakety na základě několika vlastních podmínek. Například zachycení paketů, které procházejí konkrétním portem, zachycení tcp komunikace mezi dvěma konkrétními hostiteli, zachycení paketů, které patří ke konkrétnímu typu protokolu atd.
Další příklady tcpdump:15 Příklady příkazů TCPDUMP
3. Nagios
Nagios je open source monitorovací řešení, které dokáže monitorovat prakticky cokoliv ve vaší IT infrastruktuře. Například, když selže server, může poslat upozornění vašemu systémovému administrátorskému týmu, když selže databáze, může zavolat vašemu DBA týmu, když selže webový server, může upozornit příslušný tým.
Můžete také nastavit úroveň varování a kritické prahové hodnoty pro různé služby, které vám pomohou problém aktivně řešit. Může například upozornit tým správce systému, když se diskový oddíl zaplní z 80 %, což týmu správce systému poskytne dostatek času na práci na přidání dalšího místa, než se problém stane kritickým.
Nagios má také velmi dobré uživatelské rozhraní, odkud můžete sledovat stav vaší celkové IT infrastruktury.
Níže jsou uvedeny některé z věcí, které můžete sledovat pomocí Nagios:
- Veškerý hardware (servery, přepínače, směrovače atd.)
- Servery Linux a servery Windows
- Databáze (Oracle, MySQL, PostgreSQL atd.)
- Ve vašem operačním systému běží různé služby (sendmail, nis, nfs, ldap atd.)
- Webové servery
- Vaše vlastní aplikace
- atd.
Další příklady Nagios:Jak nainstalovat a nakonfigurovat Nagios, monitorovat vzdálený počítač se systémem Windows a monitorovat vzdálený server Linux.
4. Iostat
iostat hlásí statistiky CPU, diskových I/O a NFS. Níže jsou uvedeny některé příklady příkazů iostat.
Iostat bez jakéhokoli argumentu zobrazuje informace o využití CPU a I/O statistiky o všech oddílech v systému, jak je uvedeno níže.
$ iostat Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 194.72 1096.66 1598.70 2719068704 3963827344 sda1 178.20 773.45 1329.09 1917686794 3295354888 sda2 16.51 323.19 269.61 801326686 668472456 sdb 371.31 945.97 1073.33 2345452365 2661206408 sdb1 371.31 945.95 1073.33 2345396901 2661206408 sdc 408.03 207.05 972.42 513364213 2411023092 sdc1 408.03 207.03 972.42 513308749 2411023092
Ve výchozím nastavení iostat zobrazuje I/O data pro všechny disky dostupné v systému. Chcete-li zobrazit statistiky pro konkrétní zařízení (například /dev/sda), použijte volbu -p, jak je uvedeno níže.
$ iostat -p sda Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 194.69 1096.51 1598.48 2719069928 3963829584 sda2 336.38 27.17 54.00 67365064 133905080 sda1 821.89 0.69 243.53 1720833 603892838
5. Mpstat
mpstat hlásí statistiky procesorů. Níže jsou uvedeny některé příklady příkazů mpstat.
Možnost -A zobrazí všechny informace, které lze zobrazit příkazem mpstat, jak je uvedeno níže. Toto je skutečně ekvivalentní příkazu „mpstat -I ALL -u -P ALL“.
$ mpstat -A Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU) 10:26:34 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 10:26:34 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99 10:26:34 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98 10:26:34 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:26:34 PM CPU intr/s 10:26:34 PM all 36.51 10:26:34 PM 0 0.00 10:26:34 PM 1 0.00 10:26:34 PM 2 0.04 10:26:34 PM 3 0.00 10:26:34 PM CPU 0/s 1/s 8/s 9/s 12/s 14/s 15/s 16/s 19/s 20/s 21/s 33/s NMI/s LOC/s SPU/s PMI/s PND/s RES/s CAL/s TLB/s TRM/s THR/s MCE/s MCP/s ERR/s MIS/s 10:26:34 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.47 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 4.90 0.00 0.00 0.00 0.00 0.03 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.04 0.00 0.00 0.00 0.00 0.00 3.32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.
Možnost mpstat -P ALL, zobrazí všechny jednotlivé CPU (nebo jádra) spolu s jejich statistikami, jak je uvedeno níže.
$ mpstat -P ALL Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU) 10:28:04 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 10:28:04 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99 10:28:04 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98 10:28:04 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 10:28:04 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:28:04 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
6. Vmstat
vmstat hlásí statistiky virtuální paměti. Níže jsou uvedeny některé příklady příkazů vmstat.
vmstat ve výchozím nastavení zobrazí využití paměti (včetně swapu), jak je uvedeno níže.
$ vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 305416 260688 29160 2356920 2 2 4 1 0 0 6 1 92 2 0 To execute vmstat every 2 seconds for 10 times, do the following. After executing 10 times, it will stop automatically. $ vmstat 2 10 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 537144 182736 6789320 0 0 0 0 1 1 0 0 100 0 0 0 0 0 537004 182736 6789320 0 0 0 0 50 32 0 0 100 0 0 ..
iostat a vmstat jsou součástí obslužného programu sar. Měli byste nainstalovat balíček sysstat, aby iostat a vmstat fungovaly.
Další příklady:24 Příklady příkazů iostat, vmstat a mpstat
7. Příkaz PS
Proces je spuštěná instance programu. Linux je multitaskingový operační systém, což znamená, že může být aktivních více než jeden proces najednou. Pomocí příkazu ps zjistěte, jaké procesy běží ve vašem systému.
Příkaz ps vám také poskytne mnoho dalších informací o běžícím procesu, které vám pomohou identifikovat případná úzká místa výkonu ve vašem systému.
Následuje několik příkladů příkazů ps.
Použijte volbu -u k zobrazení procesu, který patří ke konkrétnímu uživatelskému jménu. Pokud máte více uživatelských jmen, oddělte je čárkou. Níže uvedený příklad zobrazuje všechny procesy, které vlastní uživatel wwwrun nebo postfix.
$ ps -f -u wwwrun,postfix UID PID PPID C STIME TTY TIME CMD postfix 7457 7435 0 Mar09 ? 00:00:00 qmgr -l -t fifo -u wwwrun 7495 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 7496 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 7497 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 7498 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 7499 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 10078 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf wwwrun 10082 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf postfix 15677 7435 0 22:23 ? 00:00:00 pickup -l -t fifo -u
Níže uvedený příklad zobrazuje ID procesu a příkazy v hierarchii. –forest je argument příkazu ps, který zobrazuje ASCII umění stromu procesů. Z tohoto stromu můžeme identifikovat, který je nadřazený proces, a podřízený proces jej rozvětvený zpracovává rekurzivním způsobem.
$ ps -e -o pid,args --forest 468 \_ sshd: root@pts/7 514 | \_ -bash 17484 \_ sshd: root@pts/11 17513 | \_ -bash 24004 | \_ vi ./790310__11117/journal 15513 \_ sshd: root@pts/1 15522 | \_ -bash 4280 \_ sshd: root@pts/5 4302 | \_ -bash
Další příklady PS:7 praktických příkladů PS příkazů pro monitorování procesu
8. Zdarma
Příkaz Free zobrazuje informace o fyzické (RAM) a odkládací paměti vašeho systému.
V níže uvedeném příkladu je celková fyzická paměť v tomto systému 1 GB. Níže zobrazené hodnoty jsou v kB.
# free total used free shared buffers cached Mem: 1034624 1006696 27928 0 174136 615892 -/+ buffers/cache: 216668 817956 Swap: 2031608 0 2031608
Následující příklad zobrazí celkovou paměť ve vašem systému včetně RAM a Swap.
V následujícím příkazu:
- volba m zobrazí hodnoty v MB
- možnost t zobrazí řádek „Celkem“, což je součet hodnot fyzické a odkládací paměti
- Možností o je skrýt řádek mezipaměti/mezipaměti z výše uvedeného příkladu.
# free -mto total used free shared buffers cached Mem: 1010 983 27 0 170 601 Swap: 1983 0 1983 Total: 2994 983 2011
9. TOP
Příkaz Top zobrazí všechny běžící procesy v systému seřazené podle určitých sloupců. Toto zobrazí informace v reálném čase.
Můžete zabít proces, aniž byste opustili vrchol. Jakmile najdete proces, který je třeba zabít, stiskněte „k“, čímž budete požádáni o ID procesu a signál k odeslání. Pokud máte oprávnění zabít konkrétní PID, bude úspěšně zabit.
PID to kill: 1309 Kill PID 1309 with signal [15]: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent 5136 root 16 0 38040 14m 9836 S 0 0.2 0:00.39 nautilus
Pomocí top -u zobrazíte konkrétní uživatelské procesy pouze ve výstupu příkazu top.
$ top -u geek
Zatímco je spuštěn unixový top příkaz, stiskněte u, čímž budete požádáni o uživatelské jméno, jak je uvedeno níže.
Which user (blank for all): geek PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
Další nejlepší příklady:15 praktických příkladů hlavních příkazů Linuxu
10. Pmap
příkaz pmap zobrazí mapu paměti daného procesu. Musíte předat pid jako argument příkazu pmap.
Následující příklad zobrazuje mapu paměti aktuálního bash shellu. V tomto příkladu je 5732 PID shellu bash.
$ pmap 5732 5732: -bash 00393000 104K r-x-- /lib/ld-2.5.so 003b1000 1272K r-x-- /lib/libc-2.5.so 00520000 8K r-x-- /lib/libdl-2.5.so 0053f000 12K r-x-- /lib/libtermcap.so.2.0.8 0084d000 76K r-x-- /lib/libnsl-2.5.so 00c57000 32K r-x-- /lib/libnss_nis-2.5.so 00c8d000 36K r-x-- /lib/libnss_files-2.5.so b7d6c000 2048K r---- /usr/lib/locale/locale-archive bfd10000 84K rw--- [ stack ] total 4796K
pmap -x poskytuje některé další informace o paměťových mapách.
$ pmap -x 5732 5732: -bash Address Kbytes RSS Anon Locked Mode Mapping 00393000 104 - - - r-x-- ld-2.5.so 003b1000 1272 - - - r-x-- libc-2.5.so 00520000 8 - - - r-x-- libdl-2.5.so 0053f000 12 - - - r-x-- libtermcap.so.2.0.8 0084d000 76 - - - r-x-- libnsl-2.5.so 00c57000 32 - - - r-x-- libnss_nis-2.5.so 00c8d000 36 - - - r-x-- libnss_files-2.5.so b7d6c000 2048 - - - r---- locale-archive bfd10000 84 - - - rw--- [ stack ] -------- ------- ------- ------- ------- total kB 4796 - - -
Chcete-li zobrazit informace o zařízení v procesních mapách, použijte ‚pamp -d pid‘.
11. Netstat
Příkaz Netstat zobrazuje různé informace související se sítí, jako jsou síťová připojení, směrovací tabulky, statistiky rozhraní, maskovaná připojení, členství v multicast atd.,
Níže jsou uvedeny příklady příkazů netstat.
Vypište všechny porty (naslouchající i nenaslouchající) pomocí netstat -a, jak je uvedeno níže.
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:30037 *:* LISTEN udp 0 0 *:bootpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6135 /tmp/.X11-unix/X0 unix 2 [ ACC ] STREAM LISTENING 5140 /var/run/acpid.socket
Pomocí následujícího příkazu netstat zjistíte, na kterém portu běží program.
# netstat -ap | grep ssh (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 1 0 dev-db:ssh 101.174.100.22:39213 CLOSE_WAIT - tcp 1 0 dev-db:ssh 101.174.100.22:57643 CLOSE_WAIT -
Pomocí následujícího příkazu netstat zjistíte, který proces používá konkrétní port.
# netstat -an | grep ':80'
Další příklady netstat:10 příkladů příkazů Netstat
12. IPTraf
IPTraf je software pro monitorování sítě IP. Níže jsou uvedeny některé z hlavních funkcí IPTraf:
- Je to konzolový (textový) nástroj.
- Zobrazí se provoz IP procházející přes vaši síť. Zobrazuje příznak TCP, počty paketů a bajtů, ICMP, typy paketů OSPF atd.
- Zobrazuje rozšířené statistiky rozhraní (včetně IP, TCP, UDP, ICMP, velikosti a počtu paketů, chyb kontrolního součtu atd.)
- LAN modul automaticky zjišťuje hostitele a zobrazuje jejich aktivity
- Filtry zobrazení protokolu pro zobrazení provozu selektivního protokolu
- Pokročilé funkce protokolování
- Kromě ethernetového rozhraní podporuje také FDDI, ISDN, SLIP, PPP a zpětnou smyčku
- Nástroj můžete také spustit v režimu celé obrazovky. Má také textovou nabídku.
Další informace: Domovská stránka IPTraf. Snímek obrazovky IPTraf.
13. Strace
Strace se používá pro ladění a odstraňování problémů se spuštěním spustitelného souboru v prostředí Linuxu. Zobrazuje systémová volání používaná procesem a signály přijaté procesem.
Strace monitoruje systémová volání a signály konkrétního programu. Je to užitečné, když nemáte zdrojový kód a chtěli byste odladit provádění programu. strace vám poskytuje sekvenci provádění binárního souboru od začátku do konce.
Sledujte konkrétní systémová volání ve spustitelném souboru pomocí volby -e
Ve výchozím nastavení strace zobrazuje všechna systémová volání pro daný spustitelný soubor. Následující příklad ukazuje výstup strace pro příkaz Linux ls.
$ strace ls execve("/bin/ls", ["ls"], [/* 21 vars */]) = 0 brk(0) = 0x8c31000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78c7000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=65354, ...}) = 0
Chcete-li zobrazit pouze určité systémové volání, použijte volbu strace -e, jak je uvedeno níže.
$ strace -e open ls open("/etc/ld.so.cache", O_RDONLY) = 3 open("/lib/libselinux.so.1", O_RDONLY) = 3 open("/lib/librt.so.1", O_RDONLY) = 3 open("/lib/libacl.so.1", O_RDONLY) = 3 open("/lib/libc.so.6", O_RDONLY) = 3 open("/lib/libdl.so.2", O_RDONLY) = 3 open("/lib/libpthread.so.0", O_RDONLY) = 3 open("/lib/libattr.so.1", O_RDONLY) = 3 open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3 open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
Další příklady strace:7 příkladů strace pro ladění provádění programu v Linuxu
14. Lsof
Lsof je zkratka pro ls open files, která zobrazí seznam všech otevřených souborů v systému. Mezi otevřené soubory patří síťové připojení, zařízení a adresáře. Výstup příkazu lsof bude mít následující sloupce:
- Název procesu COMMAND.
- ID procesu PID
- Uživatelské jméno
- Deskriptor souboru FD
- TYPE typ uzlu souboru
- Číslo zařízení DEVICE
- Velikost souboru SIZE
- Číslo uzlu NODE
- NAME úplná cesta názvu souboru.
Chcete-li zobrazit všechny otevřené soubory systému, spusťte příkaz lsof bez jakéhokoli parametru, jak je uvedeno níže.
# lsof | more COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME init 1 root cwd DIR 8,1 4096 2 / init 1 root rtd DIR 8,1 4096 2 / init 1 root txt REG 8,1 32684 983101 /sbin/init init 1 root mem REG 8,1 106397 166798 /lib/ld-2.3.4.so init 1 root mem REG 8,1 1454802 166799 /lib/tls/libc-2.3.4.so init 1 root mem REG 8,1 53736 163964 /lib/libsepol.so.1 init 1 root mem REG 8,1 56328 166811 /lib/libselinux.so.1 init 1 root 10u FIFO 0,13 972 /dev/initctl migration 2 root cwd DIR 8,1 4096 2 / skipped..
Chcete-li zobrazit otevřené soubory konkrétního uživatele, použijte volbu lsof -u k zobrazení všech souborů otevřených konkrétním uživatelem.
# lsof -u ramesh vi 7190 ramesh txt REG 8,1 474608 475196 /bin/vi sshd 7163 ramesh 3u IPv6 15088263 TCP dev-db:ssh->abc-12-12-12-12.
Chcete-li zobrazit seznam uživatelů konkrétního souboru, použijte lsof, jak je uvedeno níže. V tomto příkladu zobrazuje všechny uživatele, kteří aktuálně používají vi.
# lsof /bin/vi COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME vi 7258 root txt REG 8,1 474608 475196 /bin/vi vi 7300 ramesh txt REG 8,1 474608 475196 /bin/vi
15. Ntop
Ntop je jako top, ale pro síťový provoz. ntop je monitor síťového provozu, který zobrazuje využití sítě.
Můžete také přistupovat k ntop z prohlížeče a získat informace o provozu a stavu sítě.
Níže jsou uvedeny některé klíčové vlastnosti ntop:
- Zobrazení síťového provozu rozděleného podle protokolů
- Seřaďte výstup síťového provozu na základě několika kritérií
- Zobrazit statistiky síťového provozu
- Možnost ukládat statistiky síťového provozu pomocí RRD
- Uveďte identifikaci uživatelů a hostitelského operačního systému
- Schopnost analyzovat a zobrazovat provoz IT
- Schopnost pracovat jako kolektor NetFlow/sFlow pro směrovače a přepínače
- Zobrazuje statistiky síťového provozu podobné RMON
- Funguje v systémech Linux, MacOS a Windows
Více informací:Ntop domovská stránka
16. GkrellM
GKrellM je zkratka pro GNU Krell Monitors nebo GTK Krell Meters. Jedná se o monitorovací program založený na sadě nástrojů GTK+, který monitoruje různé systémové zdroje. UI je stabilní. tj. můžete přidat tolik monitorovacích objektů, kolik chcete, jeden na druhém. Stejně jako jakýkoli jiný monitorovací nástroj založený na uživatelském rozhraní pro stolní počítače může monitorovat CPU, paměť, souborový systém, využití sítě atd. Ale pomocí pluginů můžete sledovat externí aplikace.
Více informací:domovská stránka GkrellM
17. w a provozuschopnost
Při sledování výkonu systému bude příkaz w hledět na to, kdo je přihlášen do systému.
$ w 09:35:06 up 21 days, 23:28, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 24Oct11 21days 1:05 1:05 /usr/bin/Xorg :0 -nr -verbose ramesh pts/0 192.168.1.10 Mon14 0.00s 15.55s 0.26s sshd: localuser [priv] john pts/0 192.168.1.11 Mon07 0.00s 19.05s 0.20s sshd: localuser [priv] jason pts/0 192.168.1.12 Mon07 0.00s 21.15s 0.16s sshd: localuser [priv]
Pro každého přihlášeného uživatele zobrazí následující informace:
- Uživatelské jméno
- informace tty
- IP adresa vzdáleného hostitele
- Čas přihlášení uživatele
- Jak dlouho byl uživatel nečinný
- JCPU a PCUP
- Příkaz aktuálního procesu, který uživatel provádí
Řádek 1 výstupu příkazu w je podobný výstupu příkazu uptime. Zobrazí se následující:
- Aktuální čas
- Jak dlouho je systém v provozu
- Celkový počet uživatelů, kteří jsou aktuálně přihlášeni do systému
- Průměrné zatížení za posledních 1, 5 a 15 minut
Pokud chcete pouze informace o dostupnosti, použijte příkaz uptime.
$ uptime 09:35:02 up 106 days, 28 min, 2 users, load average: 0.08, 0.11, 0.05
Upozorňujeme, že příkaz w i uptime získává informace z datového souboru /var/run/utmp.
18. /proc
/proc je virtuální souborový systém. Například, pokud uděláte ls -l /proc/stat, všimnete si, že má velikost 0 bajtů, ale pokud uděláte „cat /proc/stat“, uvidíte uvnitř souboru nějaký obsah.
Proveďte ls -l /proc a uvidíte spoustu adresářů pouze s čísly. Tato čísla představují ID procesu, soubory v tomto očíslovaném adresáři odpovídají procesu s daným PID.
Níže jsou uvedeny důležité soubory umístěné pod každým očíslovaným adresářem (pro každý proces):
- cmdline – příkazový řádek příkazu.
- prostředí – proměnné prostředí.
- fd – Obsahuje deskriptory souborů, které jsou propojeny s příslušnými soubory.
- limity – obsahuje informace o konkrétních omezeních procesu.
- připojení – informace související s připojením
Níže jsou uvedeny důležité odkazy pod každým očíslovaným adresářem (pro každý proces):
- cwd – odkaz na aktuální pracovní adresář procesu.
- exe – odkaz na spustitelný soubor procesu.
- root – odkaz na kořenový adresář procesu.
Další příklady /proc:Prozkoumejte Linux /proc File System
19. KDE System Guard
To se také nazývá KSysGuard. Na linuxových desktopech, na kterých běží KDE, můžete tento nástroj použít ke sledování systémových prostředků. Kromě monitorování místního systému to může také monitorovat vzdálené systémy.
Pokud používáte prostředí KDE, přejděte do části Aplikace -> Systém -> Monitor systému, čímž se spustí KSysGuard. Můžete jej také spustit zadáním ksysguard z příkazového řádku.
Tento nástroj zobrazí následující dvě karty:
- Tabulka procesů – Zobrazuje všechny aktivní procesy. Zde můžete seřadit, zabít nebo změnit prioritu procesů
- Zatížení systému – Zobrazuje grafy využití procesoru, paměti a sítě. Tyto grafy lze upravit kliknutím pravým tlačítkem na kterýkoli z těchto grafů.
Chcete-li se připojit ke vzdálenému hostiteli a monitorovat jej, klikněte na nabídku Soubor -> Monitorovat vzdálený počítač -> zadejte IP adresu hostitele, způsob připojení (například ssh). Tím budete požádáni o uživatelské jméno/heslo na vzdáleném počítači. Po připojení se na kartách Tabulka procesů a Zatížení systému zobrazí využití systému vzdáleného stroje.
20. Monitor systému GNOME
Na linuxových desktopech s GNOME můžete tento nástroj použít k monitorování procesů, systémových prostředků a souborových systémů z grafického rozhraní. Kromě monitorování můžete tento nástroj uživatelského rozhraní použít také k ukončení procesu a změně priority procesu.
Pokud používáte plochu GNOME, přejděte do části Systém -> Správa -> Sledování systému, čímž se spustí Monitor systému GNOME. Můžete jej také spustit zadáním gnome-system-monitor z příkazového řádku.
Tento nástroj má následující čtyři karty:
- Systém – Zobrazuje systémové informace včetně verze distribuce Linuxu, systémových prostředků a informací o hardwaru.
- Procesy – Zobrazuje všechny aktivní procesy, které lze třídit podle různých polí
- Zdroje – Zobrazuje využití procesoru, paměti a sítě
- Systémy souborů – Zobrazuje informace o aktuálně připojených systémech souborů
Další informace:Domovská stránka GNOME System Monitor
21. Conky
Conky je systémový monitor nebo X. Conky zobrazuje informace v uživatelském rozhraní pomocí toho, co nazývá objekty. Ve výchozím nastavení existuje více než 250 objektů, které jsou spojeny s conky, která zobrazuje různé monitorovací informace (CPU, paměť, síť, disk atd.). Podporuje IMAP, POP3, několik audio přehrávačů.
Můžete monitorovat a zobrazovat jakoukoli externí aplikaci vytvořením vlastních objektů pomocí skriptování. Monitorovací informace mohou být zobrazeny v různých formátech:text, grafy, ukazatele průběhu atd. Tento nástroj je extrémně konfigurovatelný.
Další informace:Conky screenshoty
22. Kaktus
Cacti je uživatelské rozhraní založené na PHP pro RRDTool. Cacti ukládá data potřebná k vytvoření grafu v databázi MySQL.
Následují některé funkce Cacti na vysoké úrovni:
- Možnost shromažďovat data a ukládat je do databáze MySQL (nebo do kruhových archivů)
- K dispozici je několik pokročilých grafických funkcí (seskupování položek grafu GPRINT, automatické vyplnění grafů, manipulace s daty grafu pomocí matematické funkce CDEF, jsou podporovány všechny položky grafu RRDTool)
- Zdroj dat může shromažďovat místní nebo vzdálená data pro graf
- Možnost plně přizpůsobit nastavení RRA (Round Robin Archive)
- Uživatel může definovat vlastní skripty pro shromažďování dat
- Podpora SNMP (php-snmp, ucd-snmp nebo net-snmp) pro shromažďování dat
- Vestavěný poler pomáhá spouštět vlastní skripty, získávat data SNMP, aktualizovat soubory RRD atd.
- Vysoce flexibilní funkce šablon grafů
- Uživatelsky přívětivé a přizpůsobitelné možnosti zobrazení grafu
- Vytvořte různé uživatele s různými sadami oprávnění pro přístup k rozhraní kaktusů
- Pro jednotlivého uživatele lze nastavit podrobné úrovně oprávnění
- a mnoho dalšího..
Více informací:Domovská stránka kaktusů
23. Vnstat
vnstat je nástroj příkazového řádku, který zobrazuje a zaznamenává síťový provoz rozhraní ve vašich systémech. To závisí na statistikách sítě poskytovaných jádrem. Vnstat tedy nepřidává žádné další zatížení vašeho systému pro monitorování a protokolování síťového provozu.
vnstat bez jakéhokoli argumentu vám poskytne rychlé shrnutí s následujícími informacemi:
- Naposledy, kdy byla aktualizována databáze vnStat umístěná pod /var/lib/vnstat/
- Od chvíle, kdy začal shromažďovat statistiky pro konkrétní rozhraní
- Statistická data sítě (vyslané bajty, přijaté bajty) za poslední dva měsíce a poslední dva dny.
# vnstat Database updated: Sat Oct 15 11:54:00 2011 eth0 since 10/01/11 rx: 12.89 MiB tx: 6.94 MiB total: 19.82 MiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Sep '11 12.90 MiB | 6.90 MiB | 19.81 MiB | 0.14 kbit/s Oct '11 12.89 MiB | 6.94 MiB | 19.82 MiB | 0.15 kbit/s ------------------------+-------------+-------------+--------------- estimated 29 MiB | 14 MiB | 43 MiB | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- yesterday 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s today 2.03 MiB | 1.07 MiB | 3.10 MiB | 0.59 kbit/s ------------------------+-------------+-------------+--------------- estimated 4 MiB | 2 MiB | 6 MiB |
Pomocí „vnstat -t“ nebo „vnstat –top10“ zobrazíte všech 10 dní s nejvyšší návštěvností.
$ vnstat --top10 eth0 / top 10 # day rx | tx | total | avg. rate -----------------------------+-------------+-------------+--------------- 1 10/12/11 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s 2 10/11/11 4.07 MiB | 2.17 MiB | 6.24 MiB | 0.59 kbit/s 3 10/10/11 2.48 MiB | 1.28 MiB | 3.76 MiB | 0.36 kbit/s .... -----------------------------+-------------+-------------+---------------
Další příklady vnstat:Jak monitorovat a protokolovat síťový provoz pomocí VNStat
24. Htop
htop je prohlížeč procesů založený na ncurses. To je podobné top, ale je flexibilnější a uživatelsky přívětivější. S htopem můžete komunikovat pomocí myši. Můžete posouvat svisle, abyste zobrazili úplný seznam procesů, a posouvat vodorovně, abyste viděli celý příkazový řádek procesu.
htop výstup se skládá ze tří částí 1) záhlaví 2) tělo a 3) zápatí.
Záhlaví zobrazí následující tři pruhy a několik důležitých systémových informací. Kterékoli z nich můžete změnit v nabídce nastavení htop.
- Využití CPU:Zobrazuje % použité v textu na konci pruhu. Samotný pruh bude zobrazovat různé barvy. Nízká priorita v modré, normální v zelené, jádro v červené.
- Využití paměti
- Využití výměny
Tělo zobrazí seznam procesů seřazených podle % využití CPU. Pomocí kláves se šipkami, klávesy page up, page down můžete procházet procesy.
Zápatí zobrazí příkazy nabídky htop.
Další informace:Snímek obrazovky HTOP a příklady
25. Statistika zásuvky – SS
ss znamená statistiku zásuvky. Zobrazí informace, které jsou podobné příkazu netstat.
Chcete-li zobrazit všechny naslouchající zásuvky, proveďte ss -l, jak je uvedeno níže.
$ ss -l Recv-Q Send-Q Local Address:Port Peer Address:Port 0 100 :::8009 :::* 0 128 :::sunrpc :::* 0 100 :::webcache :::* 0 128 :::ssh :::* 0 64 :::nrpe :::*
Následující zobrazuje pouze navázané připojení.
$ ss -o state established Recv-Q Send-Q Local Address:Port Peer Address:Port 0 52 192.168.1.10:ssh 192.168.2.11:55969 timer:(on,414ms,0)
Následující zobrazuje souhrnnou statistiku soketu. Zobrazí se celkový počet soketů rozdělených podle typu.
$ ss -s Total: 688 (kernel 721) TCP: 16 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 11 Transport Total IP IPv6 * 721 - - RAW 0 0 0 UDP 13 10 3 TCP 16 7 9 INET 29 17 12 FRAG 0 0 0
Jaký nástroj používáte ke sledování výkonu v prostředí Linuxu? Přehlédl jsem některý z vašich oblíbených nástrojů pro sledování výkonu? Zanechte komentář.