基于Linux的性能監(jiān)測比拼和實現(xiàn)攻略
性能監(jiān)測的基本概念:
當今企業(yè)對關鍵服務效能和穩(wěn)定性方面的要求不斷提高,所以如何科學以及準確地獲得服務運行方面的綜合信息顯得越來越重要。于是企業(yè)在部署服務的同時也都會通過各種各樣的方式和手段來部署對服務以及其外圍環(huán)境資源的監(jiān)測。監(jiān)測的對象除服務本身之外還包括服務所運行的基本環(huán)境,如CPU、內(nèi)存、I/O、存儲空間、網(wǎng)絡吞吐量等使用情況。通過對這種長期監(jiān)測所收集到的數(shù)據(jù)來使用不同的圖形化分析軟件進行整理和分析,我們不難判斷出服務在當前以及長期所運行的情況,并為以后的性能調(diào)優(yōu)以及系統(tǒng)排錯建立參考的依據(jù)。
基于Linux上性能監(jiān)測的基本原理以及種類:
在Linux系統(tǒng)上的性能監(jiān)測所采用的方式基本上有兩種:
第一種,通過snmp + 數(shù)據(jù)采集軟件來實現(xiàn):
通過在Linux服務器上啟動snmp簡單網(wǎng)絡管理協(xié)議來動態(tài)采集服務器在軟件甚至硬件各方面的運行參數(shù),這樣服務器就成為了一個被監(jiān)測的節(jié)點。然后在其它的網(wǎng)管工作站上一部分的客戶端軟件能夠采集snmp數(shù)據(jù)并動態(tài)生成可以通過Web頁面訪問的HTML信息,而另外一部分的客戶端軟件本身集成了更強大的數(shù)據(jù)采集以及繪圖功能,結(jié)合到一起可以生成更加直觀和具體的web頁面。這種類型的監(jiān)測所獲得的數(shù)據(jù)格式標準而且全面,配置簡單,所以從綜合監(jiān)測的角度看是一個不錯的方案。
第二種,通過性能監(jiān)測命令編寫script + 數(shù)據(jù)采集軟件來實現(xiàn):
在某些情況下snmp協(xié)議的配置相對比較麻煩,但是系統(tǒng)本身提供了很多諸如sar,iostat以及free等不同的可以周期和規(guī)律性執(zhí)行的性能監(jiān)測命令,這就給監(jiān)測提供了相當?shù)谋憷R驗榭梢詫⑦@些命令嵌入到腳本中以周期性生成性能監(jiān)測軟件所需要的數(shù)據(jù),最終一樣可以通過這些數(shù)據(jù)繪制出直觀的統(tǒng)計圖。這種類型的監(jiān)測所獲得的信息更加靈活和精確,對于一些熟悉scripts編程的用戶來說,使用起來相當?shù)眯膽帧?/p>
除此之外,利用命令監(jiān)測可以無限制擴展,用戶可以通過各種管道來獲得和定制自己的監(jiān)測腳本。所以綜上所述,這兩種監(jiān)測的方案各有其優(yōu)勢。因此我們會在下文中針對兩種方案各提供一部分案例由簡單到復雜,一步步對各種方案的操作方法予以說明和講解。
在更多的情況下很多企業(yè)都傾向于選擇通過SNMP來獲取服務器運行的各種信息,因此我們花點時間來介紹一下SNMP協(xié)議的基本概念以及工作原理。
簡單網(wǎng)絡管理協(xié)議SNMP是一種廣泛用于監(jiān)測網(wǎng)絡設備(計算機、路由器)甚至其它設備(例如UPS)的網(wǎng)絡協(xié)議,也是專門設計用于在IP網(wǎng)絡管理網(wǎng)絡節(jié)點(包括服務器、工作站、路由器、交換機及 HUBS 等)的一種標準,屬于應用層協(xié)議。SNMP使網(wǎng)絡管理員能夠管理網(wǎng)絡效能,發(fā)現(xiàn)并解決網(wǎng)絡問題以及規(guī)劃網(wǎng)絡增長。通過 SNMP 接收隨機消息(及事件報告),網(wǎng)絡管理系統(tǒng)將獲知網(wǎng)絡出現(xiàn)的各種問題。
SNMP 管理的網(wǎng)絡有三個主要組成部分:被管理的設備(Managed Device)、代理(Agent)和網(wǎng)絡管理系統(tǒng)(Network Management Station即NMS)。
被管理的設備是一個網(wǎng)絡節(jié)點,包含ANMP代理并處在管理網(wǎng)絡之中,有時也稱為網(wǎng)絡單元,用于收集并存儲網(wǎng)絡信息,通過SNMP、NMS能得到這些信息。被管理的設備可能是路由器、訪問服務器,交換機和網(wǎng)橋、HUBS、主機或打印機等。
SNMP代理是被管理設備上的一個網(wǎng)絡管理軟件模塊。SNMP代理擁有本地的相關管理信息,并將它們轉(zhuǎn)換成與SNMP兼容的格式。
NMS運行應用程序以實現(xiàn)監(jiān)測被管理設備。此外,NMS還為網(wǎng)絡管理提供了大量的處理程序及必須的儲存資源。任何受管理的網(wǎng)絡至少需要一個或多個NMS。
目前,SNMP有3種不同的版本:SNMPv1、SNMPv2和SNMPv3。第1版和第2版沒有太大差距,但SNMPv2是增強版本,包含了其它協(xié)議操作。前兩種snmp協(xié)議主要使用基于團體名稱(community)的方式來實現(xiàn)網(wǎng)管工作站對代理的訪問認證,與前兩種相比SNMPv3則包含更多安全和遠程配置,在認證方面可以使用基于某種對稱和非對稱加密協(xié)議來加密的用戶名和密碼來實現(xiàn)網(wǎng)管工作站對代理的訪問認證。而且為解決不同SNMP版本間的不兼容問題,RFC3584定義了三者共存策略。
另外SNMP協(xié)議包括了四種基本的動作:
Get:如果網(wǎng)絡管理系統(tǒng)需要獲得被監(jiān)測的設備信息,則會執(zhí)行g(shù)et動作。
GetNext:如果要獲得的某個項目信息是一個項目列表中多個項目之一,網(wǎng)絡管理系統(tǒng)會執(zhí)行g(shù)etnext獲得相關所有項目信息。
Set:網(wǎng)絡管理系統(tǒng)使用set命令來改變被管理項目的某個值。
Trap:如果被管理設備需要通知網(wǎng)絡管理系統(tǒng)某些信息,需要執(zhí)行trap命令。
最后在Red Hat中的SNMP相關包,在該包中提供了MIB,其信息文件是/usr/share/snmp/mibs。MIB是關于某個設備層次化的數(shù)據(jù)庫(Management Information Base)。對于這個設備的每個值都采用唯一的Object Identifier即OID表示,OID格式包括可用名稱,前綴或者數(shù)字。
如果在系統(tǒng)中安裝了net-snmp-utils包,則snmp中的MIB和OID信息可以通過snmptranslate命令來顯示出整個MIB樹以及其上OID的信息,snmptranslate主要用于轉(zhuǎn)換以文字名稱或者數(shù)字ID顯示的OID信息以及列出snmp的MIB結(jié)構(gòu)樹。
相關文章:
1. 在Linux上使用xargs命令的詳細教程2. Pear OS 8——仿蘋果風格的免費Linux操作系統(tǒng)下載及使用3. Linux下RPM安裝目錄怎么修改4. Linux/Ubuntu Git從安裝到使用的方法步驟5. Linux X-Window顯卡配置通用解決方法6. Mac虛擬機安裝Linux Ubuntu教程7. CentOS 6.6系統(tǒng)怎么安裝?CentOS Linux系統(tǒng)安裝配置圖解教程8. 在vmware虛擬機中安裝Linux系統(tǒng)CentOS7詳細教程9. 新用戶不可不知的Linux命令10. Linux用VMWare虛擬機無法全屏怎么解決

網(wǎng)公網(wǎng)安備