模拟文件系统访问

时间:2011-09-01 17:24:10

标签: c linux file-io filesystems

我正在设计用户空间中的文件系统,需要对其进行测试。我不想使用可用的基准测试工具,因为我的要求不同。因此,为了测试文件系统,我希望模拟文件访问操作。为此,我首先使用ftw()函数遍历现有文件系统(实验),并列出文件中的所有文件和目录。

然后我调用一个模拟器来模拟许多进程的文件访问。因此,模拟器随机地启动一个过程,即它会分叉一个执行真正过程所做的事情的线程。线程随机选择文件操作(读,写,重命名等)从列表中选择此操作的参数(由ftw()生成)。该线程执行许多此类文件操作,然后退出标记进程的结束。模拟器继续产生线程;线程执行可以像实际进程一样重叠。现在,由于操作是由线程执行的,文件会被插入,删除,重命名,并在文件列表中更新。

我还没有开始编码。这个计划看起来很健全吗?我也不确定如何编码模拟器......它将如何在一段时间内产生线程。我应该使用一些随机延迟来做到这一点。

由于

2 个答案:

答案 0 :(得分:0)

是的,这对我来说似乎相当合理。我会考虑尝试对您的文件操作(以及对特定文件的访问)施加统计分布,这与某个预期的工作负载相匹配。您可能能够找到有关典型文件系统工作负载的一些统计信息作为起点。

答案 1 :(得分:0)

这对于一个体面的测试案例来说是正确的,只是为了确保它正常工作。你可以使用sleep()在产生线程之间等待,或者只是一次产生它们然后让它们做一个操作然后再等一下,然后做另一个操作,等等......如果你用很多请求点击它就会发生IMO它的工作原理你的文件系统很可能会做得很好。以PostMark为例,它所做的就是疯狂地追加到不同的文件和其他基准,在不同的位置进行随机访问读/写,以确保必须从磁盘读取页面。

相关问题