當前位置:首頁 » 操作系統 » 監控linux系統

監控linux系統

發布時間: 2023-03-13 09:15:41

1. 如何監控linux空間

Linux系統中需要監控磁碟各分區的使用情況,避免由於各種突發情況,造成磁碟空間被消耗殆盡的情況,例如某個分區被Oracle的歸檔日誌耗盡,導致後續的日誌文件無法歸檔,這時ORACLE資料庫就會出現錯誤。監控磁碟空間的使用情況,其實有許多工具,例如Nagios等,其實最簡單的還是使用Shell腳本。下面就介紹一下如何通過Shell腳本和Crontab作業結合來實現對磁碟空間的監控、告警。

一般查看磁碟各分區的使用情況可以通過df命令來查看,網上有兩種獲取磁碟使用百分比的Shell腳本。

1:df -h | grep /dev | awk '{print $5}' | cut -f 1 -d "%"

2:df -h | grep /dev | awk '{print $5}' | sed 's/%//g'

但是這兩個命令還是有些bug,例如如下截圖所示:當顯示內容過長,導致換行時。此時上面的Shell腳本就無法獲取其值。

2. 如何監控LINUX網路狀態

下面是按功能劃分的命令名稱。
監控總體帶寬使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload
監控總體帶寬使用(批量式輸出)――vnstat、ifstat、dstat和collectl
每個套接字連接的帶寬使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow
每個進程的帶寬使用――nethogs
1. nload

nload是一個命令行工具,讓用戶可以分開來監控入站流量和出站流量。它還可以繪制圖表以顯示入站流量和出站流量,視圖比例可以調整。用起來很簡單,不支持許多選項。
所以,如果你只需要快速查看總帶寬使用情況,無需每個進程的詳細情況,那麼nload用起來很方便。
$ nload

安裝nload:Fedora和Ubuntu在默認軟體庫裡面就有nload。CentOS用戶則需要從Epel軟體庫獲得nload。
# fedora或centos $ yum install nload -y # ubuntu/debian $ sudo apt-get install nload

2. iftop
iftop可測量通過每一個套接字連接傳輸的數據;它採用的工作方式有別於nload。iftop使用pcap庫來捕獲進出網路適配器的數據包,然後匯總數據包大小和數量,搞清楚總的帶寬使用情況。
雖然iftop報告每個連接所使用的帶寬,但它無法報告參與某個套按字連接的進程名稱/編號(ID)。不過由於基於pcap庫,iftop能夠過濾流量,並報告由過濾器指定的所選定主機連接的帶寬使用情況。
$ sudo iftop -n

n選項可以防止iftop將IP地址解析成主機名,解析本身就會帶來額外的網路流量。

安裝iftop:Ubuntu/Debian/Fedora用戶可以從默認軟體庫獲得它。CentOS用戶可以從Epel獲得它。
# fedora或centos yum install iftop -y # ubuntu或 debian $ sudo apt-get install iftop

3. iptraf
iptraf是一款互動式、色彩鮮艷的IP區域網監控工具。它可以顯示每個連接以及主機之間傳輸的數據量。下面是屏幕截圖。

$ sudo iptraf

安裝iptraf:
# Centos(基本軟體庫) $ yum install iptraf # fedora或centos(帶epel) $ yum install iptraf-ng -y # ubuntu或debian $ sudo apt-get install iptraf iptraf-ng

4. nethogs
nethogs是一款小巧的"net top"工具,可以顯示每個進程所使用的帶寬,並對列表排序,將耗用帶寬最多的進程排在最上面。萬一出現帶寬使用突然激增的情況,用戶迅速打開nethogs,就可以找到導致帶寬使用激增的進程。nethogs可以報告程序的進程編號(PID)、用戶和路徑。
$ sudo nethogs

安裝nethogs:Ubuntu、Debian和Fedora用戶可以從默認軟體庫獲得。CentOS用戶則需要Epel。
# ubuntu或debian(默認軟體庫) $ sudo apt-get install nethogs # fedora或centos(來自epel) $ sudo yum install nethogs -y

5. bmon
bmon(帶寬監控器)是一款類似nload的工具,它可以顯示系統上所有網路介面的流量負載。輸出結果還含有圖表和剖面,附有數據包層面的詳細信息。

