小米手機cpu溫度監控:cpu監控軟體

目前promethues可以說是容器監控的標配,在k8s集群裡面基本都會安裝promethues。promethues結合grafana可以通過豐富的指標展現。下面通過一個壓測的demo演示,容器底層對CPU和內存限制。

CPU

我們先介紹指標

# 容器CPU使用時間
rate(container_cpu_usage_seconds_total{pod=~"compute-.*", image!="", container!="POD"}[5m])

# 容器cpu request
avg(kube_pod_container_resource_requests_cpu_cores{pod=~"compute-.*"})

# 容器limit
avg(kube_pod_container_resource_limits_cpu_cores{pod=~"compute-.*"})

# 容器限流時間
rate(container_cpu_cfs_throttled_seconds_total{pod=~"compute-.*", container!="POD", image!=""}[5m])

最開始,系統沒有任何壓力

7張圖帶你從監控視角看一下容器底層CPU和內存限制

cpu的佔用(藍色)0,限流(紅色)0,request(綠色) 0.5核,limit(黃色) 0.7 核。然後我們開始加壓。可以看到藍色線打到 request 和limt 之間的 0.6 核。此時限流還是 0,沒有觸發紅色限流。

7張圖帶你從監控視角看一下容器底層CPU和內存限制

當我們繼續加壓,請求超過limit的時候,CPU被控制在limit水位線。此時紅色的限流開始增加。

7張圖帶你從監控視角看一下容器底層CPU和內存限制

可以看到紅色限流大概處於0.3核的位置,那麼應用總的請求就是 0.3 + 0.7 ,只不過其中的0.3 被CPU限流了,實際只使用了 0.7 (limit)。當把應用負載降下來的時候,限流再次回到0。

7張圖帶你從監控視角看一下容器底層CPU和內存限制

內存

內存的限制就比較簡單了,因為內存在底層是不可壓縮的資源。同樣的是我們先設置監控指標

# 內存用量
container_memory_working_set_bytes{pod_name=~"compute-.*", image!="", container!="POD"}

# 內存request
avg(kube_pod_container_resource_requests_memory_bytes{pod=~"compute-.*"})

# 內存limit
avg(kube_pod_container_resource_limits_memory_bytes{pod=~"compute-.*"})

期初也是0壓力,藍色線為0.

7張圖帶你從監控視角看一下容器底層CPU和內存限制

然後開始加壓,申請內存,沒有超過limit,正常運行

7張圖帶你從監控視角看一下容器底層CPU和內存限制

然後我們嘗試超過limit,結果悲劇了

7張圖帶你從監控視角看一下容器底層CPU和內存限制

容器直接被幹掉了,可以查看事件,發生了OOM。通過get event查看。

default     22s         Warning   OOMKilling   node/aaa-resources-test-default-pool-6cad87bd-bgf4 
Memory cgroup out of memory: Kill process 134119 (stress) score 1962 or sacrifice child
Killed process 134119 (stress) total-vm:519288kB, anon-rss:508260kB, file-rss:268kB, shmem-rss:0kB

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/214317.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 18:49
下一篇 2024-12-08 19:06

相關推薦

發表回復

登錄後才能評論