共享内存
进程间通信最快的方式是什么?
通过共享内存
那么共享内存是什么?
简单说,就是可以被多个进程访问的同一块内存。
具体使用上,在 Linux 中,有个设备,路径是 /dev/shm,这个路径不在硬盘上,而是在内存上,程序如果需要使用共享内存,直接使用这个目录就可以了。
这个目录默认大小是内存大小的一半。
但是在容器环境下,有了些不同。无论内存多大,/dev/shm 的默认大小是 64MB,在一般情况下,这个大小是够用的。
但是在某些场景下,例如 AI 的分布式训练中,对共享内存的需求很高,这时就需要扩大 /dev/shm 的大小。
我们可以通过挂载 emptyDir 来增大 /dev/shm,例如
volumeMounts:
- mountPath: /dev/shm
name: cache-volume
volumes:
- emptyDir:
medium: Memory
sizeLimit: 500G
name: cache-volume