安裝bmon:Ubuntu、Debian和Fedora用戶可以從默認軟體庫來安裝。CentOS用戶則需要安裝repoforge,因為Epel裡面沒有bmon。
# ubuntu或debian $ sudo apt-get install bmon # fedora或centos(來自repoforge) $ sudo yum install bmon

bmon支持許多選項,能夠製作HTML格式的報告。欲知更多信息,請參閱參考手冊頁。
6. slurm
slurm是另一款網路負載監控器,可以顯示設備的統計信息,還能顯示ASCII圖形。它支持三種不同類型的圖形,使用c鍵、s鍵和l鍵即可激活每種圖形。slurm功能簡單,無法顯示關於網路負載的任何更進一步的詳細信息。
$ slurm -s -i eth0

安裝slurm
# debian或ubuntu $ sudo apt-get install slurm # fedora或centos $ sudo yum install slurm -y

7. tcptrack
tcptrack類似iftop,使用pcap庫來捕獲數據包,並計算各種統計信息,比如每個連接所使用的帶寬。它還支持標準的pcap過濾器,這些過濾器可用來監控特定的連接。

安裝tcptrack:Ubuntu、Debian和Fedora在默認軟體庫裡面就有它。CentOS用戶則需要從RepoForge獲得它,因為Epel裡面沒有它。
# ubuntu, debian $ sudo apt-get install tcptrack # fedora, centos(來自repoforge軟體庫) $ sudo yum install tcptrack

8. vnstat
vnstat與另外大多數工具有點不一樣。它實際上運行後台服務/守護進程,始終不停地記錄所傳輸數據的大小。之外,它可以用來製作顯示網路使用歷史情況的報告。
$ service vnstat status * vnStat daemon is running

運行沒有任何選項的vnstat,只會顯示自守護進程運行以來所傳輸的數據總量。
$ vnstat Database updated: Mon Mar 17 15:26:59 2014 eth0 since 06/12/13 rx: 135.14 GiB tx: 35.76 GiB total: 170.90 GiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+------------- Feb '14 8.19 GiB | 2.08 GiB | 10.27 GiB | 35.60 kbit/s Mar '14 4.98 GiB | 1.52 GiB | 6.50 GiB | 37.93 kbit/s ------------------------+-------------+-------------+------------- estimated 9.28 GiB | 2.83 GiB | 12.11 GiB | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+------------- yesterday 236.11 MiB | 98.61 MiB | 334.72 MiB | 31.74 kbit/s today 128.55 MiB | 41.00 MiB | 169.56 MiB | 24.97 kbit/s ------------------------+-------------+-------------+------------- estimated 199 MiB | 63 MiB | 262 MiB |

想實時監控帶寬使用情況,請使用"-l"選項(實時模式)。然後,它會顯示入站數據和出站數據所使用的總帶寬量,但非常精確地顯示,沒有關於主機連接或進程的任何內部詳細信息。
$ vnstat -l -i eth0 Monitoring eth0... (press CTRL-C to stop) rx: 12 kbit/s 10 p/s tx: 12 kbit/s 11 p/s

vnstat更像是一款製作歷史報告的工具,顯示每天或過去一個月使用了多少帶寬。它並不是嚴格意義上的實時監控網路的工具。
vnstat支持許多選項,支持哪些選項方面的詳細信息請參閱參考手冊頁。
安裝vnstat
# ubuntu或debian $ sudo apt-get install vnstat # fedora或 centos(來自epel) $ sudo yum install vnstat

9. bwm-ng
bwm-ng(下一代帶寬監控器)是另一款非常簡單的實時網路負載監控工具,可以報告摘要信息,顯示進出系統上所有可用網路介面的不同數據的傳輸速度。
$ bwm-ng bwm-ng v0.6 (probing every 0.500s), press 'h' for help input: /proc/net/dev type: rate / iface Rx Tx T ot================================================================= == eth0: 0.53 KB/s 1.31 KB/s 1.84 KB lo: 0.00 KB/s 0.00 KB/s 0.00 KB------------------------------------------------------------------------------------------------------------- total: 0.53 KB/s 1.31 KB/s 1.84 KB/s

