遍历文件系统并收集统计信息
statwalker的Python项目详细描述
浏览文件系统并收集数据。
Summary
statwalker是一个命令行程序,它递归地扫描文件(通常称为“walk”),并收集统计信息,基本上是文件名和元数据(linux系统中的inode信息)。它在一台机器上并行运行,输出是一个逗号分隔的文件(csv),每个文件一行。这些结果可以使用其他工具进行分析(见下文)。
Output
csv文件将如下所示:
INODE,ATIME,MTIME,UID,GID,MODE,SIZE,DISK,PATH
列说明:
- INODE: device identifier and inode (Linux)
- ATIME: last access time in unix format (seconds since epoc)
- MTIME: last modified time in unix fromat
- UID: user ID
- GID: group ID
- MODE: mode, which is file type and permissions
- SIZE: real size in bytes, same value reported with command du -b
- DISK: disk usage, which is number of blocks times 512
- PATH: full path
How it works
收集统计数据就像bash中的这一行一样简单:
$ TODO
有很多工具在做同样的事情,问题是性能。在文件系统中尝试了一些工具,其中包含了很多兆字节的数据和数以百万计的文件之后,问题变得无法解决。我将statwalker运行在一个存储有1亿多个文件的存储器中,在nfs文件夹上的读取率平均为3000个文件/秒,如果磁盘是本地的,则要快得多。
Usage
# run it from the command line to see available parameters: $ statwalker -h # run it with options $ statwalker -o output.csv /home
TODO
- 添加包含分析工具、分辨率、agregation、c++基准测试和mpi版本的文档。
- 为Windows用户添加注释