設定合適的 資源 requests 和 limits 對充分利用 kubernetes 集群資源來說十分重要。如果 requests 設定得太高,集群節點利用率就會比較低,這樣就白白浪費了金錢。如果設定得太低,應用就會處於 cpu 飢餓狀態,甚至很容易被 oom killer 殺死。 所以如何才能找到 requests 和 limits 的最佳配置呢?
可以通過對容器在期望負載下的資源實際使用率進行監控來找到這個最佳配置。當然一旦應用暴露於公網,都應該保持監控並且在需要時對其資源的 reques limits 進行調節。
kubelet 自身就包含了乙個名為 cadvisor agent ,它會收集整個節點和節點上執行的所有單獨容器的資源消耗情況。 集中統計整個集群的監控資訊需要執行 個叫作 heapster 的附加元件。
heapste pod 的方式執行在某個節點上,它通過普通的 kubrnetes service 暴露服務,使外部可以通過乙個穩定的 ip 位址訪問。它從集群中所有的 cadvisor 收集資料,然後通過乙個單獨的位址暴露。
圖中的箭頭表示監控資料流動的方向, 它並不代表元件之間用來獲取資料的連線關係。
pod (或者 pod 中執行的容器)感知不到 cadvisor 存在,cadvisor也感知不到 heapster 存在。
heapster 主動請求所有的 cadvisor ,同時 cadvisor 無須通過與 pod 容器內程序通訊就可以收集到容器和節點的資源使用資料。
cadvisor 和 heapster都只儲存乙個很短時間窗的資源使用量資料。 如果需要分析一段時間的 pod 的資源使用情況, 必須使用額外的工具。
lnfluxdb 和 grafana 介紹
lnfluxdb 是乙個用於儲存應用指標, 以及其他監控資料的開源的時序資料庫。
grafana 是乙個擁有著華麗的 web 控制台的資料分析和視覺化套件,同樣也是開源的,它允許使用者對 influxdb 中儲存的資料進行視覺化, 同時發現應用程式的資源使用行為是如何隨時間變化的。
監控LINUX連線數和記憶體使用量
監控linux連線數和記憶體使用量 bin bash by sunhailong at 20120615 curconns ps ef wc l monlog tmp mon conn.out monconns 2000 if ps ef grep monitor.sh grep v grep ne...
TensorFlow 設定GPU使用量
在預設條件下,tensorflow會一次佔滿左右視訊記憶體!這對於我們想在同一臺機器上跑多個程式不利 後面的程式會報視訊記憶體不足的錯誤 可以通過以下方式,設定tensorflow中視訊記憶體的使用方式 在python 中指定gpu import os os.environ cuda device ...
SQL Server 記憶體使用量下降問題
sql server這個程式是非喜歡記憶體這東西的。所以它的記憶體使用量下降,一定是被別人給搶去了。這件事的後果就是sql server 變的 非常慢。怎麼樣才可以讓這件事不太容易發生呢?方法 1 lock page in memory 方法 用這個方法,就是給sql server 一種死不要臉佔記...