萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux服務器運行狀況全面監測(上)(圖)

Linux服務器運行狀況全面監測(上)(圖)

class="152906">   隨著Linux應用的日益廣泛,有大量的網絡服務器使用Linux操作系統。為了全面衡量網絡運行狀況,就需要對網絡狀態做更細致、更精確的測量。SNMP協議的制訂為互聯網測量提供了有力支持。計算機系統是

  由軟件系統硬件系統組成的,檢測硬件狀態對於保障整個系統的穩定是非常重要的。不論操作系統是使用Linux、還是Windows,一旦硬件出現故障,那麼整個系統的安全就嚴重了。這裡我們主要監測Linux服務器的CPU、硬盤、內存、網絡接口、主板等硬件的工作狀態。

一、/proc文件系統特點

  Linux 系統向管理員提供了非常好的方法,使他們可以在系統運行時更改內核,而不需要重新引導內核系統。這是通過 /proc 虛擬文件系統實現的。/proc 文件虛擬系統是一種內核和內核模塊用來向進程 (process) 發送信息的機制 (所以叫做 /proc)。這個偽文件系統讓你可以和內核內部數據結構進行交互,獲取 有關進程的有用信息,在運行中 (on the fly) 改變設置 (通過改變內核參數)。 與其他文件系統不同,/proc 存在於內存之中而不是硬盤上。不用重新啟動而去看 CMOS ,就可以知道系統信息。這就是 /proc 的妙處之一。/proc 目錄裡主要文件內容,見表-1
;
  每個Linux系統根據軟硬件不同/proc 虛擬文件系統的內容也有些差異。/proc 虛擬文件系統有三個很重要的目錄:net,scsi和sys。Sys目錄是可寫的,可以通過它來訪問或修改內核的參數,而net和scsi則依賴於內核配置。例如,如果系統不支持scsi,則scsi目錄不存在。除了以上介紹的這些,還有的是一些以數字命名的目錄,它們是進程目錄。net目錄包括多個 ASCII 格式的網絡偽文件, 描述了網絡層的部分情況,可以用arp 、netstat、route等命令來查詢這些文件。除了以上介紹的這些,還有的是一些以數字命名的目錄,它們是進程目錄。系統中當前運行的每一個進程都有對應的一個目錄在/proc下,以進程的 PID號為目錄名,它們是讀取進程信息的接口。而self目錄則是讀取進程本身的信息接口,是一個link。Proc文件系統的名字就是由之而起。

二、proc文件系統主要實現的五大功能:

  1. 進程信息:對於系統中的任何一個進程來說,在proc的子目錄裡都有一個同名的進程ID。你將可以找到以下的信息:cmdline, mem, root, stat, statm, 以及status。某些信息只有超級用戶可見,例如進程根目錄。到每一個單獨的含有現有進程信息的進程有一些可用的專門鏈接。對於系統裡的任何一個進程來說,都有一個單獨的自鏈接指向進程信息。它的用處就是從進程中獲取命令行信息。

  2. 系統信息:如果你需要了解整個系統信息,你也可以從/proc/stat中獲得。它包括:包括CPU占用、磁盤空間、內存頁、內存對換、全部中斷、接觸開關以及上次系統自舉時間。

  3. CPU信息:利用/proc/cpuinfo文件,你可以獲得中央處理器當前的准確信息。

  4. 負載信息: /proc/loadavg文件包含了系統負載信息。

  5. 系統內存信息:meminfo文件包含了系統內存的詳細信息。它顯示了物理內存的數量,可用交換空間的數量,空閒內存的數量等等。

  1.;;監測服務器全面統計狀態

  要監測全面統計狀態,使用命令,結果見圖1:

  #cat/proc/stat



圖1 系統全面統計狀態



  以上數字依次代表:

  上下文切換數量;中斷總量;進頁面總數;出頁面總數;進程總數;

  換入總數;換出總數;合計CPU空閒時間;合計CPU nice時間;合計CPU系統時間;

  合計CPU用戶時間。

  同時提供對每個CPU的:單個CPU空閒時間;單個CPU nice時間;單個CPU系統時間;單個CPU用戶時間。

  以及對每個磁盤驅動器的如下數據:

  單個磁盤塊讀;單個磁盤塊寫;單個磁盤I/O總數;單個磁盤I/O讀;單個磁盤I/O寫。

  2.監測網絡流量

  如果要了解網絡流量,可以使用命令:結果見圖1。

  #cat /proc/net/dev


;;;
圖2網絡接口數據包流量



  以上數字依次代表:接收到的字節;接收到的壓縮字節;收到的誤碼數;收到的漏失誤碼;收到的FIFO誤碼;收到的幀誤碼;收到的多播誤碼;收到的總包數;已傳輸的字節;已傳輸的壓縮字節;傳輸誤碼總數;傳輸載波誤碼;傳輸沖突誤碼;傳輸漏失誤碼;傳輸FIFO誤碼;傳輸的總包數。

  3.使用uptime命令

  使用uptime命令可以查看系統負載,系統平均負載被定義為在特定時間間隔內運行隊列中的平均進程數目。如果一個進程滿足以下條件則其就會位於運行隊列中:沒有在等待I/O操作的結果、它沒有主動進入等待狀態(也就是沒有被調用、沒有被停止。

  # uptime

  9:51pm up 3 days, 4:43, 4 users, load average:6.02, 5.90, 3.94

  上面命令顯示示最近1 分鐘內系統的平均負載是6.02,在最近5分鐘內系統的平均負載是5.90,在最近的15 分鐘內系統的平均負載是3.94。一共四個用戶。通常來說只要每個CPU的當前活動進程數不大於3那幺系統的性能就是良好的,如果每個CPU的任務數大於5,那幺就表示這台機器的性能有嚴重問題。對於上面的例子來說,由於筆者系統使用是雙CPU,那幺其每個CPU的當前任務數為:6.02/2=3.01。這表示該服務器的性能是可以接受的。

 

[ 本帖最後由 孤雲野鶴 於 2005-12-28 16:02 編輯 ]

copyright © 萬盛學電腦網 all rights reserved