如何在python程序中确定k8s中pod当前的内存使用情况?

Vik*_*rud 3 python-3.x kubernetes

我的 python 程序在 k8s pod 上运行。该程序从数据库读取 pandas dataframe 中的数据并执行一些数据转换操作。在其中一项操作中,数据大小呈指数增长,导致 pod 内存不足错误。由于它是pandas,所以所有数据都保存在内存中。

为了避免这种情况,如果内存消耗超过阈值,我需要将数据写入磁盘。为此,我需要知道 python 程序中当前的 pod 内存利用率,以便一旦阈值达到(例如 90%),我就开始将数据转储到磁盘并释放内存。

基本上我需要知道 python 程序中的 pod 内存利用率。

有什么建议么?提前致谢。

Vox*_*Vox 5

在容器中,需要获取cgroup的内存。

 ls /sys/fs/cgroup/memory/
Run Code Online (Sandbox Code Playgroud)

在容器中:cat /sys/fs/cgroup/memory/memory.usage_in_bytes获取内存使用情况。

或者在主机中:/sys/fs/cgroup/memory/docker/[containerId]/memory.usage_in_bytes

https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt