操作背景
共享内存或 shm 是在不同进程之间共享的一段内存。这是一种在进程之间传递数据的高效方式,特别是对于需要高速数据传输的应用程序。在容器中,共享内存大小默认设置为 64MB。但是在日常使用中如果业务逻辑重度依赖共享内存,比如游戏互动业务场景,64MB显然是不够的,可能需要调大 shm。
如何操作
想要调大 K8S 容器中的共享内存大小,挂载 Memory 类型的临时存储即可, 如下图示例:
代码语言:yaml复制当启用
SizeMemoryBackedVolumes
特性门控时, 你可以为基于内存提供的卷指定大小。 如果未指定大小,内存提供的卷的大小根据节点可分配内存进行调整。
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 挂载点的大小已经和节点大小一致了,说明配置成功,如下图: