1. top - 進程活動監(jiān)視命令
top命令顯示Linux進程。它提供了一個運行系統(tǒng)的動態(tài)實時視圖,即實際的過程活動。默認情況下,它顯示服務器上運行的CPU占用率最高的任務,并且每五秒更新一次列表。
圖01:Linux top命令
常用的熱鍵使用頂級Linux監(jiān)控工具
以下是有用的熱鍵列表:
熱鍵 | 用法 |
---|---|
Ť | 顯示摘要信息。 |
米 | 顯示和關閉內(nèi)存信息。 |
一個 | 由各種系統(tǒng)資源的頂級用戶對顯示進行排序。用于快速識別系統(tǒng)中性能不佳的任務。 |
F | 進入頂部的交互式配置屏幕。有助于為特定任務設置頂部。 |
Ø | 使您能夠交互式地選擇頂部的排序。 |
[R | 發(fā)出renice命令。 |
ķ | 問題kill命令。 |
ž | 打開或關閉彩色/單色 |
如何找出Linux CPU利用率?
2. vmstat - 虛擬內(nèi)存統(tǒng)計信息
vmstat命令報告有關進程,內(nèi)存,分頁,塊IO,陷阱和cpu活動的信息。
# vmstat 3
樣本輸出:
procs -----------內(nèi)存---------- --- swap-- ----- io -----system-- ----- cpu ------
rb swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 2540988 522188 5130400 0 0 2 32 4 2 4 1 96 0 0
1 0 0 2540988 522188 5130400 0 0 0 720 1199 665 1 0 99 0 0
0 0 0 2540956 522188 5130400 0 0 0 0 1151 1569 4 1 95 0 0
0 0 0 2540956 522188 5130500 0 0 0 6 1117 439 1 0 99 0 0
0 0 0 2540940 522188 5130512 0 0 0 536 1189 932 1 0 98 0 0
0 0 0 2538444 522188 5130588 0 0 0 0 1187 1417 4 1 96 0 0
0 0 0 2490060 522188 5130640 0 0 0 18 1253 1123 5 1 94 0 0
顯示內(nèi)存利用率Slabinfo
# vmstat -m
獲取有關活動/非活動內(nèi)存頁面的信息
# vmstat -a
如何找出Linux資源利用率來檢測系統(tǒng)瓶頸?
3. w - 查明誰登錄以及他們在做什么
w命令顯示有關機器上當前用戶及其過程的信息。樣本輸出:
# w username
# w vivek
17:58:47最多5天,20:28,2個用戶,平均負載:0.36,0.26,0.24
用戶TTY從登錄@ IDLE JCPU PCPU什么
root pts / 0 10.1.3.145 14:55 5.00s 0.04s 0.02s vim /etc/resolv.conf
root pts / 1 10.1.3.145 17:43 0.00s 0.03s 0.00sw
4.正常運行時間 - 告訴Linux系統(tǒng)運行了多久
uptime命令可用于查看服務器運行的時間。當前時間,系統(tǒng)運行了多長時間,當前登錄的用戶數(shù),以及過去1,5和15分鐘的系統(tǒng)負載平均值。
# uptime
輸出:
18:02:41最多41天,23:42,1位用戶,平均負載:0.00,0.00,0.00
1可被視為最佳負載值。負載可能因系統(tǒng)而異。對于單CPU系統(tǒng)1 - 3和SMP系統(tǒng)6-10的負載值可能是可以接受的。
5. ps - 顯示Linux進程
ps命令將報告當前進程的快照。要選擇所有進程,請使用-A或-e選項:
# ps -A
示例輸出:
PID TTY TIME CMD
1?00:00:02初始化
2?00:00:02遷移/ 0
3?00:00:01 ksoftirqd / 0
4?00:00:00看門狗/ 0
5?00:00:00遷移/ 1
6?00:00:15 ksoftirqd / 1
....
.....
4881?00:53:28 java
4885 tty1 00:00:00 mingetty
4886 tty2 00:00:00 mingetty
4887 tty3 00:00:00 mingetty
4888 tty4 00:00:00 mingetty
4891 tty5 00:00:00 mingetty
4892 tty6 00:00:00 mingetty
4893 ttyS1 00:00:00 agetty
12853?00:00:00 cifsoplockd
12854?00:00:00 cifsdnotifyd
14231?00:10:34 lighttpd
14232?00:00:00 php-cgi
54981 pts / 0 00:00:00 vim
55465?00:00:00 php-cgi
55546?00:00:00 bind9-snmp-stat
55704點/ 1 00:00:00 ps
ps就像頂部,但提供更多的信息。
顯示長格式輸出
# ps -Al
要打開額外的完整模式(它將顯示傳遞給進程的命令行參數(shù)):
# ps -AlF
顯示線程(LWP和NLWP)
# ps -AlFH
在進程之后觀看線程
# ps -AlLm
在服務器上打印所有進程
# ps ax
# ps axu
想要打印進程樹?
# ps -ejH
# ps axjf
# pstree
獲取Linux進程的安全信息
# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM
讓我們打印以用戶Vivek身份運行的每個進程
# ps -U vivek -u vivek u
以用戶定義的格式配置ps命令輸出
# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
# ps -eopid,tt,user,fname,tmout,f,wchan
嘗試僅顯示Lighttpd的進程ID
# ps -C lighttpd -o pid=
或
# pgrep lighttpd
或
# pgrep -u vivek php-cgi
打印PID 55977的名稱
# ps -p 55977 -o comm=
十大內(nèi)存消耗過程
# ps -auxf | sort -nr -k 4 | head -10
向我們展示十大CPU消耗過程
# ps -auxf | sort -nr -k 3 | head -10
在Linux中顯示所有正在運行的進程
6. free - 顯示Linux服務器的內(nèi)存使用情況
free命令顯示系統(tǒng)中可用和已用物理和交換內(nèi)存的總量以及內(nèi)核使用的緩沖區(qū)。
# free
示例輸出:
緩存總共使用的空閑共享緩沖區(qū)
Mem:12302896 9739664 2563232 0 523124 5154740
- / + buffers / cache:4061800 8241096
交換:1052248 0 1052248
Linux找出虛擬內(nèi)存PAGESIZE
Linux限制每個進程的CPU使用率
我的Ubuntu / Fedora Linux桌面PC有多少內(nèi)存?
7. iostat - Montor Linux平均CPU負載和磁盤活動
iostat命令報告設備,分區(qū)和網(wǎng)絡文件系統(tǒng)(NFS)的中央處理器(CPU)統(tǒng)計信息和輸入/輸出統(tǒng)計信息。
# iostat
樣本輸出:
Linux 2.6.18-128.1.14.el5(www03.nixcraft.in)06/26/2009
avg-cpu:%user%nice%system%iowait%steal%idle
3.50 0.09 0.51 0.03 0.00 95.86
設備:tps Blk_read / s Blk_wrtn / s Blk_read Blk_wrtn
sda 22.04 31.88 512.03 16193351 260102868
sda1 0.00 0.00 0.00 2166 180
sda2 22.04 31.87 512.03 16189010 260102688
sda3 0.00 0.00 0.00 1615 0
Linux跟蹤NFS目錄/磁盤I / O統(tǒng)計
8. sar - 監(jiān)視,收集和報告Linux系統(tǒng)活動
sar命令用于收集,報告和保存系統(tǒng)活動信息。要查看網(wǎng)絡計數(shù)器,請輸入:
# sar -n DEV | more
第24天的網(wǎng)絡計數(shù)器:
# sar -n DEV -f /var/log/sa/sa24 | more
您還可以使用sar顯示實時使用情況:
# sar 4 5
樣本輸出:
Linux 2.6.18-128.1.14.el5(www03.nixcraft.in)06/26/2009
06:45:12 PM CPU%user%nice%system%iowait%steal%idle
06:45:16 PM全部2.00 0.00 0.22 0.00 0.00 97.78
06:45:20 PM全部2.07 0.00 0.38 0.03 0.00 97.52
06:45:24 PM全部0.94 0.00 0.28 0.00 0.00 98.78
06:45:28 PM全部1.56 0.00 0.22 0.00 0.00 98.22
06:45:32 PM全部3.53 0.00 0.25 0.03 0.00 96.19
平均:全部2.02 0.00 0.27 0.01 0.00 97.70
如何將Linux系統(tǒng)利用率數(shù)據(jù)收集到文件中
如何使用kSar創(chuàng)建sar圖來識別Linux瓶頸
9. mpstat - 監(jiān)視Linux上的多處理器使用情況
mpstat命令顯示每個可用處理器的活動,處理器0是第一個。mpstat -P ALL顯示每個處理器的平均CPU利用率:
# mpstat -P ALL
示例輸出:
Linux 2.6.18-128.1.14.el5(www03.nixcraft.in)06/26/2009
06:48:11 PM CPU%user%nice%sys%iowait%irq%soft%steal%idle intr / s
06:48:11 PM全部3.50 0.09 0.34 0.03 0.01 0.17 0.00 95.86 1218.04
06:48:11 PM 0 3.44 0.08 0.31 0.02 0.00 0.12 0.00 96.04 1000.31
06:48:11 PM 1 3.10 0.08 0.32 0.09 0.02 0.11 0.00 96.28 34.93
06:48:11 PM 2 4.16 0.11 0.36 0.02 0.00 0.11 0.00 95.25 0.00
06:48:11 PM 3 3.77 0.11 0.38 0.03 0.01 0.24 0.00 95.46 44.80
06:48:11 PM 4 2.96 0.07 0.29 0.04 0.02 0.10 0.00 96.52 25.91
06:48:11 PM 5 3.26 0.08 0.28 0.03 0.01 0.10 0.00 96.23 14.98
06:48:11 PM 6 4.00 0.10 0.34 0.01 0.00 0.13 0.00 95.42 3.75
06:48:11 PM 7 3.30 0.11 0.39 0.03 0.01 0.46 0.00 95.69 76.89
Linux將單獨顯示每個多個SMP CPU處理器利用率。
10. pmap - Montor在Linux上處理內(nèi)存使用情況
pmap命令報告進程的內(nèi)存映射。使用此命令查找內(nèi)存瓶頸的原因。
# pmap -d PID
要顯示pid#47394的過程內(nèi)存信息,請輸入:
# pmap -d 47394
Sample Outputs:
47394:/ usr / bin / php-cgi
地址千字節(jié)模式偏移設備映射
0000000000400000 2584 rx-- 0000000000000000 008:00002 php-cgi
0000000000886000 140 rw --- 0000000000286000 008:00002 php-cgi
00000000008a9000 52 rw --- 00000000008a9000 000:00000 [anon]
0000000000aa8000 76 rw --- 00000000002a8000 008:00002 php-cgi
000000000f678000 1980 rw --- 000000000f678000 000:00000 [anon]
000000314a600000 112 rx-- 0000000000000000 008:00002 ld-2.5.so
000000314a81b000 4 r ---- 000000000001b000 008:00002 ld-2.5.so
000000314a81c000 4 rw --- 000000000001c000 008:00002 ld-2.5.so
000000314aa00000 1328 rx-- 0000000000000000 008:00002 libc-2.5.so
000000314ab4c000 2048 ----- 000000000014c000 008:00002 libc-2.5.so
.....
......
..
00002af8d48fd000 4 rw --- 0000000000006000 008:00002 xsl.so
00002af8d490c000 40 rx-- 0000000000000000 008:00002 libnss_files-2.5.so
00002af8d4916000 2044 ----- 000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b15000 4 r ---- 0000000000009000 008:00002 libnss_files-2.5.so
00002af8d4b16000 4 rw --- 000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b17000 768000 rw-s- 0000000000000000 000:00009零(刪除)
00007fffc95fe000 84 rw --- 00007ffffffea000 000:00000 [stack]
ffffffffff600000 8192 ----- 0000000000000000 000:00000 [anon]
映射:933712K可寫/私有:4304K共享:768000K
最后一行非常重要:
映射:933712K映射到文件的內(nèi)存總量
可寫/私有:4304K私有地址空間量
共享:768000K該進程與其他人共享的地址空間量
Linux使用pmap命令找到程序/進程使用的內(nèi)存
11. netstat - Linux網(wǎng)絡和統(tǒng)計監(jiān)控工具
netstat命令顯示網(wǎng)絡連接,路由表,接口統(tǒng)計信息,偽裝連接和多播成員身份。
# netstat -tulpn
# netstat -nat
12. ss - 網(wǎng)絡統(tǒng)計
ss命令用于轉儲套接字統(tǒng)計信息。它允許顯示類似于netstat的信息。請注意,netstat大多已經(jīng)過時。因此你需要使用ss命令。對Linux上的所有TCP和UDP套接字進行ss:
# ss -t -a
或者
# ss -u -a
顯示所有具有進程SELinux安全上下文的TCP套接字:
# ss -t -a -Z
請參閱關于ss和netstat命令的以下資源:
ss:顯示Linux TCP / UDP網(wǎng)絡和套接字信息
使用netstat命令獲取有關特定IP地址連接的詳細信息
13. iptraf - 獲取Linux上的實時網(wǎng)絡統(tǒng)計數(shù)據(jù)
iptraf命令是交互式多彩IP LAN監(jiān)視器。它是一種基于ncurses的IP LAN監(jiān)視器,可生成各種網(wǎng)絡統(tǒng)計信息,包括TCP信息,UDP計數(shù),ICMP和OSPF信息,以太網(wǎng)負載信息,節(jié)點統(tǒng)計信息,IP校驗和錯誤等。它可以以易于閱讀的格式提供以下信息:
通過TCP連接進行網(wǎng)絡流量統(tǒng)計
通過網(wǎng)絡接口的IP流量統(tǒng)計
按協(xié)議進行網(wǎng)絡流量統(tǒng)計
通過TCP / UDP端口和數(shù)據(jù)包大小進行網(wǎng)絡流量統(tǒng)計
網(wǎng)絡流量統(tǒng)計由Layer2地址
圖02:常規(guī)接口統(tǒng)計:通過網(wǎng)絡接口進行的IP流量統(tǒng)計
圖03通過TCP連接的網(wǎng)絡流量統(tǒng)計
在Centos / RHEL / Fedora Linux上安裝IPTraf以獲取網(wǎng)絡統(tǒng)計信息
14. tcpdump - 詳細的網(wǎng)絡流量分析
tcpdump命令是簡單的轉儲網(wǎng)絡通信的命令。但是,您需要充分了解TCP / IP協(xié)議才能使用此工具。為了顯示有關DNS的流量信息,輸入:
# tcpdump -i eth1 'udp port 53'
查看所有來自端口80的HTTP HTTP數(shù)據(jù)包,即僅打印包含數(shù)據(jù)的數(shù)據(jù)包,而不是例如SYN和FIN數(shù)據(jù)包和僅限ACK數(shù)據(jù)包,請輸入:
# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
全部顯示FTP會話至202.54.1.5,請輸入:將
# tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'
所有HTTP會話打印至192.168.1.5:
# tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'
使用wireshark查看有關文件的詳細信息,請輸入:
# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
15. iotop - Linux I / O監(jiān)視器
iotop命令監(jiān)視器,I / O使用信息,使用Linux內(nèi)核。它顯示了一個按服務器上的進程或線程排序的當前I / O使用情況表。
$ sudo iotop
示例輸出:Linux iotop:檢查什么是強調(diào)并增加硬盤上的負載
16. htop - 交互式進程查看器
htop是一款免費且開源的基于ncurses的Linux進程查看器。它比頂級命令好得多。非常容易使用。您可以選擇進程進行查殺或重新命名,而無需使用其PID或離開htop界面。
$ htop
示例輸出:
CentOS / RHEL:安裝htop交互式文本模式進程查看器
17. atop - 高級Linux系統(tǒng)和進程監(jiān)視器
atop是一個非常強大的交互式監(jiān)視器,可以查看Linux系統(tǒng)上的負載。它從性能的角度顯示最關鍵的硬件資源。您可以快速查看CPU,內(nèi)存,磁盤和網(wǎng)絡性能。它顯示哪些進程負責處理級別上CPU和內(nèi)存負載的指示負載。
$ atop
CentOS / RHEL:安裝在(高級系統(tǒng)和進程監(jiān)視器)實用工具上
18. ac和lastcomm -
您必須監(jiān)視Linux服務器上的進程和登錄活動。psacct或acct軟件包包含多個用于監(jiān)視過程活動的實用程序,其中包括:
ac命令:顯示用戶連接時間的統(tǒng)計信息
lastcomm命令:顯示有關以前執(zhí)行的命令的信息
accton命令:打開或關閉進程記帳
sa命令:匯總會計信息
如何對你的Linux系統(tǒng)做些什么的詳細審計跟蹤
19.監(jiān)督 - 過程監(jiān)督
Monit是一個免費的開源軟件,可以充當過程監(jiān)督。它具有重新啟動失敗的服務的能力。您可以使用Systemd,daemontools或任何其他此類工具來達到同樣的目的。本教程演示如何在Debian或Ubuntu Linux上安裝和配置monit作為進程監(jiān)督。
20. nethogs-找出在Linux上使用大多數(shù)帶寬的PID
NetHogs是一個小而方便的網(wǎng)絡頂級工具。它按照Firefox,wget等進程名稱對帶寬進行分組。如果網(wǎng)絡流量突然爆發(fā),請啟動NetHogs。您將看到哪個PID導致帶寬激增。Linux:使用Nethogs工具查看每個進程的帶寬使用情況
$ sudo nethogs
21. iftop - 顯示主機在一個接口上的帶寬使用情況
iftop命令監(jiān)聽給定接口名稱(如eth0)上的網(wǎng)絡通信。它顯示了成對主機的當前帶寬使用情況表。
$ sudo iftop
22. vnstat - 基于控制臺的網(wǎng)絡流量監(jiān)視器
vnstat很容易使用Linux的基于控制臺的網(wǎng)絡流量監(jiān)視器。它為選定的接口保留每小時,每日和每月網(wǎng)絡流量的日志。
$ vnstat
保持ADSL或專用遠程Linux服務器的日常網(wǎng)絡流量日志
CentOS / RHEL:安裝vnStat網(wǎng)絡流量監(jiān)視器以保持每日流量的日志
CentOS / RHEL:使用PHP Web界面前端查看Vnstat圖
23. nmon - Linux系統(tǒng)管理員,調(diào)試器,基準測試工具
nmon是Linux系統(tǒng)管理員用于調(diào)整目的的終極工具。它可以顯示來自cli的CPU,內(nèi)存,網(wǎng)絡,磁盤,文件系統(tǒng),NFS,最高進程資源和分區(qū)信息。安裝并使用nmon工具來監(jiān)視Linux系統(tǒng)性能
$ nmon
24.瀏覽 - 關注Linux系統(tǒng)
glances是一款開源的跨平臺監(jiān)控工具。它在小屏幕上提供大量信息。它也可以在客戶端/服務器模式下工作。Linux:通過一瞥監(jiān)視器關注您的系統(tǒng)
$ glances
25. strace - 在Linux上監(jiān)視系統(tǒng)調(diào)用
想跟蹤Linux系統(tǒng)調(diào)用和信號?嘗試strace命令。這對調(diào)試網(wǎng)絡服務器和其他服務器問題很有用。了解如何使用追蹤流程并查看它在做什么。
26. / proc / file system - 各種Linux內(nèi)核統(tǒng)計信息
/ proc文件系統(tǒng)提供有關各種硬件設備和其他Linux內(nèi)核信息的詳細信息。有關更多詳細信息,請參閱Linux內(nèi)核/ proc文檔。Common / proc例子:
# cat /proc/cpuinfo
# cat /proc/meminfo
# cat /proc/zoneinfo
# cat /proc/mounts
27. Nagios - Linux服務器/網(wǎng)絡監(jiān)控
Nagios是一款流行的開源計算機系統(tǒng)和網(wǎng)絡監(jiān)控應用軟件。您可以輕松監(jiān)控所有主機,網(wǎng)絡設備和服務。當事情出錯時它可以發(fā)出警報,當它們變得更好時它可以發(fā)出警報。FAN是 “全自動Nagios”。FAN的目標是提供Nagios安裝,包括由Nagios社區(qū)提供的大多數(shù)工具。FAN以標準ISO格式提供CDRom圖像,使安裝Nagios服務器變得容易。除此之外,為了改善Nagios周圍的用戶體驗,大量的工具都包含在發(fā)行版中。
28. Cacti - 基于Web的Linux監(jiān)控工具
Cacti是一個完整的網(wǎng)絡圖形解決方案,旨在利用RRDTool數(shù)據(jù)存儲和圖形功能的強大功能。Cacti提供了一個快速輪詢器,高級圖形模板,多種數(shù)據(jù)采集方法和用戶管理功能。所有這些都包含在一個直觀易用的界面中,這對于LAN大小的安裝以及數(shù)百個設備的復雜網(wǎng)絡來說是非常有意義的。它可以提供有關網(wǎng)絡,CPU,內(nèi)存,登錄用戶,Apache,DNS服務器等等的數(shù)據(jù)。了解如何在CentOS / RHEL下安裝和配置Cacti網(wǎng)絡制圖工具。
29. KDE System Guard - 實時Linux系統(tǒng)報告和制圖
KSysguard是KDE桌面的支持網(wǎng)絡的任務和系統(tǒng)監(jiān)視器應用程序。這個工具可以通過ssh會話運行。它提供了許多功能,如客戶機/服務器體系結構,可以監(jiān)視本地和遠程主機。圖形前端使用所謂的傳感器來檢索顯示的信息。傳感器可以返回簡單的值或更復雜的信息,如表格。對于每種類型的信息,提供一個或多個顯示。顯示器被組織在可以彼此獨立保存和加載的工作表中。所以,KSysguard不僅是一個簡單的任務管理器,而且是控制大型服務器場的強大工具。
圖05 KDE System Guard {圖片來源:維基百科}
有關詳細用法,請參閱KSysguard手冊。
30. GNOME Linux系統(tǒng)監(jiān)視器
系統(tǒng)監(jiān)視器應用程序使您能夠顯示基本系統(tǒng)信息并監(jiān)視系統(tǒng)過程,系統(tǒng)資源使用情況和文件系統(tǒng)。您還可以使用系統(tǒng)監(jiān)視器來修改系統(tǒng)的行為。雖然不如KDE System Guard強大,但它提供了可能對新用戶有用的基本信息:
顯示有關計算機硬件和軟件的各種基本信息。
Linux內(nèi)核版本
GNOME版本
硬件
安裝內(nèi)存
處理器和速度
系統(tǒng)狀況
當前可用的磁盤空間
流程
內(nèi)存和交換空間
網(wǎng)絡使用
文件系統(tǒng)
列出所有已安裝的文件系統(tǒng)以及每個系統(tǒng)的基本信息。
圖06 Gnome System Monitor應用程序
獎金:其他工具
還有幾個工具:
nmap - 掃描您的服務器的開放端口。
lsof - 列出打開的文件,網(wǎng)絡連接等等。
ntop基于web的工具 - ntop是以類似于top命令對于進程的方式查看網(wǎng)絡使用情況的最佳工具,即它是網(wǎng)絡流量監(jiān)視軟件。您可以查看網(wǎng)絡狀態(tài),UDP,TCP,DNS,HTTP和其他協(xié)議的流量協(xié)議分配。
Conky - X Window系統(tǒng)的另一個很好的監(jiān)控工具。它是高度可配置的,并且能夠監(jiān)視許多系統(tǒng)變量包括CPU的狀態(tài),存儲器,交換空間,磁盤存儲,溫度,處理,網(wǎng)絡接口,電池電量,系統(tǒng)消息,電子郵件收件箱等
GKrellM - 它可以用來監(jiān)視CPU,主內(nèi)存,硬盤,網(wǎng)絡接口,本地和遠程郵箱以及其他許多事物的狀態(tài)。
mtr -mtr將traceroute和ping程序的功能結合在一個網(wǎng)絡診斷工具中。
vtop - Linux上的圖形終端活動監(jiān)視器
gtop - 用于Linux / macOS Unix終端的令人敬畏的系統(tǒng)監(jiān)控儀表板