我需要为大约10 GB的数据设置一个内存存储系统,包括许多100 kb的单个文件(图像).将有大量的读取和相当周期性的写入(添加新文件,删除一些旧文件).
现在,我知道tmpfs的行为类似于常规文件系统,例如,您可以使用df检查空闲/已用空间,这是一个很好的功能.但是我很感兴趣ramfs是否会在IO操作速度方面提供一些优势.
我知道在使用ramfs时我无法控制消耗内存的大小,并且如果它完全消耗了可用RAM,我的系统可能会挂起,但在这种情况下这不是问题.
现在,我知道tmpfs的行为类似于常规文件系统,例如,您可以使用df检查空闲/已用空间,这是一个很好的功能.但是我很感兴趣ramfs是否会在IO操作速度方面提供一些优势.
我知道在使用ramfs时我无法控制消耗内存的大小,并且如果它完全消耗了可用RAM,我的系统可能会挂起,但在这种情况下这不是问题.
总结一下,我很感兴趣:
– 性能明智,速度更快:ramfs或tmpfs(也可能是为什么)?
– tmpfs什么时候使用交换空间?是否将已保存的数据移动到交换(为当前正在运行的其他程序释放RAM)或仅移动新数据(如果此时没有剩余空闲RAM)?
解决方法
我的建议:
在正常条件下测量和观察现实生活中的活动.
这些文件不太可能是所有需要的,并且始终从缓存中提供.但是有一个很好的工具叫做vmtouch可以告诉你在特定时刻缓存中的内容.您还可以使用它将某些目录或文件锁定到缓存中.所以看看经常使用后的样子.在这种情况下,不需要使用tmpfs和ramfs.
我想你会惊讶地发现最活跃的文件可能已经驻留在缓存中了.
就tmpfs与ramfs而言,没有明显的性能差异.存在运营差异.一个真实的用例是Oracle,其中ramfs用于允许Oracle管理RAM中的数据,而不存在交换风险. tmpfs数据可以在内存压力下换出.动态调整大小和修改设置也存在差异.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。