11# Requirements
22
3+ ## Hardware Sizing
4+
5+ The table below covers common deployment sizes. These are starting points; actual
6+ requirements depend on polling interval, number of data sources per device, use of
7+ Spine vs cmd.php, and whether remote pollers are used.
8+
9+ | Deployment size | Devices | Data sources | CPU cores | RAM | Disk |
10+ | ---| ---| ---| ---| ---| ---|
11+ | Small | < 500 | < 50,000 | 2 | 4 GB | 50 GB SSD |
12+ | Medium | 500–2,000 | 50,000–500,000 | 4–8 | 16 GB | 200 GB SSD |
13+ | Large | 2,000–10,000 | 500,000–2,000,000 | 8–16 | 32–64 GB | 1 TB NVMe |
14+ | Very large | > 10,000 | > 2,000,000 | 16+ | 64+ GB | 2+ TB NVMe |
15+
16+ ** Notes:**
17+
18+ - Use SSD or NVMe for the RRD file directory. RRDtool performs many small random
19+ writes; spinning disk causes polling backlogs on medium and larger installs.
20+ - The MySQL/MariaDB data directory benefits from SSD as well.
21+ ` innodb_doublewrite ` protects against torn page writes during a crash;
22+ disabling it reduces crash safety on any storage type, including SSD/NVMe.
23+ Setting ` innodb_doublewrite = OFF ` is an advanced optimization; only
24+ consider it when you accept the durability trade-off (e.g. strong
25+ backup/replication strategy and tolerance for potential data loss on an
26+ unclean shutdown).
27+ - Spine is CPU-bound. Each spine process spawns threads up to your configured
28+ maximum; allocate 1–2 spine processes per CPU core for best throughput.
29+ - Very large deployments (> 10,000 devices) require remote pollers deployed close to the devices
30+ they poll rather than scaling a single main poller vertically.
31+
32+ ## Software Requirements
33+
334Cacti requires that the following software is installed on your system.
435
536> ** Note** : As of Cacti 1.2.31, PHP 8.1 is required and PHP Composer is required.
@@ -12,7 +43,7 @@ Cacti requires that the following software is installed on your system.
1243
1344- RRDtool 1.3 or greater, 1.5+ recommended
1445
15- - PHP 5.4 or greater, 5.5+ recommended
46+ - PHP 8.1 or greater
1647 - Required modules:
1748 - ctype, date, filter, gettext, gd, gmp, intl
1849 - hash, json, ldap, mbstring, openssl, pcre
@@ -30,17 +61,17 @@ Cacti requires that the following software is installed on your system.
3061
3162 SELinux and ModSecurity can cause problem with ICMP ping, socket connections, ...
3263
33- - MySQL 5.6 or MariaDB 5.5 or greater
64+ - MySQL 5.7 or MariaDB 10.2 or greater
3465 - Timezone support must be enabled
3566
3667 - The following are my.cnf recommendations:
3768
38- - ** version >= 5.6 **
69+ - ** version >= 5.7 **
3970
40- MySQL 5.6 + and MariaDB 10.0 + are great releases, and are very good
41- versions to choose. Make sure you run the very latest release though
42- which fixes a long standing low level networking issue that was causing
43- spine many issues with reliability .
71+ MySQL 5.7 + and MariaDB 10.2 + are supported. MySQL 8.0 and MariaDB 10.6+
72+ are recommended for new installs. Run the latest maintenance release for
73+ your chosen branch; older patch releases have known networking issues that
74+ cause intermittent Spine failures .
4475
4576 - ** innodb = ON**
4677
@@ -146,13 +177,12 @@ Cacti requires that the following software is installed on your system.
146177
147178 - **innodb_doublewrite = OFF**
148179
149- With modern SSD type storage, this operation actually degrades the disk
150- more rapidly and adds a 50% overhead on all write operations.
151-
152- - **innodb_additional_mem_pool_size >= 80M**
153-
154- This is where metadata is stored. If you had a lot of tables, it would
155- be useful to increase this.
180+ Disables the InnoDB doublewrite buffer. This eliminates a 50% write
181+ overhead on SSD/NVMe storage, but removes protection against partial page
182+ writes on an unclean shutdown. Only set this on SSD or NVMe storage with
183+ battery-backed or capacitor-backed write cache, or when the database is
184+ on a volume with hardware-level write atomicity guarantees. Do not set on
185+ spinning disk or consumer SSDs without power-loss protection.
156186
157187 - **innodb_lock_wait_timeout >= 50**
158188
@@ -225,9 +255,7 @@ paste them into my.cnf
225255 innodb_buffer_pool_size = 250M
226256 innodb_io_capacity = 5000
227257 innodb_io_capacity_max = 10000
228- innodb_file_format = Barracuda
229- innodb_large_prefix = 1
230- ```
258+ ```
231259
232260---
233261Copyright (c) 2004-2026 The Cacti Group
0 commit comments