1. 程式人生 > >Cacti監控CPU或內存出現圖像數據為NAN

Cacti監控CPU或內存出現圖像數據為NAN

nic code memory 服務器 內核 inf spa 監控服務器 之前

CPU(CPU Usage)

CPU 利用率就是定義CPU 使用的百分比.評估系統最重要的一個度量方式就是CPU 的利用率.

在監控服務器的CPU利用率時,我們一般采集三個數據:System Time、Nice Time、User Time。

  • System Time(譯註:內核線程以及中斷時間) - 關於在kernel space中線程和中斷在CPU 開銷時間百分比.
  • User Time(譯註:用戶進程時間) - 關於在user space中被執行進程在CPU 開銷時間百分比.
  • Nice Time:每個linux進程都有個優先級,優先級高的進程有優先執行的權利,這個叫做pri。進程除了優先級外,還有個優先級的修正值。即比如你原先的優先級是20,然後修正值為-2,那麽你最後的進程優先級為18。這個修正值就叫做進程的nice值。nice加權的進程使用的用戶態cpu時間比,我的理解就是一個進程的所謂修正值就意味著多分配一些cpu時間給這個進程的用戶態,這個中間所多分配的cpu時間就是我們這裏的Nice。

這些得到的數據都是百分比數據,但是Cacti默認對CPU的監控是單核監控,默認值設置為100%,也是相對於單核CPU來說的。如果,服務器不在跑什麽東西,這些監控數據很小,可以看到圖;但是如果機器繁忙的話,我們就看不到圖了,而且圖下面的監控數據也會顯示為NAN(表示獲取的監控數據已經大於默認值了)。

有兩種解決方法:

1、修改默認值

  • 默認值是100,表示單核CPU;修改為10000,表示我可以讓你監控100核的CPU。
  • 然後修改生成的RRA文件(也可以刪除,使之重新生成)
    • 優點:修改起來比較簡單。
    • 缺點:圖像看起來不直觀,原先的事100%,現在得到的數據可能就是10K%、9K%……

2、修改cpu監控的數據模板(暫時不會,待研究)

內存(Memory Usage)

和CPU監控同理,默認值為10G,設置過小,導致數據為NAN

解決方法:

1.修改模版

  • Console—〉Data Templates中有三個關於memory的模版文件,網上一般只改free,其實我們改的是上限,不影響別的,所以把三個都改了也沒關系,因為如果內存足夠大,你buffers一釋放,free自然就大了,超過了限定值就不出 圖,多鬧心,所以我直接把三個都改了,這樣不管哪個增大,都不會超過上限,,依次點擊每個關於memory的模版,修改裏面的Maximum Value 值,默認10G,加個0,變成100G了,依次保存,ok!

2.修改已生成的rra文件

#rrdtool info *_mem_cache_*.rrd  (*值不固定,根據自己的來),到裏面看,ds[mem_cache].max = 1.0000000000e+07 一項都是10G,所以我們要改這裏(另外兩個也同理)
# rrdtool tune *_mem_free_*.rrd -a mem_free:100000000
# rrdtool tune *_mem_buffers_*.rrd -a mem_buffers:100000000
# rrdtool tune *_mem_cache_*.rrd -a mem_cache:100000000

修改之後,稍等片刻,就出圖了,之前為nan的數據是不會出現的,出現的是後面新生成的數據,不管是你的free不出圖,還是cache不出圖,這回都該出來了,ok,搞定收工.

Cacti監控CPU或內存出現圖像數據為NAN