繁体   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