+ -
当前位置:首页 → 问答吧 → linux 如何生成内存的镜像文件

linux 如何生成内存的镜像文件

时间:2011-07-08

来源:互联网

比如我想将内存中的某部分内容完全镜像到磁盘,这个怎么做啊?
我知道mmap是可以, 但mmap的可靠性如何? 有没有别的办法(包括硬件的办法)?

作者: hildalh   发布时间: 2011-07-08

怎么个镜像法?
通过读写内存间接操作文件内容?
那就是mmap了

作者: justkk   发布时间: 2011-07-09

引用 1 楼 justkk 的回复:

怎么个镜像法?
通过读写内存间接操作文件内容?
那就是mmap了

恩 比如说吧 现在在内存中维护了一个缓存区, 接下来就会有对这块缓存区有较频繁的修改(量很大)
但如果仅仅保存在内存中机器重启之后数据就丢失 所以我想隔段时间进行内存到磁盘的备份(两次备份的时间窗口之间可以用日志啥的方式进行记录)
现在就问有没有比较好(快,稳定)的这种内存到磁盘的“映射”方式。还有就是mmap是不是需要调用msync才会强制刷进磁盘,这个系统调用的可靠性如何阿?有没有别的方式?

作者: hildalh   发布时间: 2011-07-09

再顶下 不要沉了
这种缓存和磁盘不一致 的问题大家应该都会碰到吧,有没有比较好的解决方案?

作者: hildalh   发布时间: 2011-07-09

操作系统应该会定期写入磁盘
不仅mmap,普通的fprintf也一样,不会立即写入磁盘的,确保写入磁盘的话需要调用fsync

如果对数据的一致性比较在意,那可以调用msync/fsync
但可能牺牲效率

作者: justkk   发布时间: 2011-07-09