![使用 /dev/shm 有时会导致应用程序崩溃](https://linux22.com/image/1294560/%E4%BD%BF%E7%94%A8%20%2Fdev%2Fshm%20%E6%9C%89%E6%97%B6%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%B4%A9%E6%BA%83.png)
有时我会使用/dev/shm
最大 500MB 的临时文件(我有 8 GB RAM - Ubuntu 11.04 x86-64),当我加载星际争霸 II(使用 wine)时,我可能会得到记忆游戏中的错误(数据损坏或“无法加载坐标“)。
如果我使用恰当的我的文件的临时文件系统(例如安装在的 SSD 磁盘/disk3
)我没有遇到任何问题。
这可能是因为/dev/shm
SC2(或其他程序)需要一些可用内存时,内存不断被填满和清空,因此malloc
失败(然后进程报告错误之前预计会有一些可用内存吗?
我对此确实感到困惑。
答案1
据我所知,GNU libc 有自己的语义/dev/shm/
,作为用户(或本地管理员),您根本不应该自己使用它。
此外,在大多数发行版中它的大小都是有限制的。
是的,类似的东西Wine
会使用大量的共享内存,这也会消耗掉/dev/shm
。
我建议将其安装tmpfs
到其他地方(事实上,我建议使用/tmp
as运行系统tmpfs
并将其用于TMPDIR=/var/tmp
需要更大暂存空间的东西)。