我有一个服务器运行一些代码,这些代码在一个目录中创建了数百万个小文件。起初,代码运行得非常快。大约一天后,它开始放缓很多。我试图弄清楚这是否是代码问题,或者这是否是目录中文件数量的问题。
如果文件不存在,代码本身会创建一个文件,然后打开该文件并向其中写入一行。如果该文件确实存在,它将打开该文件并在其上附加一行。
话虽如此,我一直在对我的代码进行基准测试并根据需要进行更改,但我也想对 XFS 进行基准测试,看看这是否是瓶颈。我的问题是,我如何对 XFS 的读/写性能进行基准测试?
我有一个服务器运行一些代码,这些代码在一个目录中创建了数百万个小文件。起初,代码运行得非常快。大约一天后,它开始放缓很多。我试图弄清楚这是否是代码问题,或者这是否是目录中文件数量的问题。
如果文件不存在,代码本身会创建一个文件,然后打开该文件并向其中写入一行。如果该文件确实存在,它将打开该文件并在其上附加一行。
话虽如此,我一直在对我的代码进行基准测试并根据需要进行更改,但我也想对 XFS 进行基准测试,看看这是否是瓶颈。我的问题是,我如何对 XFS 的读/写性能进行基准测试?
从您的应用程序开始,了解它的性能。
xfsslower
和bioslower
perf record
这样您就可以通过火焰图可视化查看 CPU 上的热点。尝试使用内核和用户程序的调试符号。一个目录中的数百万个文件通常不是一个好主意。即使它受支持,您也会获得需要很长时间才能列出的巨大目录元数据。考虑您的应用程序创建一个目录结构,将每个目录的文件限制为几千个。