K8S容器是否使用hostos的文件缓存
Does K8S container use file cache of host os
抱歉我的英语不好。
我正在调整 java 在 k8s pod 中工作的虚拟机。
通常 java vm 不应使用所有内存。内核应该使用一些内存用于缓存、缓冲区、资源管理等。
我知道容器共享 hostos 内核。
问题是 pods 的资源限制是否包括文件缓存等内核内存。
谢谢。
不,这些类型的缓冲区不会按进程进行跟踪,因此不受 cgroups 设置的约束。我认为 vfs 缓存专门在命名空间处理后全局共享,但不是 100% 确定。
正如你问的问题,我假设你已经搜索过如何在 K8S 中设置内存限制 -> https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#how-pods-with-resource-limits-are-run
在本节中,您将知道您设置的限制将转换为 docker 命令(如果您在 k8s 中使用 docker),spec.containers[].resources.limits.memory
-> --memory=""
如果你在 docker -> https://docs.docker.com/config/containers/resource_constraints/#--kernel-memory-details
中查看关于内核内存的官方文档,这在 k8s 文档中没有提到。所以我假设该值应该是不同类型 linux 系统的默认值。
抱歉我的英语不好。
我正在调整 java 在 k8s pod 中工作的虚拟机。
通常 java vm 不应使用所有内存。内核应该使用一些内存用于缓存、缓冲区、资源管理等。 我知道容器共享 hostos 内核。 问题是 pods 的资源限制是否包括文件缓存等内核内存。
谢谢。
不,这些类型的缓冲区不会按进程进行跟踪,因此不受 cgroups 设置的约束。我认为 vfs 缓存专门在命名空间处理后全局共享,但不是 100% 确定。
正如你问的问题,我假设你已经搜索过如何在 K8S 中设置内存限制 -> https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#how-pods-with-resource-limits-are-run
在本节中,您将知道您设置的限制将转换为 docker 命令(如果您在 k8s 中使用 docker),spec.containers[].resources.limits.memory
-> --memory=""
如果你在 docker -> https://docs.docker.com/config/containers/resource_constraints/#--kernel-memory-details
中查看关于内核内存的官方文档,这在 k8s 文档中没有提到。所以我假设该值应该是不同类型 linux 系统的默认值。