| 1 | <!--startmeta |
| 2 | custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/collectors/proc.plugin/integrations/memory_statistics.md" |
| 3 | meta_yaml: "https://github.com/netdata/netdata/edit/master/src/collectors/proc.plugin/metadata.yaml" |
| 4 | sidebar_label: "Memory Statistics" |
| 5 | learn_status: "Published" |
| 6 | learn_rel_path: "Collecting Metrics/Collectors/Operating Systems" |
| 7 | keywords: ['swap', 'page faults', 'oom', 'numa'] |
| 8 | message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE" |
| 9 | endmeta--> |
| 10 | |
| 11 | # Memory Statistics |
| 12 | |
| 13 | |
| 14 | <img src="https://netdata.cloud/img/linuxserver.svg" width="150"/> |
| 15 | |
| 16 | |
| 17 | Plugin: proc.plugin |
| 18 | Module: /proc/vmstat |
| 19 | |
| 20 | <img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" /> |
| 21 | |
| 22 | ## Overview |
| 23 | |
| 24 | Linux Virtual memory subsystem. |
| 25 | |
| 26 | Information about memory management, indicating how effectively the kernel allocates and frees |
| 27 | memory resources in response to system demands. |
| 28 | |
| 29 | Monitors page faults, which occur when a process requests a portion of its memory that isn't |
| 30 | immediately available. Monitoring these events can help diagnose inefficiencies in memory management and |
| 31 | provide insights into application behavior. |
| 32 | |
| 33 | Tracks swapping activity — a vital aspect of memory management where the kernel moves data from RAM to |
| 34 | swap space, and vice versa, based on memory demand and usage. It also monitors the utilization of zswap, |
| 35 | a compressed cache for swap pages, and provides insights into its usage and performance implications. |
| 36 | |
| 37 | In the context of virtualized environments, it tracks the ballooning mechanism which is used to balance |
| 38 | memory resources between host and guest systems. |
| 39 | |
| 40 | For systems using NUMA architecture, it provides insights into the local and remote memory accesses, which |
| 41 | can impact the performance based on the memory access times. |
| 42 | |
| 43 | The collector also watches for 'Out of Memory' kills, a drastic measure taken by the system when it runs out |
| 44 | of memory resources. |
| 45 | |
| 46 | |
| 47 | |
| 48 | |
| 49 | This collector is only supported on the following platforms: |
| 50 | |
| 51 | - linux |
| 52 | |
| 53 | This collector only supports collecting metrics from a single instance of this integration. |
| 54 | |
| 55 | |
| 56 | ### Default Behavior |
| 57 | |
| 58 | #### Auto-Detection |
| 59 | |
| 60 | This integration doesn't support auto-detection. |
| 61 | |
| 62 | #### Limits |
| 63 | |
| 64 | The default configuration for this integration does not impose any limits on data collection. |
| 65 | |
| 66 | #### Performance Impact |
| 67 | |
| 68 | The default configuration for this integration is not expected to impose a significant performance impact on the system. |
| 69 | |
| 70 | ## Setup |
| 71 | |
| 72 | |
| 73 | ### Prerequisites |
| 74 | |
| 75 | No action required. |
| 76 | |
| 77 | ### Configuration |
| 78 | |
| 79 | #### Options |
| 80 | |
| 81 | |
| 82 | |
| 83 | There are no configuration options. |
| 84 | |
| 85 | |
| 86 | |
| 87 | #### via File |
| 88 | |
| 89 | There is no configuration file. |
| 90 | |
| 91 | ##### Examples |
| 92 | There are no configuration examples. |
| 93 | |
| 94 | |
| 95 | |
| 96 | ## Alerts |
| 97 | |
| 98 | |
| 99 | The following alerts are available: |
| 100 | |
| 101 | | Alert name | On metric | Description | |
| 102 | |:------------|:----------|:------------| |
| 103 | | [ 30min_ram_swapped_out ](https://github.com/netdata/netdata/blob/master/src/health/health.d/swap.conf) | mem.swapio | percentage of the system RAM swapped in the last 30 minutes | |
| 104 | | [ oom_kill ](https://github.com/netdata/netdata/blob/master/src/health/health.d/ram.conf) | mem.oom_kill | number of out of memory kills in the last 30 minutes | |
| 105 | |
| 106 | |
| 107 | ## Metrics |
| 108 | |
| 109 | Metrics grouped by *scope*. |
| 110 | |
| 111 | The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels. |
| 112 | |
| 113 | |
| 114 | |
| 115 | ### Per Memory Statistics instance |
| 116 | |
| 117 | |
| 118 | |
| 119 | This scope has no labels. |
| 120 | |
| 121 | Metrics: |
| 122 | |
| 123 | | Metric | Dimensions | Unit | |
| 124 | |:------|:----------|:----| |
| 125 | | mem.swapio | in, out | KiB/s | |
| 126 | | system.pgpgio | in, out | KiB/s | |
| 127 | | system.pgfaults | minor, major | faults/s | |
| 128 | | mem.balloon | inflate, deflate, migrate | KiB/s | |
| 129 | | mem.zswapio | in, out | KiB/s | |
| 130 | | mem.ksm_cow | swapin, write | KiB/s | |
| 131 | | mem.thp_faults | alloc, fallback, fallback_charge | events/s | |
| 132 | | mem.thp_file | alloc, fallback, mapped, fallback_charge | events/s | |
| 133 | | mem.thp_zero | alloc, failed | events/s | |
| 134 | | mem.thp_collapse | alloc, failed | events/s | |
| 135 | | mem.thp_split | split, failed, split_pmd, split_deferred | events/s | |
| 136 | | mem.thp_swapout | swapout, fallback | events/s | |
| 137 | | mem.thp_compact | success, fail, stall | events/s | |
| 138 | | mem.oom_kill | kills | kills/s | |
| 139 | | mem.numa | local, foreign, interleave, other, pte_updates, huge_pte_updates, hint_faults, hint_faults_local, pages_migrated | events/s | |
| 140 | |
| 141 |