add proc zfs charts info (#11630)
Ilya Mashchenko committed
Oct 8, 2021 at 12:09 UTC
d1126fae7d51caf340061aa1e60a8c3c0577d777
1 file changed
+141
-4
web/gui/dashboard_info.js
+141
-4
@@ -205,9 +205,13 @@ netdataDashboard.menu = {
205
},
206
207
'zfs': {
208
- title: 'ZFS filesystem',
208
+ title: 'ZFS Cache',
209
icon: '<i class="fas fa-folder-open"></i>',
210
- info: 'Performance metrics of the ZFS filesystem. The following charts visualize all metrics reported by <a href="https://github.com/zfsonlinux/zfs/blob/master/cmd/arcstat/arcstat" target="_blank">arcstat.py</a> and <a href="https://github.com/zfsonlinux/zfs/blob/master/cmd/arc_summary/arc_summary3" target="_blank">arc_summary.py</a>.'
210
+ info: 'Performance metrics of the '+
211
+ '<a href="https://en.wikipedia.org/wiki/ZFS#Caching_mechanisms" target="_blank">ZFS ARC and L2ARC</a>. '+
212
+ 'The following charts visualize all metrics reported by '+
213
+ '<a href="https://github.com/openzfs/zfs/blob/master/cmd/arcstat/arcstat.in" target="_blank">arcstat.py</a> and '+
214
+ '<a href="https://github.com/openzfs/zfs/blob/master/cmd/arc_summary/arc_summary3" target="_blank">arc_summary.py</a>.'
215
},
216
217
'zfspool': {
@@ -3000,11 +3004,144 @@ netdataDashboard.context = {
3004
'<a href="https://datatracker.ietf.org/doc/html/rfc8881#section-18" target="_blank">RFC8881</a>.'
3005
},
3006
3007
+ // ------------------------------------------------------------------------
3008
+ // ZFS
3009
+
3010
+ 'zfs.arc_size': {
3011
+ info: '<p>The size of the ARC.</p>'+
3012
+ '<p><b>Arcsz</b> - actual size. '+
3013
+ '<b>Target</b> - target size that the ARC is attempting to maintain (adaptive). '+
3014
+ '<b>Min</b> - minimum size limit. When the ARC is asked to shrink, it will stop shrinking at this value. '+
3015
+ '<b>Min</b> - maximum size limit.</p>'
3016
+ },
3017
+
3018
+ 'zfs.l2_size': {
3019
+ info: '<p>The size of the L2ARC.</p>'+
3020
+ '<p><b>Actual</b> - size of compressed data. '+
3021
+ '<b>Size</b> - size of uncompressed data.</p>'
3022
+ },
3023
+
3024
+ 'zfs.reads': {
3025
+ info: '<p>The number of read requests.</p>'+
3026
+ '<p><b>ARC</b> - all prefetch and demand requests. '+
3027
+ '<b>Demand</b> - triggered by an application request. '+
3028
+ '<b>Prefetch</b> - triggered by the prefetch mechanism, not directly from an application request. '+
3029
+ '<b>Metadata</b> - metadata read requests. '+
3030
+ '<b>L2</b> - L2ARC read requests.</p>'
3031
+ },
3032
+
3033
+ 'zfs.bytes': {
3034
+ info: 'The amount of data transferred to and from the L2ARC cache devices.'
3035
+ },
3036
+
3037
+ 'zfs.hits': {
3038
+ info: '<p>Hit rate of the ARC read requests.</p>'+
3039
+ '<p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. '+
3040
+ '<b>Misses</b> - a data block was not in the ARC DRAM cache. '+
3041
+ 'It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>'
3042
+ },
3043
+
3044
+ 'zfs.dhits': {
3045
+ info: '<p>Hit rate of the ARC data and metadata demand read requests. '+
3046
+ 'Demand requests are triggered by an application request.</p>'+
3047
+ '<p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. '+
3048
+ '<b>Misses</b> - a data block was not in the ARC DRAM cache. '+
3049
+ 'It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>'
3050
+ },
3051
+
3052
+ 'zfs.phits': {
3053
+ info: '<p>Hit rate of the ARC data and metadata prefetch read requests. '+
3054
+ 'Prefetch requests are triggered by the prefetch mechanism, not directly from an application request.</p>'+
3055
+ '<p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. '+
3056
+ '<b>Misses</b> - a data block was not in the ARC DRAM cache. '+
3057
+ 'It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>'
3058
+ },
3059
+
3060
+ 'zfs.mhits': {
3061
+ info: '<p>Hit rate of the ARC metadata read requests.</p>'+
3062
+ '<p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. '+
3063
+ '<b>Misses</b> - a data block was not in the ARC DRAM cache. '+
3064
+ 'It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>'
3065
+ },
3066
+
3067
+ 'zfs.l2its': {
3068
+ info: '<p>Hit rate of the L2ARC lookups.</p>'+
3069
+ '</p><b>Hits</b> - a data block was in the L2ARC cache and returned. '+
3070
+ '<b>Misses</b> - a data block was not in the L2ARC cache. '+
3071
+ 'It will be read from the pool disks.</p>'
3072
+ },
3073
+
3074
+ 'zfs.demand_data_hits': {
3075
+ info: '<p>Hit rate of the ARC data demand read requests. '+
3076
+ 'Demand requests are triggered by an application request.</p>'+
3077
+ '<b>Hits</b> - a data block was in the ARC DRAM cache and returned. '+
3078
+ '<b>Misses</b> - a data block was not in the ARC DRAM cache. '+
3079
+ 'It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>'
3080
+ },
3081
+
3082
+ 'zfs.prefetch_data_hits': {
3083
+ info: '<p>Hit rate of the ARC data prefetch read requests. '+
3084
+ 'Prefetch requests are triggered by the prefetch mechanism, not directly from an application request.</p>'+
3085
+ '<p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. '+
3086
+ '<b>Misses</b> - a data block was not in the ARC DRAM cache. '+
3087
+ 'It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>'
3088
+ },
3089
+
3090
+ 'zfs.list_hits': {
3091
+ info: 'MRU (most recently used) and MFU (most frequently used) cache list hits. '+
3092
+ 'MRU and MFU lists contain metadata for requested blocks which are cached. '+
3093
+ 'Ghost lists contain metadata of the evicted pages on disk.'
3094
+ },
3095
+
3096
+ 'zfs.arc_size_breakdown': {
3097
+ info: 'The size of MRU (most recently used) and MFU (most frequently used) cache.'
3098
+ },
3099
+
3100
+ 'zfs.memory_ops': {
3101
+ info: '<p>Memory operation statistics.</p>'+
3102
+ '<p><b>Direct</b> - synchronous memory reclaim. Data is evicted from the ARC and free slabs reaped. '+
3103
+ '<b>Throttled</b> - number of times that ZFS had to limit the ARC growth. '+
3104
+ 'A constant increasing of the this value can indicate excessive pressure to evict data from the ARC. '+
3105
+ '<b>Indirect</b> - asynchronous memory reclaim. It reaps free slabs from the ARC cache.</p>'
3106
+ },
3107
+
3108
+ 'zfs.important_ops': {
3109
+ info: '<p>Eviction and insertion operation statistics.</p>'+
3110
+ '<p><b>EvictSkip</b> - skipped data eviction operations. '+
3111
+ '<b>Deleted</b> - old data is evicted (deleted) from the cache. '+
3112
+ '<b>MutexMiss</b> - an attempt to get hash or data block mutex when it is locked during eviction. '+
3113
+ '<b>HashCollisions</b> - occurs when two distinct data block numbers have the same hash value.</p>'
3114
+ },
3115
+
3116
+ 'zfs.actual_hits': {
3117
+ info: '<p>MRU and MFU cache hit rate.</p>'+
3118
+ '<p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. '+
3119
+ '<b>Misses</b> - a data block was not in the ARC DRAM cache. '+
3120
+ 'It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>'
3121
+ },
3122
+
3123
+ 'zfs.hash_elements': {
3124
+ info: '<p>Data Virtual Address (DVA) hash table element statistics.</p>'+
3125
+ '<p><b>Current</b> - current number of elements. '+
3126
+ '<b>Max</b> - maximum number of elements seen.</p>'
3127
+ },
3128
+
3129
+ 'zfs.hash_chains': {
3130
+ info: '<p>Data Virtual Address (DVA) hash table chain statistics. '+
3131
+ 'A chain is formed when two or more distinct data block numbers have the same hash value.</p>'+
3132
+ '<p><b>Current</b> - current number of chains. '+
3133
+ '<b>Max</b> - longest length seen for a chain. '+
3134
+ 'If the value is high, performance may degrade as the hash locks are held longer while the chains are walked.</p>'
3135
+ },
3136
+
3137
// ------------------------------------------------------------------------
3138
// ZFS pools
3139
'zfspool.state': {
3006
- info: 'ZFS pool state. The overall health of a pool, as reported by <code>zpool status</code>, is determined by the aggregate state of all devices within the pool. ' +
3007
- 'For details, see <a href="https://openzfs.github.io/openzfs-docs/man/8/zpoolconcepts.8.html?#Device_Failure_and_Recovery" target="_blank"> ZFS documentation</a>.'
3140
+ info: 'ZFS pool state. '+
3141
+ 'The overall health of a pool, as reported by <code>zpool status</code>, '+
3142
+ 'is determined by the aggregate state of all devices within the pool. ' +
3143
+ 'For states description, '+
3144
+ 'see <a href="https://openzfs.github.io/openzfs-docs/man/7/zpoolconcepts.7.html#Device_Failure_and_Recovery" target="_blank"> ZFS documentation</a>.'
3145
},
3146
3147
// ------------------------------------------------------------------------