共享内存大小超出系统配置限制
ftruncate 可以用来增加共享内存块的大小,使其超出 sysconfig 给出的共享内存限制大小吗?如果物理内存耗尽,如何使其使用交换空间?
can ftruncate be used to increase the size of shared memory block beyond the shared memory limit size given by sysconfig? How do I make it use swap in case physical memory runs out?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ftruncate() 调整文件大小。它不会调整该文件的内存映射的大小。所以,答案是否定的。
这个限制是不能被突破的。不过,
root
用户可以更改该限制。假设it是一个内存映射文件,一种方法是一次仅映射文件的一部分,而不是整个文件。如果进程使用的虚拟内存多于可用的物理内存,操作系统将自动使用交换来释放一些物理内存。
ftruncate()
resizes a file. It does not resize a memory mapping of that file. So, the answer is no.That limit can not be breached.
root
user can change that limit though.Assuming it is a memory mapped file, one way is to only map parts of the file at a time, rather than the whole file. If a process uses more virtual memory than there is available physical memory the operating system is going to automatically use swapping to free some physical memory for you.