[Ocfs2-tools-devel] [PATCH] debugfs.ocfs2: Add a fragmentation score to the 'frag' command.
Joel Becker
Joel.Becker at oracle.com
Thu Aug 6 18:20:23 PDT 2009
Fragmentation is often looked at to see the effect on I/O. But a 100%
fragmented file of 1MB clusters will perform a lot better than a 10%
fragmented file of 4K clusters.
This adds a 'fragmentation score' to the 'frag' command of
debugfs.ocfs2. The score is simply calculated as the fragmentation
percentage times the number of clusters per megabyte. Why a megabyte?
Partly because it's our largest cluster size, but also because we know
1MB I/Os are a nice sweet spot.
This gives us an easy way to compare the I/O of files across cluster
sizes. The higher the score, the worse the I/O.
A file with one extent has a score of 0. Our theoretical 100%
fragmented file of 1MB clusters has a score of 100. The 10% fragmented
file of 4K clusters has a score of 2560. Ouch! That 10% fragmented
file has an average extent size of 40K.
Signed-off-by: Joel Becker <joel.becker at oracle.com>
---
debugfs.ocfs2/dump.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/debugfs.ocfs2/dump.c b/debugfs.ocfs2/dump.c
index f69f8bd..4c6891a 100644
--- a/debugfs.ocfs2/dump.c
+++ b/debugfs.ocfs2/dump.c
@@ -1016,6 +1016,8 @@ void dump_frag(FILE *out, uint64_t ino, uint32_t clusters,
uint32_t extents)
{
float frag_level = 0;
+ int clusters_per_mb =
+ ocfs2_clusters_in_bytes(gbls.fs, OCFS2_MAX_CLUSTERSIZE);
if (clusters > 1 && extents) {
float e = extents, c = clusters;
@@ -1023,5 +1025,6 @@ void dump_frag(FILE *out, uint64_t ino, uint32_t clusters,
}
fprintf(out, "Inode: %"PRIu64"\t%% fragmented: %.2f\tclusters:"
- " %u\textents: %u\n", ino, frag_level, clusters, extents);
+ " %u\textents: %u\tscore: %.0f\n", ino,
+ frag_level, clusters, extents, frag_level * clusters_per_mb);
}
--
1.6.3.3
--
"If you are ever in doubt as to whether or not to kiss a pretty girl,
give her the benefit of the doubt"
-Thomas Carlyle
Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker at oracle.com
Phone: (650) 506-8127
More information about the Ocfs2-tools-devel
mailing list