多线程写入磁盘与使用互斥锁写入内存

时间:2012-08-21 12:16:56

标签: linux mutex hard-drive

我有一个需要从不同线程写入日志的多线程代码。为了提高效率,我设置了一个内存块,供线程写入由互斥锁同步的线程。然而,我做了一个简单的测试,似乎对硬盘驱动器也很快。我正在使用linux。不确定硬盘是否真的更快或者我做错了什么?

2 个答案:

答案 0 :(得分:2)

您可能具有系统缓冲区缓存效果,因此隐藏了磁盘ios的实际成本 两项测试之间缺乏差异。

答案 1 :(得分:0)

它还取决于您现在使用的文件系统的类型。例如,ext4 fs支持所谓的“懒惰”写作。您可以通过传递到挂载选项来切换此选项。

data=writeback. 

这意味着在写入文件后可以懒惰地写入文件的元数据。这不会导致文件系统损坏,但可能导致最近的更改在发生崩溃时丢失(因此您可能会跳回到过去)。结果,真正的写入磁盘将被推迟。而你的测试可能不那么正确。