如果控制台足夠大,bwm-ng還能使用curses2輸出模式,為流量繪制條形圖。
$ bwm-ng -o curses2

安裝bwm-ng:在CentOS上,可以從Epel來安裝bwm-ng。
# ubuntu或debian $ sudo apt-get install bwm-ng # fedora或centos(來自epel) $ sudo apt-get install bwm-ng

10. cbm:Color Bandwidth Meter

這是一款小巧簡單的帶寬監控工具,可以顯示通過諸網路介面的流量大小。沒有進一步的選項,僅僅實時顯示和更新流量的統計信息。
$ sudo apt-get install cbm

11. speedometer
這是另一款小巧而簡單的工具,僅僅繪制外觀漂亮的圖形,顯示通過某個介面傳輸的入站流量和出站流量。
$ speedometer -r eth0 -t eth0

安裝speedometer
# ubuntu或debian用戶 $ sudo apt-get install speedometer

12. pktstat

pktstat可以實時顯示所有活動連接,並顯示哪些數據通過這些活動連接傳輸的速度。它還可以顯示連接類型,比如TCP連接或UDP連接;如果涉及HTTP連接,還會顯示關於HTTP請求的詳細信息。
$ sudo pktstat -i eth0 -nt $ sudo apt-get install pktstat

13. netwatch

netwatch是netdiag工具庫的一部分,它也可以顯示本地主機與其他遠程主機之間的連接,並顯示哪些數據在每個連接上所傳輸的速度。
$ sudo netwatch -e eth0 -nt $ sudo apt-get install netdiag

14. trafshow
與netwatch和pktstat一樣,trafshow也可以報告當前活動連接、它們使用的協議以及每條連接上的數據傳輸速度。它能使用pcap類型過濾器,對連接進行過濾。
只監控TCP連接

$ sudo trafshow -i eth0 tcp $ sudo apt-get install netdiag

15. netload
netload命令只顯示關於當前流量負載的一份簡短報告,並顯示自程序啟動以來所傳輸的總位元組量。沒有更多的功能特性。它是netdiag的一部分。

$ netload eth0 $ sudo apt-get install netdiag

16. ifstat
ifstat能夠以批處理式模式顯示網路帶寬。輸出採用的一種格式便於用戶使用其他程序或實用工具來記入日誌和分析。
$ ifstat -t -i eth0 0.5 Time eth0 HH:MM:SS KB/s in KB/s out 09:59:21 2.62 2.80 09:59:22 2.10 1.78 09:59:22 2.67 1.84 09:59:23 2.06 1.98 09:59:23 1.73 1.79

安裝ifstat:Ubuntu、Debian和Fedora用戶在默認軟體庫裡面就有它。CentOS用戶則需要從Repoforge獲得它,因為Epel裡面沒有它。
# ubuntu, debian $ sudo apt-get install ifstat # fedora, centos(Repoforge) $ sudo yum install ifstat

17. dstat
dstat是一款用途廣泛的工具(用python語言編寫),它可以監控系統的不同統計信息,並使用批處理模式來報告,或者將相關數據記入到CSV或類似的文件。這個例子顯示了如何使用dstat來報告網路帶寬。
安裝dstat
$ dstat -nt -net/total- ----system---- recv send| time 0 0 |23-03 10:27:13 1738B 1810B|23-03 10:27:14 2937B 2610B|23-03 10:27:15 2319B 2232B|23-03 10:27:16 2738B 2508B|23-03 10:27:17

18. collectl
collectl以一種類似dstat的格式報告系統的統計信息;與dstat一樣,它也收集關於系統不同資源(如處理器、內存和網路等)的統計信息。這里給出的一個簡單例子顯示了如何使用collectl來報告網路使用/帶寬。
$ collectl -sn -oT -i0.5 waiting for 0.5 second sample... # <----------Network----------> #Time KBIn PktIn KBOut PktOut 10:32:01 40 58 43 66 10:32:01 27 58 3 32 10:32:02 3 28 9 44 10:32:02 5 42 96 96 10:32:03 5 48 3 28

