快取檢測
通過使用快取檢測機制可以顯著改善Nagios監控邏輯的效能,快取檢測能夠為Nagios在按要求檢測或者稱為經要求檢測(on-demand)上提供效能上的改進,具體的做法就是通過使用被檢測主機或者服務相關的最近檢測結果來替代實際的主機和服務的檢測。
換言之,快取檢測的作用是當Nagios發現可以利用最近一次檢查結果來替代這次檢測時,那麼Nagios將會放棄執行這次主機與服務的檢測。
圖 解:
快取檢測僅適用於經要求檢測
對於定期的主機和服務檢測,如果使用快取檢測機制將不會有效能上的提高,因此在這種情況下不能使用快取檢測機。快取檢測(cached check)僅對於經要求檢測檢測的主機檢測和服務檢測提高效能有用。
定期檢測用於確保主機和服務狀態能夠有規律的更新,這種檢測的結果將來可能更多會被用於快取檢測使用。
經要求主機檢測發生的情況:
u 當與主機相關的服務發生改變;
u 由於網路主機可達性邏輯的需要;
u 由於預測主機依賴性檢測的需要;
經要求服務檢測發生的情況:
u 由於預測服務依賴性檢測的需要;
需要注意的是除非使用服務依賴性,否則Nagios將不能夠使用快取檢測結果來提高檢測效能。對於快取主機檢測在效能上會有很大的提高,每個主機監控都能夠從中獲益。
快取檢測的工作原理
當Nagios需要執行經要求(或者說是按照需要)的主機或者服務檢測時,那麼Nagios將會做出是否使用快取檢測結果,或者是否需要通過執行外掛進行實際檢測,到底是進行哪一個,它的根據是檢視最後X秒內發生的最後一次主機或者服務檢查,這裡的X是主機或者服務檢查的門限值。如果最後一次被執行的檢測在快取檢測的門限值內,那麼Nagios將會使用這個最後的主機或者服務檢測結果,並且不再進行新的檢測。如果主機或者服務尚未被檢測,或者是最後一次檢查超出了檢查的門限值(或者稱為時限值,由指令cached_host_check_horizon或者cached_service_check_horizon設定),那麼Nagios將會使用外掛執行一次新的主機或者服務檢查。
圖 解:
Nagios執行經要求檢查的目的是想知道當前執行服務和主機在某一個特定時刻的狀態。利用快取的檢查的目的是確定當前主機/服務狀態“足夠好”,而並沒有真正的進行實際意義上的重新檢查主機或者服務的狀態。
快取檢查的門限值告訴Nagios可以使用最近多久的檢查結果,以便能夠可靠的反應主機或者服務當前的狀態。例如,將快取檢查門限值設定為30秒(就是將選項cached_host_check_horizon或者cached_service_check_horizon的值設定為30),這設定的意義在於告訴Nagios如果主機/服務狀態在30秒內被檢查過,那麼這個檢查的結果將會被看做是該主機/服務的當前狀態。
如果在經要求檢查時Nagios在使用了執行快取檢查,那麼稱為“命中”,相應的,命中測次數與檢查的次數將會被計算為命中率。通過增加快取檢查門限值到等於定時檢查間隔值,那麼在理論上快取的命中率是100%,如果是這種情況(就是說快取的命中率為100%),那麼所有經要求檢查將會使用快取檢查結果,這個效能是相當可觀的!但是能夠真的如此嗎?實際上是不可能的!
隨著時間的推移快取的檢查結果資訊的可靠性降低,高快取命中率需要先前期檢測結果在一個較長的時間階段內被看做是“有效”的。在網路環境中,所有的事情總是發展很快,因此,誰也不能保證在30秒內伺服器會發生什麼情況。
要權衡一下可靠性與速度,如果設定一個大的快取門限值,那麼在監控邏輯中將會使用不可靠的檢測值。
Nagios將最終確定所有的主機和服務的正確的狀態,所以即使快取的檢查結果證明不可靠的結果代表true值,Nagios將只是在很短的時間內使用了不正確的資訊。
即使是在很短的時間內使用了不可靠的資訊,但是對於管理員來說也是一個討厭的行為,原因很簡單,對於一個已經不存在了的問題,管理員還是收到了該問題的通知,原因很簡單就是使用了過期的資訊。
關於快取門限對於每一個Nagios使用者來說沒有標準值,或者說沒有標準的快取命中率,有些Nagios使用者可能想使用短門限值和低快取率,其它一些使用者卻可能使用一個大門限值和高快取率(需要注意的是可能是一個低可靠性),而其它一些使用者將會禁用快取檢測,從而獲取100%的可靠性。可以通過對不同的門限值測試,以便獲取它們的可靠性狀態資訊,對於個別的使用者這樣獲取一個比較正確的值,也就是說以便在它們的環境中獲取合適門限值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27043155/viewspace-732405/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 快取區溢位檢測工具BED快取
- 檢視資料字典快取(或行快取)的丟失率快取
- 快取穿透、快取擊穿、快取雪崩、快取預熱快取穿透
- 快取穿透、快取擊穿、快取雪崩快取穿透
- 快取穿透、快取雪崩、快取擊穿快取穿透
- 檢查LINUX環境的CPU快取Linux快取
- Redis快取擊穿、快取穿透、快取雪崩Redis快取穿透
- HTTP快取——協商快取(快取驗證)HTTP快取
- [Redis]快取穿透/快取擊穿/快取雪崩Redis快取穿透
- 快取穿透 快取雪崩快取穿透
- 快取問題(一) 快取穿透、快取雪崩、快取併發 核心概念快取穿透
- 快取穿透、快取擊穿、快取雪崩區別快取穿透
- iOS視音訊快取方案評測iOS音訊快取
- 寫Cache快取物件測試例項快取物件
- 快取問題(四) 快取穿透、快取雪崩、快取併發 解決案例快取穿透
- ServiceWorker 快取與 HTTP 快取快取HTTP
- mybatis快取-二級快取MyBatis快取
- 聊聊android列表檢視的快取設計Android快取
- MyBatis快取機制(一級快取,二級快取)MyBatis快取
- 快取、快取演算法和快取框架簡介快取演算法框架
- mysql狀態檢視 QPSTPS快取命中率檢視MySql快取
- 快取淘汰、快取穿透、快取擊穿、快取雪崩、資料庫快取雙寫一致性快取穿透資料庫
- Redis詳解(十二)------ 快取穿透、快取擊穿、快取雪崩Redis快取穿透
- 面試總結 —— Redis “快取穿透”、“快取擊穿”、“快取雪崩”面試Redis快取穿透
- 快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- 快取穿透、快取雪崩和快取擊穿是什麼?快取穿透
- Redis——快取穿透、快取擊穿、快取雪崩、分散式鎖Redis快取穿透分散式
- Redis快取穿透、快取雪崩、快取擊穿好好說說Redis快取穿透
- 分散式快取 - 快取簡介,常用快取演算法分散式快取演算法
- 什麼是redis快取雪崩、快取穿透、快取擊穿Redis快取穿透
- Web快取 – HTTP協議快取Web快取HTTP協議
- 快取工廠之Redis快取快取Redis
- 快取最佳化(快取穿透)快取穿透
- php 快取使用監控測試程式碼PHP快取
- 如何設計快取系統:快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- mysql狀態檢視 QPS/TPS/快取命中率檢視MySql快取
- 電腦CPU二級快取的開啟方法和如何檢視二級快取的引數快取
- 快取快取