萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 基於Linux的性能監測比拼和實現攻略

基於Linux的性能監測比拼和實現攻略

class="154097">

  性能監測的基本概念:

  當今企業對關鍵服務效能和穩定性方面的要求不斷提高,所以如何科學以及准確地獲得服務運行方面的綜合信息顯得越來越重要。於是企業在部署服務的同時也都會通過各種各樣的方式和手段來部署對服務以及其外圍環境資源的監測。監測的對象除服務本身之外還包括服務所運行的基本環境,如CPU、內存、I/O、存儲空間、網絡吞吐量等使用情況。通過對這種長期監測所收集到的數據來使用不同的圖形化分析軟件進行整理和分析,我們不難判斷出服務在當前以及長期所運行的情況,並為以後的性能調優以及系統排錯建立參考的依據。

  基於Linux上性能監測的基本原理以及種類:

  在Linux系統上的性能監測所采用的方式基本上有兩種:

  第一種,通過snmp + 數據采集軟件來實現:

  通過在Linux服務器上啟動snmp簡單網絡管理協議來動態采集服務器在軟件甚至硬件各方面的運行參數,這樣服務器就成為了一個被監測的節點。然後在其它的網管工作站上一部分的客戶端軟件能夠采集snmp數據並動態生成可以通過Web頁面訪問的HTML信息,而另外一部分的客戶端軟件本身集成了更強大的數據采集以及繪圖功能,結合到一起可以生成更加直觀和具體的web頁面。這種類型的監測所獲得的數據格式標准而且全面,配置簡單,所以從綜合監測的角度看是一個不錯的方案。

  第二種,通過性能監測命令編寫script + 數據采集軟件來實現:

  在某些情況下snmp協議的配置相對比較麻煩,但是系統本身提供了很多諸如sar,iostat以及free等不同的可以周期和規律性執行的性能監測命令,這就給監測提供了相當的便利。因為可以將這些命令嵌入到腳本中以周期性生成性能監測軟件所需要的數據,最終一樣可以通過這些數據繪制出直觀的統計圖。這種類型的監測所獲得的信息更加靈活和精確,對於一些熟悉scripts編程的用戶來說,使用起來相當得心應手。

  除此之外,利用命令監測可以無限制擴展,用戶可以通過各種管道來獲得和定制自己的監測腳本。所以綜上所述,這兩種監測的方案各有其優勢。因此我們會在下文中針對兩種方案各提供一部分案例由簡單到復雜,一步步對各種方案的操作方法予以說明和講解。

  在更多的情況下很多企業都傾向於選擇通過SNMP來獲取服務器運行的各種信息,因此我們花點時間來介紹一下SNMP協議的基本概念以及工作原理。

  簡單網絡管理協議SNMP是一種廣泛用於監測網絡設備(計算機、路由器)甚至其它設備(例如UPS)的網絡協議,也是專門設計用於在IP網絡管理網絡節點(包括服務器、工作站、路由器、交換機及 HUBS 等)的一種標准,屬於應用層協議。SNMP使網絡管理員能夠管理網絡效能,發現並解決網絡問題以及規劃網絡增長。通過 SNMP 接收隨機消息(及事件報告),網絡管理系統將獲知網絡出現的各種問題。

  SNMP 管理的網絡有三個主要組成部分:被管理的設備(Managed Device)、代理(Agent)和網絡管理系統(Network Management Station即NMS)。

  被管理的設備是一個網絡節點,包含ANMP代理並處在管理網絡之中,有時也稱為網絡單元,用於收集並存儲網絡信息,通過SNMP、NMS能得到這些信息。被管理的設備可能是路由器、訪問服務器,交換機和網橋、HUBS、主機或打印機等。

  SNMP代理是被管理設備上的一個網絡管理軟件模塊。SNMP代理擁有本地的相關管理信息,並將它們轉換成與SNMP兼容的格式。

  NMS運行應用程序以實現監測被管理設備。此外,NMS還為網絡管理提供了大量的處理程序及必須的儲存資源。任何受管理的網絡至少需要一個或多個NMS。

  目前,SNMP有3種不同的版本:SNMPv1、SNMPv2和SNMPv3。第1版和第2版沒有太大差距,但SNMPv2是增強版本,包含了其它協議操作。前兩種snmp協議主要使用基於團體名稱(community)的方式來實現網管工作站對代理的訪問認證,與前兩種相比SNMPv3則包含更多安全和遠程配置,在認證方面可以使用基於某種對稱和非對稱加密協議來加密的用戶名和密碼來實現網管工作站對代理的訪問認證。而且為解決不同SNMP版本間的不兼容問題,RFC3584定義了三者共存策略。

  另外SNMP協議包括了四種基本的動作:

  Get:如果網絡管理系統需要獲得被監測的設備信息,則會執行get動作。

  GetNext:如果要獲得的某個項目信息是一個項目列表中多個項目之一,網絡管理系統會執行getnext獲得相關所有項目信息。

  Set:網絡管理系統使用set命令來改變被管理項目的某個值。

  Trap:如果被管理設備需要通知網絡管理系統某些信息,需要執行trap命令。

  最後在Red Hat中的SNMP相關包,在該包中提供了MIB,其信息文件是/usr/share/snmp/mibs。MIB是關於某個設備層次化的數據庫(Management Information Base)。對於這個設備的每個值都采用唯一的Object Identifier即OID表示,OID格式包括可用名稱,前綴或者數字。

  如果在系統中安裝了net-snmp-utils包,則snmp中的MIB和OID信息可以通過snmptranslate命令來顯示出整個MIB樹以及其上OID的信息,snmptranslate主要用於轉換以文字名稱或者數字ID顯示的OID信息以及列出snmp的MIB結構樹。

copyright © 萬盛學電腦網 all rights reserved