我的 pod 存在内存泄漏问题。正如我们在图片中看到的,有很多 buff/cach 内存。
我们以前使用
docker swarm
作为集群编排,可以直接访问集群节点。并且我们每天早上在集群节点上写一个crontab
来清除buff/缓存。
15 00 * * * /usr/sbin/sysctl -w vm.drop_caches=3 >> /tmp/clean_cache.log 2>&1
但是我们在k8s中无法直接访问集群节点,是否还可以清除buff/cache呢?
在 pod(工作负载)级别限制资源更符合逻辑。为此,您可以为 pod 指定内存 request 和内存 limit,示例清单:
apiVersion: v1
kind: Pod
metadata:
name: memory-demo
namespace: mem-example
spec:
containers:
- name: memory-demo-ctr
image: polinux/stress
resources:
requests:
memory: "100Mi"
limits:
memory: "200Mi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]
更多信息在这里:链接