1-K8S
在Kubernetes(K8S)中,通过设置shm-size参数可以控制Pod中的共享内存大小。共享内存是一块内存空间,用于多个进程之间共享数据。在某些需要大量共享内存的应用场景下,需要调整shm-size参数以满足需求。
apiVersion: v1
kind: Pod
metadata:
name: shared-memory-pod
spec:
volumes:
- name: dshm
emptyDir:
medium: Memory
sizeLimit: "1Gi"
containers:
- name: mycontainer
image: your_image_name
volumeMounts:
- name: dshm
mountPath: /dev/shm
先在 界面 添加一个 emptyDir
然后手动编辑 yaml 添加:
emptyDir:
medium: Memory
sizeLimit: 1Gi
K8s 里如何优雅地使用 /dev/shm 实现容器间共享内存 - 胡说云原生 - 博客园 (cnblogs.com)
之后 问题解决
[53100] ERROR: could not resize shared memory segment "/PostgreSQL.29838580" to 338604384 bytes: No space left on device
2-docker
您可以通过向docker run
命令传递可选参数--shm-size
来修改shm大小。
docker run -it --shm-size=256m oracle11g /bin/bash
如果使用docker-compose设置Docker环境,还可以在docker-compose.yml配置文件中设置共享内存:
version: '3.5'
services:
your_service:
build:
context: .
shm_size: '2gb' <-- this will set the size when BUILDING
shm_size: '2gb' <-- when RUNNING