簡體   English   中英

有沒有辦法在運行基於 Node.js 構建的應用程序的容器中記錄 Kubernetes Pod memory 的使用情況

[英]Is there a way to log Kubernetes Pod memory usage, in a container running an application built on Node.js

我有一個 Kubernetes 吊艙,它關閉並自行重新啟動,因為它超出了 memory。 有多個子進程異步運行並使用 memory。 我希望他們每個人都記錄在 Kubernetes 吊艙上可用/使用了多少 memory。 日志應該與其他 Node js 日志一起。

我知道process.memoryUsage()os.totalmem()os.freemem()

其中分別提供以下output

{"ts":"2021-04-21T10:52:50.299Z","msg":"Node Memory Stats:{\"rss\":125792256,\"heapTotal\":94720000,\"heapUsed\":48927816,\"external\":1668086}","logger":"___","level":"info"}
{"ts":"2021-04-21T10:52:50.300Z","msg":"OS/POD Total Memory:17179869184, OS/POD Free memory:87195648","logger":"___","level":"info"}

我想知道是否有任何方法可以對 pod 進行系統調用、獲取其資源並登錄 Node?

您可以簡單地檢查/sys/fs/cgroup/cpu//sys/fs/cgroup/memory/的值:

對於當前的CPU使用情況,請執行

$ cat /sys/fs/cgroup/cpu/cpuacct.usage

對於當前的memory用法做一個

$ cat /sys/fs/cgroup/memory/memory.usage_in_bytes

提示:確保您已將資源部分(請求和限制)添加到部署中,以便它可以根據 cgroup 計算使用情況。

https://stackoverflow.com/a/62717009/1560953

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM