linux – 确定各种文件系统的缓存未命中数

我有一个学校项目,我必须找出文件系统在重载和轻载下以及多处理器机器上会有多少缓存未命中.在与我的教授讨论之后,我想出了一个基本的执行计划:

>创建一个程序,它会使文件系统陷入困境并填满缓冲区缓存.
>使用系统基准测试工具记录缓存未命中数.
>用新条件冲洗并重复.

但作为操作系统设计的新手,我不确定如何继续.所以这里有一些我需要help的点:

>理想程序执行哪些操作来填充缓冲区缓存?目前,我编写的程序读取和写入几个不同的文件,x次.
>有哪些工具可以记录缓存未命中数?我已经查看了oprofile,但我不认为它监视文件系统的缓冲区缓存.但我发现这个看起来很有前景的list.
>其他正在运行的流程会影响这些基准吗?

谢谢你的帮助!

最佳答案 1)如果您正在尝试测试文件系统性能,请在I / O线程旁边输入几个操作大量文件元数据的线程.此外,在多个并行线程中执行I / O时,混合执行大型传输的线程和执行小型传输的线程.许多文件系统将小I / O操作合并为更大的请求,物理驱动器可以以更节省时间的方式处理这些请求,并且混合各种大小的I / O可能有助于更快地填充缓存(因为它必须缓冲合并I / O).

2)小心那些工具列表,很多看起来它们被设计为在原始设备上运行,而不是通过文件系统层运行(所以你得到的结果可能并不代表你认为它们的作用).如果您正在寻找一种工具来对特定文件系统进行基准测试,那么您最好的选择是与开发团队核实该文件系统.他们很可能会指出您在开发过程中用于对FS进行基准测试的工具,即使它是内部开发的自定义工具.

3)是的,正在运行并可能访问被测文件系统的任何其他内容都可能会影响您的结果.您可能希望创建一个单独的文件系统,仅用于此测试,并关闭在运行测试时可能尝试访问它的任何后台扫描.

点赞