linux – ramfs和tmpfs之间的性能差异

我需要为大约10 GB的数据设置一个内存存储系统,包括许多100 kb的单个文件(图像).将有大量的读取和相当周期性的写入(添加文件,删除一些旧文件).
现在,我知道tmpfs的行为类似于常规文件系统,例如,您可以使用df检查空闲/已用空间,这是一个很好的功能.但是我很感兴趣ramfs是否会在IO操作速度方面提供一些优势.
我知道在使用ramfs时我无法控制消耗内存的大小,并且如果它完全消耗了可用RAM,我的系统可能会挂起,但在这种情况下这不是问题.

总结一下,我很感兴趣:
性能明智,速度更快:ramfs或tmpfs(也可能是为什么)?
– tmpfs什么时候使用交换空间?是否将已保存的数据移动到交换(为当前正在运行的其他程序释放RAM)或仅移动新数据(如果此时没有剩余空闲RAM)?

解决方法

我的建议:

在正常条件下测量和观察现实生活中的活动.

这些文件不太可能是所有需要的,并且始终从缓存中提供.但是有一个很好的工具叫做vmtouch可以告诉你在特定时刻缓存中的内容.您还可以使用它将某些目录或文件锁定到缓存中.所以看看经常使用后的样子.在这种情况下,不需要使用tmpfs和ramfs.

见:http://hoytech.com/vmtouch/

我想你会惊讶地发现最活跃的文件可能已经驻留在缓存中了.

就tmpfs与ramfs而言,没有明显的性能差异.存在运营差异.一个真实的用例是Oracle,其中ramfs用于允许Oracle管理RAM中的数据,而不存在交换风险. tmpfs数据可以在内存压力下换出.动态调整大小和修改设置也存在差异.

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...