-
Notifications
You must be signed in to change notification settings - Fork 4k
add a new tool in libbpf-tools named ext4File #5440
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Add math library to CFLAGS in Makefile
|
Here are my quick notes:
Thanks |
Thanks for your reply. |
|
When I said |
7cc4f5e to
a5912d8
Compare
Hi Bojun,
|
| tcptop \ | ||
| vfsstat \ | ||
| wakeuptime \ | ||
| ext4file \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need this new tool ? We already have fsdist/fsslower/filelife/filetop ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ext4file is a tool used to track file-level buffer or direct I/O.
If a certain file is expected to be accessed by direct I/O, ext4file can detect abnormal I/O access.
I have read the source code of the tools you listed above.
- fsdist focuses on the execution time of operations like read, write, open, and sync, which is different from the issue we are concerned with(Buffer I/O and Direct I/O).
- Compared to fsdist, fsslower is more powerful. The information it traces includes file names and pays attention to the size of I/O. It also sets a threshold, and if the execution time of an operation is below this threshold, it will skip tracing. Although it tracks file names, it does not achieve file-level tracking, because a file name does not represent a unique file. In addition, it tracks the size of I/O rather than the distribution between buffer and direct, so the results of ext4file can complement those of fsslower.
- filelife ignores I/O and only focuses on the creation and deletion of files.
- To prevent excessive output, filetop only displays part of the data, and filetop's I/O tracking cannot further determine whether it is buffer or direct.
ext4file can complement the tools mentioned above and can determine whether a file exhibits unexpected I/O under complex workloads.
|
I'm someone who believes that each commit/patch should be self-contained and complete (self-contained atomic unit). I think developers should be able to understand the full context and intent just by reading the commit message alone, without having to dig through the PR description or conversation thread. Therefore, it would be great if you could include the PR description into the commit message(s). Also, if you revise the patches so that each individual commit/patch maintains its own completeness (rather than scattering fixes across multiple small follow-up commits), it would make the review much easier. Additionally, it would be helpful to add the answer to question of @chenhengqi directly into the explanation under the |
exit4file intoduction
An eBPF tool used to trace the read/write/delete of every files for EXT4
What for
ext4file is used to monitor the I/O patterns(buffer or direct) of each file in the target ext4 FS. To prevent confusion caused by files having the same name, the output of ext4file also includes metadata such as the file's node ID, parent node ID, and whether it has been deleted.
Why ext4file
In the current repository, there exist block-layer tools to monitor I/O patterns of whole disk(such as biopattern, biolatency, etc.) and VFS-layer tools to trace file lifecycle and I/O behavior of files throughout the entire VFS (such as filelife and vfsstat).
However, the above tools lack finer-grained tracking at the file level.
How ext4file
Run ext4file before executing your test. You can refer to ./ext4file -h to get the usage of the tool
The output could be:
The introduction for each field is as follows:
Target Audience
This tool can be used by developers of the ext4 file system who are interested in certain file I/O patterns.