Kubernetes物理内存请求和限制以及Linux虚拟内存

4uqofj5v  于 2023-01-25  发布在  Kubernetes
关注(0)|答案(1)|浏览(167)

在Kubernetes中,* 是否可以在设置了内存请求和限制的pod/container上强制执行虚拟内存(物理页面交换到磁盘)?*
例如,根据Kubernetes文档,“如果你为一个容器设置了4GiB的内存限制,kubelet(和容器运行时)会强制执行这个限制。运行时会阻止容器使用超过配置的资源限制。当容器中的进程试图消耗超过允许的内存量时,系统内核终止试图分配内存的进程,并显示内存不足(OOM)错误。

  • 因此,是否可以配置pod(以及linux内核),以在pod的指定物理内存限制(4GiB)上强制执行虚拟内存(即分页和内存交换),而不是OOM错误?我是否遗漏了什么?*
carvr3hs

carvr3hs1#

阅读内核文档后,我相信这是可能的,我不认为这是一个可取的行为,让我们考虑一下下面的场景:你有一台拥有64GB物理内存的机器,其中10GB被使用,然后你启动一个进程,“物理”内存限制为500MB。如果达到这个内存限制,内核将开始交换,进程将停止,即使有足够的内存来满足进程的内存请求。
您在容器上指定的内存限制实际上不是物理内存限制,而是允许过量使用的虚拟内存限制。这意味着您的进程可以分配它想要的内存(直到您达到过量使用限制),但一旦它试图使用过多内存,它就会被杀死。

相关问题