Hardware sizing guidelines
Review configuration and hardware guidelines for InfluxDB Enterprise:
- Enterprise overview
- Query guidelines
- InfluxDB OSS guidelines
- InfluxDB Enterprise cluster guidelines
- When do I need more RAM?
- Recommended cluster configurations
- Storage: type, amount, and configuration
For InfluxDB OSS instances, see OSS hardware sizing guidelines.
Disclaimer: Your numbers may vary from recommended guidelines. Guidelines provide estimated benchmarks for implementing the most performant system for your business.
Enterprise overview
InfluxDB Enterprise supports the following:
- more than 750,000 field writes per second
- more than 100 moderate queries per second (see Query guides)
- more than 10,000,000 series cardinality
InfluxDB Enterprise distributes multiple copies of your data across a cluster, providing high-availability and redundancy, so an unavailable node doesn’t significantly impact the cluster. Please contact us for assistance tuning your system.
If you want a single node instance of InfluxDB that’s fully open source, requires fewer writes, queries, and unique series than listed above, and do not require redundancy, we recommend InfluxDB OSS.
Note: Without the redundancy of a cluster, writes and queries fail immediately when a server is unavailable.
Query guidelines
Query complexity varies widely on system impact. Recommendations for both single nodes and clusters are based on moderate query loads.
For simple or complex queries, we recommend testing and adjusting the suggested requirements as needed. Query complexity is defined by the following criteria:
Query complexity | Criteria |
---|---|
Simple | Have few or no functions and no regular expressions |
Are bounded in time to a few minutes, hours, or 24 hours at most | |
Typically execute in a few milliseconds to a few dozen milliseconds | |
Moderate | Have multiple functions and one or two regular expressions |
May also have GROUP BY clauses or sample a time range of multiple weeks | |
Typically execute in a few hundred or a few thousand milliseconds | |
Complex | Have multiple aggregation or transformation functions or multiple regular expressions |
May sample a very large time range of months or years | |
Typically take multiple seconds to execute |
InfluxDB Enterprise cluster guidelines
Meta nodes
Set up clusters with an odd number of meta nodes─an even number may cause issues in certain configurations.
A cluster must have a minimum of three independent meta nodes for data redundancy and availability. A cluster with 2n + 1
meta nodes can tolerate the loss of n
meta nodes.
Meta nodes do not need very much computing power. Regardless of the cluster load, we recommend the following guidelines for the meta nodes:
- vCPU or CPU: 1-2 cores
- RAM: 512 MB - 1 GB
- IOPS: 50
Data nodes
A cluster with one data node is valid but has no data redundancy. Redundancy is set by the replication factor on the retention policy the data is written to. Where n
is the replication factor, a cluster can lose n - 1
data nodes and return complete query results.
Note: For optimal data distribution within the cluster, use an even number of data nodes.
Guidelines vary by writes per second per node, moderate queries per second per node, and the number of unique series per node.
Guidelines per node
vCPU or CPU | RAM | IOPS | Writes per second | Queries* per second | Unique series |
---|---|---|---|---|---|
2 cores | 4-8 GB | 1000 | < 5,000 | < 5 | < 100,000 |
4-6 cores | 16-32 GB | 1000+ | < 100,000 | < 25 | < 1,000,000 |
8+ cores | 32+ GB | 1000+ | > 100,000 | > 25 | > 1,000,000 |
- Guidelines are provided for moderate queries. Queries vary widely in their impact on the system. For simple or complex queries, we recommend testing and adjusting the suggested requirements as needed. See query guidelines for detail.
When do I need more RAM?
In general, more RAM helps queries return faster. Your RAM requirements are primarily determined by series cardinality. Higher cardinality requires more RAM. Regardless of RAM, a series cardinality of 10 million or more can cause OOM (out of memory) failures. You can usually resolve OOM issues by redesigning your schema.
Guidelines per cluster
InfluxDB Enterprise guidelines vary by writes and queries per second, series cardinality, replication factor, and infrastructure-AWS EC2 R4 instances or equivalent:
- R4.xlarge (4 cores)
- R4.2xlarge (8 cores)
- R4.4xlarge (16 cores)
- R4.8xlarge (32 cores)
Guidelines stem from a DevOps monitoring use case: maintaining a group of computers and monitoring server metrics (such as CPU, kernel, memory, disk space, disk I/O, network, and so on).
Recommended cluster configurations
Cluster configurations guidelines are organized by:
- Series cardinality in your data set: 10,000, 100,000, 1,000,000, or 10,000,000
- Number of data nodes
- Number of server cores
For each cluster configuration, you’ll find guidelines for the following:
- maximum writes per second only (no dashboard queries are running)
- maximum queries per second only (no data is being written)
- maximum simultaneous queries and writes per second, combined
Review cluster configuration tables
- Select the series cardinality tab below, and then click to expand a replication factor.
- In the Nodes x Core column, find the number of data nodes and server cores in your configuration, and then review the recommended maximum guidelines.
Select one of the following replication factors to see the recommended cluster configuration for 10,000 series:
Select one of the following replication factors to see the recommended cluster configuration for 100,000 series:
Select one of the following replication factors to see the recommended cluster configuration for 1,000,000 series:
Select one of the following replication factors to see the recommended cluster configuration for 10,000,000 series:
Storage: type, amount, and configuration
Storage volume and IOPS
Consider the type of storage you need and the amount. InfluxDB is designed to run on solid state drives (SSDs) and memory-optimized cloud instances, for example, AWS EC2 R5 or R4 instances. InfluxDB isn’t tested on hard disk drives (HDDs) and we don’t recommend HDDs for production. For best results, InfluxDB servers must have a minimum of 1000 IOPS on storage to ensure recovery and availability. We recommend at least 2000 IOPS for rapid recovery of cluster data nodes after downtime.
See your cloud provider documentation for IOPS detail on your storage volumes.
Bytes and compression
Database names, measurements, tag keys, field keys, and tag values are stored only once and always as strings. Field values and timestamps are stored for every point.
Non-string values require approximately three bytes. String values require variable space, determined by string compression.
Separate wal
and data
directories
When running InfluxDB in a production environment, store the wal
directory and the data
directory on separate storage devices. This optimization significantly reduces disk contention under heavy write load──an important consideration if the write load is highly variable. If the write load does not vary by more than 15%, the optimization is probably not necessary.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.