是否需要監(jiān)控Linux服務(wù)器的性能?試試這些內(nèi)置的命令和附加工具。大多數(shù)發(fā)行版都附帶了大量的Linux監(jiān)控工具,這些工具提供了可以用來獲取系統(tǒng)活動(dòng)信息的指標(biāo)。你可以使用這些工具來查找性能問題的可能原因。下面討論的命令是關(guān)于系統(tǒng)分析和調(diào)試Linux服務(wù)器問題的一些最基本的命令,例如:
1、找出系統(tǒng)的瓶頸
2、磁盤(存儲(chǔ))瓶頸
3、CPU和內(nèi)存瓶頸
4、網(wǎng)絡(luò)瓶頸。
01
top—進(jìn)程活動(dòng)監(jiān)視命令
top命令顯示Linux進(jìn)程。它提供了一個(gè)運(yùn)行系統(tǒng)的動(dòng)態(tài)實(shí)時(shí)視圖,即實(shí)際的流程活動(dòng)。默認(rèn)情況下,它顯示在服務(wù)器上運(yùn)行的cpu密集型任務(wù),并每5秒鐘更新一次列表。
圖01:Linux top命令
常用熱鍵和 top Linux監(jiān)視工具
下面是一些有用的熱鍵:
熱鍵
使用
t
顯示摘要信息
m
顯示內(nèi)存信息
A
對(duì)不同系統(tǒng)資源的頂級(jí)用戶進(jìn)行排序。能快速識(shí)別系統(tǒng)里的性能需求。
f
進(jìn)入一個(gè)交互式配置屏幕。有助于為特定的任務(wù)置頂。
o
優(yōu)先進(jìn)行交互式地選擇
r
發(fā)布renice命令。
k
問題終止命令。
z
打開或關(guān)閉color/mono
02
vmstat—虛擬內(nèi)存統(tǒng)計(jì)
vmstat命令報(bào)告有關(guān)進(jìn)程、內(nèi)存、分頁(yè)、阻塞IO、陷阱和cpu活動(dòng)的信息。
示例輸出:
顯示內(nèi)存使用的slab信息
獲取關(guān)于活動(dòng)/非活動(dòng)內(nèi)存頁(yè)的信息。
03
w—找出誰在登錄,他們?cè)谧鍪裁?/strong>
w命令顯示當(dāng)前機(jī)器上的用戶及其進(jìn)程的信息。
示例輸出:
04
uptime—Linux系統(tǒng)運(yùn)行了多長(zhǎng)時(shí)間
可以使用uptime命令查看服務(wù)器運(yùn)行了多長(zhǎng)時(shí)間。當(dāng)前時(shí)間,系統(tǒng)運(yùn)行的時(shí)間,當(dāng)前登錄的用戶數(shù)量,以及過去1、5和15分鐘的系統(tǒng)負(fù)載平均值。
輸出:
1可視為最優(yōu)荷載值。負(fù)載可以從系統(tǒng)切換到系統(tǒng)。對(duì)于單個(gè)CPU系統(tǒng),1 - 3和SMP系統(tǒng)6-10的負(fù)載值是可以接受的。
05
ps—顯示Linux進(jìn)程
ps命令將報(bào)告當(dāng)前進(jìn)程的快照。要選擇所有進(jìn)程,請(qǐng)使用A或E選項(xiàng):
示例輸出:
ps和top一樣,但是提供了更多的信息。
顯示長(zhǎng)格式輸出
打開額外的全模式(它將顯示傳遞到過程的命令行參數(shù)):
顯示線程(LWP和NLWP)
觀察進(jìn)程后的線程
在服務(wù)器上打印所有進(jìn)程。
想要打印一個(gè)進(jìn)程樹?
#pstree
獲取Linux進(jìn)程的安全信息。
打印每一個(gè)作為用戶Vivek運(yùn)行的進(jìn)程。
將ps命令以用戶定義的格式配置輸出。
嘗試只顯示Lighttpd的進(jìn)程id。
或者
或者
打印PID 55977的名稱。
10大內(nèi)存消耗過程。
顯示10個(gè)CPU消耗過程。
06
free—Linux服務(wù)器內(nèi)存使用情況
free命令顯示系統(tǒng)中空閑和使用的物理和交換內(nèi)存的總量,以及內(nèi)核使用的緩沖區(qū)。
示例輸出:
07
iostat—Montor Linux
平均CPU負(fù)載和磁盤活動(dòng)
iostat命令報(bào)告中央處理單元(CPU)統(tǒng)計(jì)數(shù)據(jù)和設(shè)備、分區(qū)和網(wǎng)絡(luò)文件系統(tǒng)(NFS)的輸入/輸出統(tǒng)計(jì)數(shù)據(jù)。
示例輸出:
08
sar – Monitor,
收集和報(bào)告Linux系統(tǒng)活動(dòng)
sar命令用于收集、報(bào)告和保存系統(tǒng)活動(dòng)信息。要查看網(wǎng)絡(luò)計(jì)數(shù)器,請(qǐng)輸入:
網(wǎng)絡(luò)計(jì)數(shù)器的第24個(gè)
還可以使用sar顯示實(shí)時(shí)使用情況:
示例輸出:
09
mpstat —監(jiān)控Linux上的多處
處理器使用情況
mpstat命令顯示每個(gè)可用處理器的活動(dòng),處理器0是第一個(gè)。mpstat -P顯示每個(gè)處理器平均CPU利用率:
示例輸出
10
pmap—Montor在Linux上
處理內(nèi)存使用
pmap命令報(bào)告內(nèi)存映射的一個(gè)過程。使用此命令找出內(nèi)存瓶頸的原因。
要顯示pid # 47394的進(jìn)程內(nèi)存信息,請(qǐng)輸入:
示例輸出:
最后一行非常重要:
mapped:933712K總內(nèi)存映射到文件。
writeable/private:4304K私人地址空間的數(shù)量。
shared:768000K這個(gè)進(jìn)程與其他進(jìn)程共享的地址空間量。
11
netstat—Linux網(wǎng)絡(luò)和統(tǒng)計(jì)監(jiān)控工具
netstat命令顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)信息、化裝連接和多播成員。
12
ss—網(wǎng)絡(luò)統(tǒng)計(jì)
ss命令用于轉(zhuǎn)儲(chǔ)套接字統(tǒng)計(jì)信息。它允許顯示類似于netstat的信息。請(qǐng)注意,netstat幾乎是過時(shí)的。因此,您需要使用ss命令。對(duì)Linux上的所有TCP和UDP套接字:
或者
顯示所有的TCP套接字與SELinux的安全上下文的過程:
13
iptraf—獲取Linux上的
實(shí)時(shí)網(wǎng)絡(luò)統(tǒng)計(jì)信息
iptraf命令是交互式彩色I(xiàn)P網(wǎng)絡(luò)監(jiān)視器。它是一個(gè)基于ncurses的IP LAN監(jiān)視器,它生成各種網(wǎng)絡(luò)統(tǒng)計(jì)信息,包括TCP info、UDP計(jì)數(shù)、ICMP和OSPF信息、以太網(wǎng)負(fù)載信息、節(jié)點(diǎn)統(tǒng)計(jì)信息、IP校驗(yàn)和錯(cuò)誤等。它可以提供以下易于讀取格式信息:
1、通過TCP連接進(jìn)行網(wǎng)絡(luò)流量統(tǒng)計(jì)。
2、IP流量統(tǒng)計(jì)的網(wǎng)絡(luò)接口。
3、按協(xié)議進(jìn)行網(wǎng)絡(luò)流量統(tǒng)計(jì)。
4、通過TCP/UDP端口和數(shù)據(jù)包大小的網(wǎng)絡(luò)流量統(tǒng)計(jì)。
5、通過Layer2地址進(jìn)行網(wǎng)絡(luò)流量統(tǒng)計(jì)
圖02:通用接口統(tǒng)計(jì):網(wǎng)絡(luò)接口的IP流量統(tǒng)計(jì)
圖03:TCP連接的網(wǎng)絡(luò)流量統(tǒng)計(jì)
14
tcpdump—詳細(xì)的網(wǎng)絡(luò)流量分析
tcpdump命令是簡(jiǎn)單的命令,可以在網(wǎng)絡(luò)上轉(zhuǎn)儲(chǔ)流量。但是,你需要很好的理解TCP/IP協(xié)議來使用這個(gè)工具。For.e。g顯示DNS的交通信息,輸入:
從端口80查看所有IPv4 HTTP包,即只打印包含數(shù)據(jù)的數(shù)據(jù)包,例如,SYN和FIN包和ackonly包,輸入:
顯示所有FTP會(huì)話到202.54.1.5,輸入:
將所有HTTP會(huì)話打印到192.168.1.5:
使用wireshark查看有關(guān)文件的詳細(xì)信息,輸入:
15
iotop—Linux I/O監(jiān)視器
iotop命令監(jiān)視器,I/O使用信息,使用Linux內(nèi)核。它顯示了在服務(wù)器上按進(jìn)程或線程排序的當(dāng)前I/O使用的表。
示例輸出:
16
htop—交互式過程查看器
htop是一個(gè)免費(fèi)的、開放源碼的Linux進(jìn)程查看器。它比top命令好得多。非常容易使用。您可以選擇不使用它們的pid或離開htop接口的進(jìn)程來殺死或重新使用它們。
示例輸出:
17
atop—高級(jí)Linux系統(tǒng)和進(jìn)程監(jiān)視器
atop是一個(gè)非常強(qiáng)大的交互式監(jiān)視器,可以查看Linux系統(tǒng)上的負(fù)載。它從性能的角度顯示最關(guān)鍵的硬件資源。您可以快速地看到CPU、內(nèi)存、磁盤和網(wǎng)絡(luò)性能。它顯示了哪些進(jìn)程負(fù)責(zé)處理進(jìn)程級(jí)別上的CPU和內(nèi)存負(fù)載。
18
ac and lastcomm
你必須監(jiān)視Linux服務(wù)器上的進(jìn)程和登錄活動(dòng)。psacct或acct包包含幾個(gè)用于監(jiān)視過程活動(dòng)的實(shí)用程序,包括:
ac命令:顯示用戶連接時(shí)間的統(tǒng)計(jì)信息。
lastcomm命令:顯示有關(guān)先前執(zhí)行的命令的信息。
accton命令:將進(jìn)程計(jì)算開或關(guān)閉
sa命令:匯總會(huì)計(jì)信息。
19
monit—流程監(jiān)督
Monit是一種免費(fèi)和開源的軟件,它可以作為過程監(jiān)督。它提供了重啟失敗的服務(wù)的能力。您可以使用Systemd、daemontools或任何其他此類工具來實(shí)現(xiàn)相同的目的。
20
nethogs——找出在Linux上
使用大多數(shù)帶寬的pid
NetHogs是一款小巧但方便的網(wǎng)絡(luò)頂級(jí)工具。它通過進(jìn)程名稱(如Firefox、wget等)對(duì)帶寬進(jìn)行分組。如果網(wǎng)絡(luò)流量突然激增,那就啟動(dòng)NetHogs。
21
iftop—顯示主機(jī)
接口上的帶寬使用情況
iftop命令在給定的接口名稱(如eth0)上偵聽網(wǎng)絡(luò)通信。
22
vnstat—基于consol
的網(wǎng)絡(luò)流量監(jiān)視器
vnstat很容易在Linux上使用基于console的網(wǎng)絡(luò)流量監(jiān)視器。它為選定的接口保持每小時(shí)、每日和每月的網(wǎng)絡(luò)流量。
23
nmon—Linux系統(tǒng)管理員,
tuner,基準(zhǔn)工具
nmon是一個(gè)Linux系統(tǒng)管理員的終極工具。它可以顯示CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤、文件系統(tǒng)、NFS、頂級(jí)進(jìn)程資源和cli中的分區(qū)信息。
24
glances—注意Linux系統(tǒng)
glances是一個(gè)開源的跨平臺(tái)監(jiān)控工具。它在小屏幕上提供了大量的信息。它還可以在客戶機(jī)/服務(wù)器模式下工作。
25
strace—在Linux上調(diào)用電控系統(tǒng)
嘗試strace命令。這對(duì)于調(diào)試web服務(wù)器和其他服務(wù)器問題很有用
26
/proc/ file system—
各種Linux內(nèi)核統(tǒng)計(jì)數(shù)據(jù)
proc文件系統(tǒng)提供有關(guān)各種硬件設(shè)備和其他Linux內(nèi)核信息的詳細(xì)信息。常見的/ proc的例子:
27
Nagios—Linux服務(wù)器/網(wǎng)絡(luò)監(jiān)控
Nagios是一個(gè)流行的開源計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)監(jiān)控應(yīng)用軟件。您可以輕松地監(jiān)視所有主機(jī)、網(wǎng)絡(luò)設(shè)備和服務(wù)。當(dāng)事情出錯(cuò)時(shí),它可以發(fā)出警報(bào),當(dāng)情況好轉(zhuǎn)時(shí)再發(fā)出警報(bào)。FAN是“完全自動(dòng)化的Nagios”。FAN目標(biāo)是提供Nagios安裝,包括Nagios社區(qū)提供的大部分工具。FAN提供了標(biāo)準(zhǔn)ISO格式的CDRom映像,使它易于安裝Nagios服務(wù)器。除此之外,還有大量的工具,包括分發(fā),以改善Nagios周圍的用戶體驗(yàn)。
28
Cacti—基于web的Linux監(jiān)控工具
Cacti是一個(gè)完整的網(wǎng)絡(luò)圖形解決方案,旨在利用RRDTool的數(shù)據(jù)存儲(chǔ)和繪圖功能。Cacti提供了一個(gè)快速輪詢器、高級(jí)圖形模板、多個(gè)數(shù)據(jù)獲取方法和用戶管理功能。所有這些都是用一種直觀的、易于使用的界面包裝起來的,這種界面對(duì)于有數(shù)百種設(shè)備的復(fù)雜網(wǎng)絡(luò)來說是有意義的。它可以提供有關(guān)網(wǎng)絡(luò)、CPU、內(nèi)存、登錄用戶、Apache、DNS服務(wù)器等的數(shù)據(jù)。
29
KDE System Guard—
實(shí)時(shí)Linux系統(tǒng)報(bào)告和繪圖
KSysguard是一個(gè)用于KDE桌面的網(wǎng)絡(luò)支持任務(wù)和系統(tǒng)監(jiān)視應(yīng)用程序。該工具可以在ssh會(huì)話上運(yùn)行。它提供了很多功能,比如客戶機(jī)/服務(wù)器架構(gòu)能夠監(jiān)控本地和遠(yuǎn)程主機(jī)。圖形前端使用所謂的傳感器來檢索它顯示的信息。傳感器可以返回簡(jiǎn)單的值或更復(fù)雜的信息,如表。對(duì)于每種類型的信息,都提供一個(gè)或多個(gè)顯示器。顯示是在工作表中組織的,這些工作表可以相互獨(dú)立地保存和加載。因此,KSysguard不僅是一個(gè)簡(jiǎn)單的任務(wù)管理器,而且是控制大型服務(wù)器集群的強(qiáng)大工具。
圖05:KDE系統(tǒng)保護(hù)圖:維基百科
30
Gnome Linux系統(tǒng)監(jiān)控
圖06:Gnome系統(tǒng)應(yīng)用程序
系統(tǒng)監(jiān)視器應(yīng)用程序能夠顯示基本的系統(tǒng)信息和監(jiān)視系統(tǒng)進(jìn)程、系統(tǒng)資源的使用和文件系統(tǒng)。您還可以使用系統(tǒng)監(jiān)視器來修改系統(tǒng)的行為。雖然沒有KDE系統(tǒng)保護(hù)功能強(qiáng)大,但它提供了一些可能對(duì)新用戶有用的基本信息:
(1)顯示有關(guān)計(jì)算機(jī)硬件和軟件的各種基本信息。
(2)Linux內(nèi)核版本
(3)GNOME版本
(4)硬件
(5)安裝的存儲(chǔ)器
(6)處理器速度
(7)系統(tǒng)狀態(tài)
(8)目前可用的磁盤空間
(9)流程
(10)內(nèi)存和交換空間
(11)網(wǎng)絡(luò)使用情況
(12)文件系統(tǒng)
(13)列出所有掛載的文件系統(tǒng)以及關(guān)于每個(gè)文件的基本信息。
作者: Vivek Gite
聯(lián)系客服