關(guān)于我們

質量為(wèi)本、客戶為(wèi)根、勇于拼搏、務(wù)實創新(xīn)

< 返回新(xīn)聞公共列表

服務(wù)器(qì)監控的知識

發布時(shí)間(jiān):2019-08-22 13:55:38

監控的主要目的是為(wèi)了(le)将一(yī)些(xiē)重要指标采樣記錄下(xià)來(lái),一(yī)旦這(zhè)些(xiē)指标發生(shēng)較大變化(huà),可以配合報(bào)警系統将問題反饋到負責人(rén)那。監控的點可以很細緻,也(yě)可以隻選主要的指标。

日志監控

01



業務(wù)邏輯型的監控主要體(tǐ)現(xiàn)在日志上(shàng),做足了(le)日志記錄的功夫之後,如(rú)何将日志應用起來(lái)是個(gè)問題。通過監控異常日志文件的變動,将新(xīn)增的異常按異常類型和數量反映出來(lái)。某些(xiē)異常與具體(tǐ)的某個(gè)子(zǐ)系統相關(guān),監控出現(xiàn)的某個(gè)異常多半能(néng)反映出子(zǐ)系統的狀态。


除了(le)異常日志的監控外,對于訪問日志的監控也(yě)能(néng)體(tǐ)現(xiàn)出實際的業務(wù)QPS值。觀察QPS的表現(xiàn)能(néng)夠檢查業務(wù)在時(shí)間(jiān)上(shàng)的分(fēn)布。


此外,從訪問日志中也(yě)能(néng)實現(xiàn)PV和UV的監控。同QPS值一(yī)樣,通過對PV/UV的監控,可以很好(hǎo)(hǎo)地知道應用的使用者們的習慣、預知訪問高峰等。


響應時(shí)間(jiān)

02



響應時(shí)間(jiān)也(yě)是一(yī)個(gè)需要監控的點。一(yī)旦系統的某個(gè)子(zǐ)系統出現(xiàn)異常或者性能(néng)瓶頸,将會導緻系統的響應時(shí)間(jiān)變長。響應時(shí)間(jiān)可以在Nginx一(yī)類的反向代理(lǐ)上(shàng)監控,也(yě)可以通過應用自行産生(shēng)的訪問日志來(lái)監控。健康的系統響應時(shí)間(jiān)應該是波動較小的、持續均衡的。

進程監控

03



監控日志和響應時(shí)間(jiān)都能(néng)較好(hǎo)(hǎo)地監控到系統的狀态,但(dàn)是它們的前提是系統是運行狀态的,所以監控進程是比前兩者更為(wèi)緊要的任務(wù)。監控進程一(yī)般是檢查操作(zuò)系統中運行的應用進程數,比如(rú)對于采用多進程架構的Web應用,就(jiù)需要檢查工作(zuò)進程的數量,如(rú)果低(dī)于預估值,就(jiù)應當發出報(bào)警聲。


磁盤監控

04



磁盤監控主要是監控磁盤的用量。由于日志頻繁寫的緣故,磁盤空間(jiān)漸漸被用光。一(yī)旦磁盤不夠用,将會引發系統的各種問題。給磁盤的使用量設置一(yī)個(gè)上(shàng)限,一(yī)旦磁盤用量超過警戒值,服務(wù)器(qì)的管理(lǐ)者就(jiù)應該整理(lǐ)日志或清理(lǐ)磁盤了(le)。


内存監控

05



對于Node而言,一(yī)旦出現(xiàn)内存洩漏,不是那麽容易排查的。監控服務(wù)器(qì)的内存使用狀況,可以檢查應用中是否存在内存洩漏的狀況。如(rú)果内存隻升不降,那麽鐵定存在内存洩漏問題。健康的内存使用應當是有升有降,在訪問量大的時(shí)候上(shàng)升,在訪問量回落的時(shí)候,占用量也(yě)随之回落。


