Introduce kstat dmu_tx_dirty_frees_delay
It is helpful to tune zfs_per_txg_dirty_frees_percent for commit 539d33c7(OpenZFS 6569 - large file delete can starve out write ops). Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Richard Elling <Richard.Elling@RichardElling.com> Signed-off-by: Feng Sun <loyou85@gmail.com> Closes #7718
This commit is contained in:
parent
473c976a0c
commit
750e1f88d3
|
@ -124,6 +124,7 @@ typedef struct dmu_tx_stats {
|
||||||
kstat_named_t dmu_tx_dirty_throttle;
|
kstat_named_t dmu_tx_dirty_throttle;
|
||||||
kstat_named_t dmu_tx_dirty_delay;
|
kstat_named_t dmu_tx_dirty_delay;
|
||||||
kstat_named_t dmu_tx_dirty_over_max;
|
kstat_named_t dmu_tx_dirty_over_max;
|
||||||
|
kstat_named_t dmu_tx_dirty_frees_delay;
|
||||||
kstat_named_t dmu_tx_quota;
|
kstat_named_t dmu_tx_quota;
|
||||||
} dmu_tx_stats_t;
|
} dmu_tx_stats_t;
|
||||||
|
|
||||||
|
|
|
@ -826,6 +826,7 @@ dmu_free_long_range_impl(objset_t *os, dnode_t *dn, uint64_t offset,
|
||||||
*/
|
*/
|
||||||
if (dirty_frees_threshold != 0 &&
|
if (dirty_frees_threshold != 0 &&
|
||||||
long_free_dirty_all_txgs >= dirty_frees_threshold) {
|
long_free_dirty_all_txgs >= dirty_frees_threshold) {
|
||||||
|
DMU_TX_STAT_BUMP(dmu_tx_dirty_frees_delay);
|
||||||
txg_wait_open(dp, 0);
|
txg_wait_open(dp, 0);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,7 @@ dmu_tx_stats_t dmu_tx_stats = {
|
||||||
{ "dmu_tx_dirty_throttle", KSTAT_DATA_UINT64 },
|
{ "dmu_tx_dirty_throttle", KSTAT_DATA_UINT64 },
|
||||||
{ "dmu_tx_dirty_delay", KSTAT_DATA_UINT64 },
|
{ "dmu_tx_dirty_delay", KSTAT_DATA_UINT64 },
|
||||||
{ "dmu_tx_dirty_over_max", KSTAT_DATA_UINT64 },
|
{ "dmu_tx_dirty_over_max", KSTAT_DATA_UINT64 },
|
||||||
|
{ "dmu_tx_dirty_frees_delay", KSTAT_DATA_UINT64 },
|
||||||
{ "dmu_tx_quota", KSTAT_DATA_UINT64 },
|
{ "dmu_tx_quota", KSTAT_DATA_UINT64 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue