aboutsummaryrefslogtreecommitdiffstats
path: root/include/sys/zil.h
diff options
context:
space:
mode:
authorAlexander Motin <[email protected]>2023-05-25 16:51:53 -0400
committerGitHub <[email protected]>2023-05-25 13:51:53 -0700
commitb6fbe61fa6a75747d9b65082ad4dbec05305d496 (patch)
tree8ac0969a3cd6e72ac63095d44e6350ebccca32c9 /include/sys/zil.h
parentf63811f07213361d49878648bd597af88d06859c (diff)
zil: Add some more statistics.
In addition to a number of actual log bytes written, account also a total written bytes including padding and total allocated bytes (bytes <= write <= alloc). It should allow to monitor zil traffic and space efficiency. Add dtrace probe for zil block size selection. Make zilstat report more information and fit it into less width. Reviewed-by: Ameer Hamza <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Alexander Motin <[email protected]> Sponsored by: iXsystems, Inc. Closes #14863
Diffstat (limited to 'include/sys/zil.h')
-rw-r--r--include/sys/zil.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/include/sys/zil.h b/include/sys/zil.h
index cff8ebcad..4747ecc06 100644
--- a/include/sys/zil.h
+++ b/include/sys/zil.h
@@ -489,18 +489,22 @@ typedef struct zil_stats {
* Transactions which have been allocated to the "normal"
* (i.e. not slog) storage pool. Note that "bytes" accumulate
* the actual log record sizes - which do not include the actual
- * data in case of indirect writes.
+ * data in case of indirect writes. bytes <= write <= alloc.
*/
kstat_named_t zil_itx_metaslab_normal_count;
kstat_named_t zil_itx_metaslab_normal_bytes;
+ kstat_named_t zil_itx_metaslab_normal_write;
+ kstat_named_t zil_itx_metaslab_normal_alloc;
/*
* Transactions which have been allocated to the "slog" storage pool.
* If there are no separate log devices, this is the same as the
- * "normal" pool.
+ * "normal" pool. bytes <= write <= alloc.
*/
kstat_named_t zil_itx_metaslab_slog_count;
kstat_named_t zil_itx_metaslab_slog_bytes;
+ kstat_named_t zil_itx_metaslab_slog_write;
+ kstat_named_t zil_itx_metaslab_slog_alloc;
} zil_kstat_values_t;
typedef struct zil_sums {
@@ -515,8 +519,12 @@ typedef struct zil_sums {
wmsum_t zil_itx_needcopy_bytes;
wmsum_t zil_itx_metaslab_normal_count;
wmsum_t zil_itx_metaslab_normal_bytes;
+ wmsum_t zil_itx_metaslab_normal_write;
+ wmsum_t zil_itx_metaslab_normal_alloc;
wmsum_t zil_itx_metaslab_slog_count;
wmsum_t zil_itx_metaslab_slog_bytes;
+ wmsum_t zil_itx_metaslab_slog_write;
+ wmsum_t zil_itx_metaslab_slog_alloc;
} zil_sums_t;
#define ZIL_STAT_INCR(zil, stat, val) \