K8S 容器调大共享内存(shm)

2023-09-12 14:43:34 浏览数 (2)

操作背景

共享内存或 shm 是在不同进程之间共享的一段内存。这是一种在进程之间传递数据的高效方式,特别是对于需要高速数据传输的应用程序。在容器中,共享内存大小默认设置为 64MB。但是在日常使用中如果业务逻辑重度依赖共享内存,比如游戏互动业务场景,64MB显然是不够的,可能需要调大 shm。

如何操作

想要调大 K8S 容器中的共享内存大小,挂载 Memory 类型的临时存储即可, 如下图示例:

当启用SizeMemoryBackedVolumes特性门控时, 你可以为基于内存提供的卷指定大小。 如果未指定大小,内存提供的卷的大小根据节点可分配内存进行调整。

代码语言:yaml复制
apiVersion: v1
kind: Pod
metadata:
  name: test-shm
spec:
  containers:
  - image: busybox
    name: centos
    command: [ "sleep", "1000000" ]
    imagePullPolicy: "IfNotPresent"
    volumeMounts:
      - mountPath: /dev/shm 
        name: cache-volume
  volumes:
  - emptyDir:
      medium: Memory  # 注意,类型应该为 Memory
    name: cache-volume

验证修改

登录容器查看 /dev/shm 挂载点的大小已经和节点大小一致了,说明配置成功,如下图:

调大shm调大shm

0 人点赞