安裝collectl
# Ubuntu/Debian用戶 $ sudo apt-get install collectl #Fedora $ sudo yum install collectl

3. 有什麼監控Linux伺服器的工具嗎

1. zabbix:是一個基於Web界面的提供分布式系統監視以及網路監視功能的企業級開源解決方案。Zabbix能監視各種網路參數,保證伺服器系統的安全運營,並提供靈活的通知機制以讓系統管理員快速定位,解決存在的各種問題。
2. Nagios:是一款開源的免費網路監視工具,能有效監控Windows、Linux和Unix的狀態,交換機路由器等網路設備,列印機等。在系統或服務狀態異常時發出郵件或簡訊報警時間通知運維人員,在狀態恢復後發出正常的郵件或簡訊通知。
3. Anturis:是一個基於雲平台的Saas平台,可監控Windows、Linux伺服器,網站和IT基礎架構,通過全面的監控解決方案列表,讓管理員快速了解整體主機或者伺服器瓶頸與風險。
4. SeaLion:是一個基於雲的Linux伺服器監控工具,也是通過統一的儀表盤監控所有伺服器指標,它只需幾分鍾即可完成設置,具有即時報警功能。
5. lcinga:是一個免費的開源監控系統,可以檢查伺服器資源的可用性,它會記錄伺服器問題並在停機的時候通知您。
6. Munin:是一個網路和系統監控工具,可幫助您分析伺服器資源趨勢,旨在成為一個即插即用的解決方案,安裝後無需太多額外工作即可收集關鍵信息。
7. Monit:是一個用於管理和監控Unix系統的開源工具。可以進行自動維護和維修,如果出現錯誤情況,還可以自動觸發保護行為。
8. Pingdom:可以對互聯網上很多地方的伺服器以及網站進行監控,以保證他們可以有效的運行;通過Pingdom,可以對電子郵件的伺服器、FTP伺服器、受密碼保護的那些網站進行監控。

4. linux性能監控工具有哪些

1、頂部-Linux進程監控
Linux Top命令是性能監視程序,很多系統管理員經常用它監視Linux性能,可以再許多Linux/Unix操作系統下使用,可以顯示CPU使用情況、內存使用情況、交換內存、緩存大小、緩沖區大小、進程PID、用戶、 命令等等,它還顯示高內存和CPU運行流程的利用。
2、VmStat-虛擬內存統計
Linux VmStat命令用於顯示虛擬內存,kernerl線程,磁碟,系統進程,I/O塊,中斷,CPU活動等的統計信息。默認情況下,vmstat命令在Linux系統下不可用,您需要安裝名為sysstat的軟體包 ,其中包含vmstat程序。
3、Lsof-列出打開的文件
許多Linux/Unix系統中使用的Lsof命令,用於顯示所有打開文件和進程的列表。包含的開放文件是磁碟文件、網路套接字、管道、設備和進程。使用此命令的主要原因之一是無法卸載磁碟並顯示正在使用或打開文件的錯誤。使用此命令,您可以輕松識別哪些文件正在使用中。
4、Tcpmp-網路分組分析器
Tcpmp是使用最廣泛的命令行、網路數據包分析器或數據包嗅探器程序之一,用於捕獲或過濾通過網路在特定介面上接收或傳輸的TCP/ IP數據包。它還提供了一個選項,可以將捕獲的包保存在文件中供以後分析。tcpmp幾乎可用於所有主要的Linux發行版。
5、Netstat-網路統計
Netstat是一個命令行工具,用於監視傳入和傳出網路數據包統計信息以及介面統計信息,對於每個系統管理員來說,監視網路性能並排除網路相關問題是非常有用的工具。
6、Htop-Linux進程監控
Htop是一款非常先進的互動式和實時Linux過程監控工具。這與Linux top命令非常相似,但它具有一些豐富的功能,如用戶友好的界面來管理進程、快捷鍵、進程的垂直和水平視圖等等。

5. 有什麼監控Linux伺服器的工具嗎

