docker日志文件和缓存的内存之间有关系吗?

问题描述 投票:0回答:1

enter image description here我正在使用Ubuntu 18.04的裸机kubernetes集群上运行我的应用程序。长期以来,我在缓存内存方面遇到问题。我的某些组件是缓存内存,尽管已使用的内存约为计算机的1%,因为缓存的内存约为90%,kubelet会将该计算机上的所有pod逐出。

最近,我也面临磁盘压力,这是由计算机上运行的Pod的日志文件(位于/var/lib/docker/containers/*/*-json.log)引起的。通过添加以下命令激活docker的日志旋转后:

"log-driver": "json-file",
"log-opts": {
  "max-size": "10m",
  "max-file": "3"
}

对于/etc/docker/daemon.json,我注意到了一个有趣的副作用。从下图可以看出,在我添加日志轮换的同时,缓存也消失了。我的问题是,码头工人日志文件和缓存之间有什么关系?

docker logging memory memory-management kubernetes
1个回答
0
投票

Linux缓存对RAM的磁盘访问,以加快将来的读取请求,这是预期的和令人希望的行为。当应用程序需要更多RAM时,可能会删除此磁盘缓存。另外,如果删除了大文件,我希望它们的缓存也将被删除。

这里的问题是当查看可用内存时是否要计算此磁盘缓存。通常您不需要,因为应用程序可以在需要时使用该内存。但是,在驱逐Pod时,某些工具(如Kubernetes)似乎会对其进行计数:https://github.com/kubernetes/kubernetes/issues/43916

© www.soinside.com 2019 - 2024. All rights reserved.