@cryptotaxi247 / netdata-1 / commits / d1126fae7

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 // ------------------------------------------------------------------------