我正在设计用户空间中的文件系统,需要对其进行测试。我不想使用可用的基准测试工具,因为我的要求不同。因此,为了测试文件系统,我希望模拟文件访问操作。为此,我首先使用ftw()函数遍历现有文件系统(实验),并列出文件中的所有文件和目录。
然后我调用一个模拟器来模拟许多进程的文件访问。因此,模拟器随机地启动一个过程,即它会分叉一个执行真正过程所做的事情的线程。线程随机选择文件操作(读,写,重命名等)从列表中选择此操作的参数(由ftw()生成)。该线程执行许多此类文件操作,然后退出标记进程的结束。模拟器继续产生线程;线程执行可以像实际进程一样重叠。现在,由于操作是由线程执行的,文件会被插入,删除,重命名,并在文件列表中更新。
我还没有开始编码。这个计划看起来很健全吗?我也不确定如何编码模拟器......它将如何在一段时间内产生线程。我应该使用一些随机延迟来做到这一点。
由于
答案 0 :(得分:0)
答案 1 :(得分:0)
这对于一个体面的测试案例来说是正确的,只是为了确保它正常工作。你可以使用sleep()在产生线程之间等待,或者只是一次产生它们然后让它们做一个操作然后再等一下,然后做另一个操作,等等......如果你用很多请求点击它就会发生IMO它的工作原理你的文件系统很可能会做得很好。以PostMark为例,它所做的就是疯狂地追加到不同的文件和其他基准,在不同的位置进行随机访问读/写,以确保必须从磁盘读取页面。