1、Ganglia
是一個集群監控軟體,可以監視和顯示集群中的節點的各種狀態信息,比如:CPU、mem、硬碟利用率、I/O負載、網路流量情況等,同時可以將歷史數據以曲線方式通過php頁面呈現,此軟體主要是用來監控系統性能的軟體,通過曲線可以很容易見到每個節點的工作狀態,對合理調整、分配系統資源,提高系統整體性能起到重要作用。
它是分布式的監控系統,有兩個Daemon,是一個Linux下圖形化監控系統運行性能的軟體,界面美觀、豐富,功能強大。
RRDtool是系統存放和顯示time-series (即網路帶寬、溫度、人數、伺服器負載等) 。並且它提出有用的圖表由處理數據強制執行有些數據密度。
2、Cacti
是一套基於PHP、MySQL、SNMP及RRDTool開發的網路流量監測圖形分析工具,通過snmpget來獲取數據,使用RRDTool繪畫圖形,提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀結 構、host以及任何一張圖,還可以與LDAP結合進行用戶驗證,同時也能自己增加模板,功能非常強大完善。
cacti是用php語言實現的一個軟體,它的主要功能是用snmp服務獲取數據,然後用rrdtool儲存和更新數據,當用戶需要查看數據的時候用rrdtool生成圖表呈現給用戶。因此,snmp和rrdtool是cacti的關鍵。
3、Zenoss
是一款智能監控軟體,允許IT管理員依靠單一的WEB控制台來監控網路架構的狀態和健康度。Zenoss Core同時也是開源的網路與系統管理軟體。
Zenoss提供功能豐富的產品,以監測整個IT基礎設施:
網路 -路由器,交換機,防火牆,接入點;
伺服器 -微軟的Windows , Linux , Unix系統,惠普, NetApp,戴爾;
虛擬化 -完整虛擬機虛擬化基礎架構( VI3 )管理, XenSource監測;
應用領域 -Process(程序),Port,網路應用服務, Web服務,資料庫,中間件,商業企業應用方案 ;
4、Argus
是一個網路連接監控器,可以利用它來定製監控網路中符合某種條件的計算機,例如網路空閑、斷開等。
5、Monit
是一款功能非常豐富的進程、文件、目錄和設備的監測軟體,用於UNIX平台,可以自動修復那些已經停止運行的程序,適合處理那些由於多種原因導致的軟體錯誤。
6、Nagios
是一個監視系統運行狀態和網路信息的監視系統,能監視所指定的本地或遠程主機以及服務,同時提供異常通知功能等Nagios可運行在Linux/Unix平台之上,同時提供一個可選的基於瀏覽器的WEB界面以方便系統管理人員查看網路狀態,各種系統問題,以及日誌等等。
Nagios的主要功能特點:
監視網路服務(SMTP、POP3、HTTP、NNTP、PING等);
監視主機資源(進程、磁碟等);
簡單的插件設計可以輕松擴展Nagios的監視功能;
服務等監視的並發處理;
錯誤通知功能(通過email、pager或其他用戶自定義的方法)。

6. 如何使用top命令監控Linux系統性能

top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器。下面詳細介紹它的使用方法。
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 191272k total, 173656k used, 17616k free, 22052k buffers
Swap: 192772k total, 0k used, 192772k free, 123988k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd
14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top
1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0

統計信息區
前五行是系統整體的統計信息。第一行是任務隊列信息,同 uptime 命令的執行結果。其內容如下:

01:06:48 當前時間
up 1:22 系統運行時間,格式為時:分
1 user 當前登錄用戶數
load average: 0.06, 0.60, 0.48 系統負載,即任務隊列的平均長度。
三個數值分別為 1分鍾、5分鍾、15分鍾前到現在的平均值。

第二、三行為進程和CPU的信息。當有多個CPU時,這些內容可能會超過兩行。內容如下:

Tasks: 29 total 進程總數
1 running 正在運行的進程數
28 sleeping 睡眠的進程數
0 stopped 停止的進程數
0 zombie 僵屍進程數
Cpu(s): 0.3% us 用戶空間佔用CPU百分比
1.0% sy 內核空間佔用CPU百分比
0.0% ni 用戶進程空間內改變過優先順序的進程佔用CPU百分比
98.7% id 空閑CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0% hi
0.0% si

最後兩行為內存信息。內容如下:

