有时我会使用/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
需要更大暂存空间的东西)。