監控系統元件

2022-04-07 03:54:59 字數 3740 閱讀 8473

監控系統元件

在進行效能監控時,應該監控系統的四個基本元件:

l處理器檢查其利用率及達到了什麼樣的峰值。

l記憶體檢查記憶體被佔用量,及其可用量。

l磁碟檢查磁碟空間可用量,磁碟空間是如何被占用的,還有哪些需求需要占用磁碟空間,還需要了解磁碟讀取速度(響應時間)。

l網路檢查網路通訊的吞吐量、延遲和錯誤率。

處理器

監控cpu 以確保系統不存在失控程序,並確保cpu 週期在各執行程序中平均分配。要做到這一點,方法之一是呼叫正在執行的程序列表,然後確定每個程序所佔cpu 的百分比。另外乙個方法是檢測系統程序的平均負載。大多數作業系統提供了cpu 效能的多種檢視。程序是指在l.inux 或unix 作業系統上執行的乙個工作單元。乙個程式可能同時執行乙個或多個程序。多執行緒應用程式,如mysql,通常以多程序的形式出現在作業系統中。

當cpu 處在高效能負載下且爭用激烈時,系統將執行緩慢,甚至出現宕機情況。在這種情況下必須減少程序的數量或者減少那些消耗較多cpu 時間的程序的cpu 使用率。然而一定要監控cpu,並確認系統問題確實是由cpu 的高使用率導致的——系統執行緩慢更有可能是記憶體爭用導致的,下一節將討論這個問題。

cpu

超載的一些常見的解決方法是:

提供新伺服器執行程序這當然是最好的辦法,但是新伺服器需要資金。有經驗的系統管理員通常可以找到其他的方法去減少cpu 的使用率,尤其是當組織更願意花時間而不是花錢在這件事情上時。

刪除不必要的程序大量系統的後台執行程序可能在某些場合有用,但大多數時候會使系統陷入癱瘓。然而,作為乙個系統管理員,必須非常了解作業系統,以確定哪些程序是不必要的。

殺死失控的程序當效能問題間歇地或偶爾出現時,可能是由有缺陷的應用程式導致的,這些失控的程序往往是罪魁禍首。倘若你使用可控的或有序的方法不能夠停止失控的程序,可能需要使用強制退出對話方塊或使用命令列強制性地終止這個程序。

優化應用程式有些應用程式時常會占用超過其實際需要的cpu 時間或其他資源。設計糟糕的sql語句經常拖累了資料庫系統。

較低的程序優先順序有些程序可以在後台作業執行,例如報表生成器,而且它們可以執行得更慢,以給互動程序騰出空間。

重新安排程序也許有些報表生成程序可以在系統負荷較低的夜間執行。

占用太多cpu 時間的程序被稱為cpu-bound 或processor-bound,這意味著它們不會為等待i/o 暫停自己,也不能被交換出記憶體。

如果你發現cpu 沒有被爭用,此時僅有少數幾個程序在執行或者不存在消耗大量cpu時間的程序,那麼此時很可能是其他地方導致效能問題的發生:如等待磁碟i/o、記憶體不足、過度頁交換等。

記憶體

監控記憶體是為了確保應用程式不要請求過多的記憶體,因為請求過多的記憶體會浪費系統管理記憶體的時間。作業系統從最初使用有限的隨機訪問儲存器(ram 或主記憶體),已經發展到使用磁碟儲存器來儲存未使用的部分或主記憶體頁面,這種技術被稱為分頁或交換,可以儲存懸停程序的記憶體,並在程序被啟用時將被儲存的記憶體恢復出來,這樣系統在同一時間內比主記憶體系統負擔的程序更多。雖然記憶體塊在記憶體與磁碟間交換的代價相對較高(與直接訪問主記憶體相比,比較耗時),但是現代作業系統在這方面能夠做到很快,那麼這種缺陷就不是問題了,除非它無法使處理器和磁碟的執行速度跟上需求。

然而作業系統可能定期**較高水平的交換記憶體。一定要測量一段時間內的記憶體使用率,確保不存在常規清除操作。

在高分頁期,記憶體不足有可能是因為失控程序占用太多的記憶體或者系統執行了過多的程序以至於占用過多的記憶體。這種高分頁被稱為thrashing,與cpu 資源爭用類似。消耗過多記憶體的程序被稱為memory-bound。

在處理記憶體效能問題時,自然想到的處理方法是增加更多的記憶體。雖然這樣可以解決問題,但記憶體也有可能在各子系統間分配不均勻。

在這種情況下你有幾件事情可以做,可以分配不同數量的記憶體給系統的元件(如核心或檔案系統),或者分配不同數量的記憶體給允許進行記憶體調整的各種應用程式(如mysql),還可以更改子系統的分頁優先順序,這樣可以使作業系統更早開始分頁。

調整伺服器記憶體子系統時要小心,請務必參考關於提高特定作業系統效能的文件或書籍。