如(rú)果進程中存在内存洩漏,又一(yī)時(shí)沒有排查解決,有一(yī)種方案可以解決這(zhè)種狀況。這(zhè)種方案應用于多進程架構的服務(wù)集群,讓每個(gè)工作(zuò)進程指定服務(wù)多少次請求,達到請求數之後進程就(jiù)不再服務(wù)新(xīn)的連接,主進程啓動新(xīn)的工作(zuò)進程來(lái)服務(wù)客戶,舊的進程等所有連接斷開後就(jiù)退出。這(zhè)樣即使存在内存洩漏的風(fēng)險,也(yě)能(néng)有效地規避内存洩漏帶來(lái)的影響。但(dàn)這(zhè)屬于規避問題,隻解決了(le)問題的表象,不推薦使用。


總而言之,監控内存并長時(shí)間(jiān)觀察是防止系統出現(xiàn)異常的好(hǎo)(hǎo)方法。如(rú)果突然出現(xiàn)内存異常,也(yě)能(néng)夠追蹤到是近期的哪些(xiē)代碼改動導緻的問題。


CPU占用監控

06



服務(wù)器(qì)的CPU占用監控也(yě)是必不可少的項,CPU的使用分(fēn)為(wèi)用戶态、内核态、IOWait等。如(rú)果用戶态CPU使用率較高,說(shuō)明服務(wù)器(qì)上(shàng)的應用需要大量的CPU開銷;如(rú)果内核态CPU使用率較高,說(shuō)明服務(wù)器(qì)花費大量時(shí)間(jiān)進行進程調度或者系統調用;IOWait使用率則反應的是CPU等待磁盤I/O操作(zuò)。


CPU的使用率中,用戶态小于70%、内核态小于35%且整體(tǐ)小于70%時(shí),處于健康狀态。監控CPU占用情況,可以幫助分(fēn)析應用程序在實際業務(wù)中的狀況。合理(lǐ)設置監控阈值能(néng)夠很好(hǎo)(hǎo)地預警。


CPU load監控

07



CPU load又稱CPU平均負載,它用來(lái)描述操作(zuò)系統當前的繁忙程度,可以簡單地理(lǐ)解為(wèi)CPU在單位時(shí)間(jiān)内正在使用和等待使用CPU的平均任務(wù)數。它有3個(gè)指标,即1分(fēn)鍾的平均負載、5分(fēn)鍾的平均負載、15分(fēn)鍾的平均負載。CPU load過高說(shuō)明進程數量過多,這(zhè)在Node中可能(néng)體(tǐ)現(xiàn)在用子(zǐ)進程模塊反複啓動新(xīn)的進程。監控該值可以防止意外産生(shēng)。


I/O負載

08



I/O負載指的主要是磁盤I/O。反應的是磁盤上(shàng)的讀寫情況,對于Node編寫的應用,主要是面向網絡服務(wù),是故不太可能(néng)出現(xiàn)I/O負載過高的情況,大多數的I/O壓力自于數據庫。不管Node進程是否與數據庫或其他I/O密集的應用共處相同的服務(wù)器(qì),我們都應監控該值以防萬一(yī)。


網絡監控

09



雖然網絡流量監控的優先級沒有上(shàng)述項目那麽高,但(dàn)還是需要對流量進行監控并設置上(shàng)限值。即便應用突然受到用戶的青睐,流量暴漲時(shí)也(yě)能(néng)通過數值感知到網站(zhàn)的宣傳是否有效。一(yī)旦流量超過警戒值,開發者就(jiù)應當找出流量增長的原因。對于正常增長,應當評估是否該增加硬件設備來(lái)為(wèi)更多用戶提供服務(wù)。網絡流量監控的兩個(gè)主要指标是流入流量和流出流量。


應用狀态監

10



除了(le)這(zhè)些(xiē)硬性需要檢測的指标外,應用還應當提供一(yī)種機制來(lái)反饋其自身(shēn)的狀态信息,外部監控将會持續性地調用應用的反饋接口來(lái)檢查它的健康狀态。


最簡單的狀态反饋就(jiù)是給監控響應一(yī)個(gè)時(shí)間(jiān)戳,監控方檢查時(shí)間(jiān)戳是否正常即可。


健壯一(yī)些(xiē)的狀态響應則是将應用的依賴項的狀态打印出來(lái),如(rú)數據庫連接是否正常、緩存是否正常等。



/template/Home/Zkeys/PC/Static