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

CPU(CPU Usage)

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

在監控服務器的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(表示獲取的監控數據已經大於默認值了)。ide

有兩種解決方法:spa

一、修改默認值線程

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

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

內存(Memory Usage)

和CPU監控同理,默認值爲10G,設置太小,致使數據爲NAN進程

解決方法:內存

1.修改模版it

  • 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,搞定收工.

相關文章
相關標籤/搜索