Mem: 191272k total 物理內存總量
173656k used 使用的物理內存總量
17616k free 空閑內存總量
22052k buffers 用作內核緩存的內存量
Swap: 192772k total 交換區總量
0k used 使用的交換區總量
192772k free 空閑交換區總量
123988k cached 緩沖的交換區總量。
內存中的內容被換出到交換區,而後又被換入到內存,但使用過的交換區尚未被覆蓋,
該數值即為這些內容已存在於內存中的交換區的大小。
相應的內存再次被換出時可不必再對交換區寫入。

進程信息區
統計信息區域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。

序號 列名 含義
a PID 進程id
b PPID 父進程id
c RUSER Real user name
d UID 進程所有者的用戶id
e USER 進程所有者的用戶名
f GROUP 進程所有者的組名
g TTY 啟動進程的終端名。不是從終端啟動的進程則顯示為 ?
h PR 優先順序
i NI nice值。負值表示高優先順序,正值表示低優先順序
j P 最後使用的CPU,僅在多CPU環境下有意義
k %CPU 上次更新到現在的CPU時間佔用百分比
l TIME 進程使用的CPU時間總計,單位秒
m TIME+ 進程使用的CPU時間總計,單位1/100秒
n %MEM 進程使用的物理內存百分比
o VIRT 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
p SWAP 進程使用的虛擬內存中,被換出的大小,單位kb。
q RES 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
r CODE 可執行代碼佔用的物理內存大小,單位kb
s DATA 可執行代碼以外的部分(數據段+棧)佔用的物理內存大小,單位kb
t SHR 共享內存大小,單位kb
u nFLT 頁面錯誤次數
v nDRT 最後一次寫入到現在,被修改過的頁面數。
w S 進程狀態。
D=不可中斷的睡眠狀態
R=運行
S=睡眠
T=跟蹤/停止
Z=僵屍進程
x COMMAND 命令名/命令行
y WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名
z Flags 任務標志,參考 sched.h

默認情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通過下面的快捷鍵來更改顯示內容。

更改顯示內容
通過 f 鍵可以選擇顯示的內容。按 f 鍵之後會顯示列的列表,按 a-z 即可顯示或隱藏對應的列,最後按回車鍵確定。

按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動。最後按回車鍵確定。

按大寫的 F 或 O 鍵,然後按 a-z 可以將進程按照相應的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉。

命令使用

1. 工具(命令)名稱
top
2.工具(命令)作用
顯示系統當前的進程和其他狀況;
top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前台執行該命令,它將獨占前台,直到用戶終止該程序為止.
比較准確的說,top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最「敏感」的任務列表.該命令可以按CPU使用.內存使用和執行時間
對任務進行排序;而且該命令的很多特性都可以通過互動式命令或者在個人定製文件中進行設定.
3.環境設置
在Linux下使用。
4.使用方法
4.1使用格式
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
4.2參數說明
d 指定每兩次屏幕信息刷新之間的時間間隔。當然用戶可以使用s交互命令來改變之。
p 通過指定監控進程ID來僅僅監控某個進程的狀態。
q該選項將使top沒有任何延遲的進行刷新。如果調用程序有超級用戶許可權,那麼top將以盡可能高的優先順序運行。
S 指定累計模式
s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。
i 使top不顯示任何閑置或者僵死進程。
c 顯示整個命令行而不只是顯示命令名
4.3其他
下面介紹在top命令執行過程中可以使用的一些交互命令。從使用角度來看,熟練的掌握這些命令比掌握選項還重要一些。這些命令都是單字母的,如果在命令行選項中使用了s選項,則可能其中一些命令會被屏蔽掉。
Ctrl+L 擦除並且重寫屏幕。
h或者? 顯示幫助畫面,給出一些簡短的命令總結說明。
k 終止一個進程。系統將提示用戶輸入需要終止的進程PID,以及需要發送給該進程什麼樣的信號。一般的終止進程可以使用15信號;如果不能正常結束那就使用信號9強制結束該進程。默認值是信號15。在安全模式中此命令被屏蔽。
i 忽略閑置和僵死進程。這是一個開關式命令。
q 退出程序。
r 重新安排一個進程的優先順序別。系統提示用戶輸入需要改變的進程PID以及需要設置的進程優先順序值。輸入一個正值將使優先順序降低,反之則可以使該進程擁有更高的優先權。默認值是10。
S 切換到累計模式。
s 改變兩次刷新之間的延遲時間。系統將提示用戶輸入新的時間,單位為s。如果有小數,就換算成m s。輸入0值則系統將不斷刷新,默認值是5 s。需要注意的是如果設置太小的時間,很可能會引起不斷刷新,從而根本來不及看清顯示的情況,而且系統負載也會大大增加。
f或者F 從當前顯示中添加或者刪除項目。
o或者O 改變顯示項目的順序。
l 切換顯示平均負載和啟動時間信息。
m 切換顯示內存信息。
t 切換顯示進程和CPU狀態信息。
c 切換顯示命令名稱和完整命令行。
M 根據駐留內存大小進行排序。
P 根據CPU使用百分比大小進行排序。
T 根據時間/累計時間進行排序。
W 將當前設置寫入~/.toprc文件中。這是寫top配置文件的推薦方法。

