Netdata is designed to automatically adjust its resource consumption based on the specific workload.
This table shows the specific system resources affected by different Netdata features:
Feature | CPU | RAM | Disk I/O | Disk Space | Network Traffic |
---|---|---|---|---|---|
Collected metrics | ✓ | ✓ | ✓ | ✓ | - |
Sample frequency | ✓ | - | ✓ | ✓ | - |
Database mode and tiers | - | ✓ | ✓ | ✓ | - |
Machine learning | ✓ | ✓ | - | - | - |
Streaming | ✓ | ✓ | - | - | ✓ |
Collected metrics
Sample frequency
Database Mode
dbengine
, compresses data and writes it to disk.ram
. This eliminates disk I/O for the Child.Database Tiers
Machine Learning
Streaming Compression
To optimize resource utilization, consider using a Parent-Child setup.
This approach involves centralizing the collection and processing of metrics on Parent nodes while running lightweight Children Agents on edge devices.
Parents dynamically adjust their resource usage based on the volume of metrics received. However, for optimal query performance, you may need to dedicate more RAM.
Check RAM Requirements for more information.
Netdata directly writes metric data to disk, bypassing system caches and reducing I/O overhead. Additionally, its optimized data structures minimize disk space and memory usage through efficient compression and timestamping.
Netdata uses a custom 32-bit floating-point format tailored for efficient storage of time-series data, along with an anomaly bit. This, combined with a fixed-step database design, enables efficient storage and retrieval of data.
| Tier | Approximate Sample Size (bytes) |
|-----------------------------------|---------------------------------|
| High-resolution tier (per-second) | 0.6 | | Mid-resolution tier (per-minute) | 6 | | Low-resolution tier (per-hour) | 18 |
Timestamp optimization further reduces storage overhead by storing timestamps at regular intervals.
Netdata prioritizes interactive queries over background tasks like machine learning and replication, ensuring optimal user experience, especially under heavy load.
Netdata uses pointers to reference shared label key-value pairs, minimizing memory usage, especially in highly dynamic environments.
Netdata's streaming protocol enables the creation of distributed monitoring setups, where Children offload data processing to Parents, optimizing resource utilization.