如果在監控記憶體時發現系統的分頁並不頻繁,而系統效能仍存在問題,此時,效能問題可能跟其他的子系統有關。

磁碟

監控磁碟使用率是為了確保系統擁有足夠的可用磁碟空間且擁有足夠的i/o 頻寬,以使程序執行時不會出現明顯的延時。可以使用per-process 或overall transfer 讀取磁碟的傳輸速率來衡量以上情況。per-process

傳輸速率是指單個程序可以讀寫的資料量。overalltransfer 傳輸速率是指讀寫磁碟資料的最大頻寬。一些有多個磁碟控制器的系統可能單獨衡量每個磁碟控制器的overall transfer 傳輸速率。

如果有乙個或更多的程序消耗過多的最大磁碟傳輸率,將會出現效能問題。這就像程序消耗太多的cpu 週期一樣,同樣會對系統的其餘程序產生不利的影響:它將「餓死」其他程序,迫使它們等待更長的磁碟訪問時間。

消耗太多磁碟傳輸率的程序被稱為disk-bound,也就是說它訪問磁碟的頻率大於磁碟傳輸率能夠提供的份額。如果能夠減少disk-bound

程序給i/o 系統帶來的壓力,將會為其他程序騰出更多的頻寬。

一種滿足執行大量的磁碟i/o

的程序需要的方法是增加檔案系統的塊大小,從而使大型傳輸更有效,這樣還可減少由disk-bound 程序帶來的系統開銷。然而,這可能會使其他程序執行得更慢。

當在只有乙個控制器或磁碟的伺服器上優化檔案系統時需要謹慎行事。請務必參考提高具體作業系統效能的文件或書籍。

如果資源充足,那麼可以新增新的磁碟控制器和磁碟陣列來處理磁碟爭用,將其中乙個disk-bound 程序的相關資料移到新的磁碟控制器上。另一種處理磁碟爭的方法是將diskbound程序移到另外乙個使用率較低的伺服器上。最後一種方法是在某些情況下,通過公升級磁碟系統來使系統執行更快,從而增加磁碟的頻寬。

至於先從**開始優化或者哪種優化方法是最好的,有不同觀點。但是我們認為:

如果需要執行大量的程序,就需要擴大磁碟傳輸速率或將程序分布在不同的磁碟整列或系統上。

如果需要執行少數幾個資料訪問量大的程序,就需要通過增加檔案系統的塊大小來增加單個程序的傳輸速率。

可能需要在這兩個解決方案之間取得平衡,通過將有些程序移到其他系統上的方法來滿足獨特的混合程序(mix of processes)。

網路子系統

監控網路介面以確保系統擁有足夠的頻寬,並確保正在傳送或接收的資料具有高質量。

有些程序試圖讀寫的資料超過網路配置或硬體所允許的範圍,以至於它們消耗了過多的網路頻寬,這樣的程序被稱為network-bound。這類程序為了避免自己發生延時而阻止其他程序訪問充足的網路頻寬。

網路頻寬問題通常表現為完全占用網路介面的最大頻寬,可以通過給不同程序分配特定網路埠的方式來解決這個問題。

網路資料質量問題通常表現為在網路介面上遭遇大量錯誤。幸運的是,作業系統和資料傳輸應用程式通常採用checksumming 或其他一些演算法來檢測這類錯誤,但是重發將給網路和作業系統帶來沉重負擔。解決這個問題可能需要將一些應用程式移到同一網路的其他系統上,或者可能需要安裝額外的網絡卡,而且在改變網路硬體、重新配置網路協議或者將系統移動到網路中不同的子網後,通常需要進行診斷分析。

當提起程序時你可能聽到i/o-bound

或i/o-starved 這樣的術語。這通常是指程序占用太多的磁碟或網路頻寬。

本文節選自《

高可用mysql:構建健壯的資料中心》一書

圖書詳細資訊:

監控系統元件

監控系統元件 在進行效能監控時,應該監控系統的四個基本元件 l 處理器檢查其利用率及達到了什麼樣的峰值。l 記憶體檢查記憶體被佔用量,及其可用量。l 磁碟檢查磁碟空間可用量,磁碟空間是如何被占用的,還有哪些需求需要占用磁碟空間,還需要了解磁碟讀取速度 響應時間 l 網路檢查網路通訊的吞吐量 延遲和錯...

Kafka監控元件大全

本文使用burrow和telegraf搭建kafka的監控體系。然後,簡單介紹一下其他的,比如kafka manager,kafka eagle,confluent control center等。burrow 依賴路徑 使用burrow拉取kafka的監控資訊,然後通過telegraf進行收集,最...

機房監控系統

機房監控系統 本系統採用了winfx3.0中的wpf技術,突破原有的視覺展現瓶頸,重構出了視覺效果極佳的it運維管理場景,給維護人員提供了一種直觀 全方位的裝置監控環境,能夠快速準確的發現 定位裝置 本系統採用了winfx3.0中的wpf技術,突破原有的視覺展現瓶頸,重構出了視覺效果極佳的it運維管...