7. Linux性能監控與調優工具

除了保證程序的正確性以外,在項目開發中往往還關心性能和穩定性。我們往往要對內核、應用程序或整個系統進行性能優化。在性能優化中常用的手段如下:

  1. 使用top、vmstat、iostat、sysctl等常用工具

top命令用於顯示處理器的活動狀況。在預設情況下,顯示佔用CPU最多的任務,並且每隔5s做一次刷新;vmstat命令用於報告關於內核線程、虛擬內存、磁碟、陷阱和CPU活動的統計信息;iostat命令用於分析各個磁碟的傳輸閑忙狀況;netstat是用來檢測網路信息的工具; sar用於收集、報告或者保存系統活動信息,其中,sar用於顯示數據,sar1和sar2用於收集和保存數據

sysctl是一個可用於改變正在運行中的Linux系統的介面。用sysctl 可以讀取幾白個以上的系統變數,如用sysctl—a可讀取所有變數。

sysctl的實現原理是:所有的內核參數在/proc/sys中形成一個樹狀結構,sysctl系統調用的內核函數是sys_sysctl,匹配項目後,最後的讀寫在do_sysctl_strategy中完成。

2.使用高級分析手段,如OProfile、gprof

OProfile可以幫助用戶識別諸如模塊的佔用時間、循環的展開、高速緩存的使用率低、低效的類型轉換和冗餘操作、錯誤預測轉移等問題。它收集有關處理器事件的信息,其中包括TLB的故障、停機、存儲訪問以及緩存命中和未命中的指令的攫取數量。OProfile支持兩種采樣方式:基於事件的采樣(Event Based)和基於時間的采樣(Time Based)。基於事件的采樣是OProfile只記錄特定事件(比如L2緩存未命中)的發生次數,當達到用戶設定的定值時Oprofile就記錄一下(采一個樣)。這種方式需要CPU內部有性能計數器(Performace Counter))。基於時間的采樣是OProfile藉助OS時鍾中斷的機制,在每個時鍾中斷,OProfile都會記錄一次(采一次樣)。引入它的目的在於,提供對沒有性能計數器的CPU的支持,其精度相對於基於事件的采樣要低,因為要藉助OS時鍾中斷的支持,對於禁用中斷的代碼,OProfile不能對其進行分析。

熱點內容
我的世界國際服伺服器pvp視頻 發布:2025-08-23 05:45:03 瀏覽:833
androidviewgroup滑動 發布:2025-08-23 05:35:44 瀏覽:318
什麼是自動配置驅動 發布:2025-08-23 05:33:23 瀏覽:392
c演算法教程 發布:2025-08-23 05:17:37 瀏覽:13
查看資料庫的表的內容 發布:2025-08-23 05:12:24 瀏覽:996
bbs論壇源碼java 發布:2025-08-23 04:39:21 瀏覽:636
如斯腳本 發布:2025-08-23 04:34:52 瀏覽:593
c語言等腰三角形 發布:2025-08-23 04:31:17 瀏覽:578
氦氣壓縮 發布:2025-08-23 04:28:20 瀏覽:257
android生成隨機數 發布:2025-08-23 04:27:36 瀏覽:752