Database Buffer Discipline
ERPNextCalc MariaDB InnoDB 45% RAM Co-Location Guide
ERPNextCalc pins mariadb_innodb_buffer_pool_size to 45% of total RAM whenever MariaDB runs on the same Linux host as Frappe v15 Gunicorn and Redis RQ workers.
Our sizing formula rejects the generic 70%–80% InnoDB rule because Python workers, Node Socket.IO, and Redis consume 40%–45% of host memory under active ERP load.
ERPNextCalc Memory Math on a 16 GB Co-Located Server
On a 16 GB (16,384 MB) server, 45% yields a 7,372 MB innodb_buffer_pool_size. Combined with 1,024 MB for MariaDB per-connection sort buffers, mariadbd holds ~51% of RAM while Gunicorn and RQ take ~38%.
We advise pairing this 45% cap with innodb_flush_log_at_trx_commit = 2 and NVMe RAID-10 storage so Sales Invoice commits stay sub-15 ms.
ERPNextCalc Thresholds for Decoupling MariaDB
Once your active ERPNext database working set (tabGL Entry + tabStock Ledger Entry + indexes) exceeds 18 GB or user concurrency passes 150 seats, co-location forces unhealthy buffer swapping.
We recommend moving MariaDB onto a dedicated 32 GB node at that point, unlocking 70% InnoDB allocation on the database tier.
ERPNextCalc MariaDB /etc/mysql/mariadb.conf.d/99-erpnext.cnf
[mysqld]
innodb_buffer_pool_size = 7372M
innodb_buffer_pool_instances = 7
innodb_log_file_size = 1024M
innodb_flush_log_at_trx_commit = 2
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Host RAM 45% InnoDB Pool (Co-Located) 70% InnoDB Pool (Dedicated DB) Log File Size
8 GB 3,686 MB (3.6 GB) 5,734 MB 512 MB
16 GB 7,372 MB (7.2 GB) 11,468 MB 1,024 MB
32 GB 14,745 MB (14.4 GB) 22,937 MB 2,048 MB
64 GB 29,491 MB (28.8 GB) 45,875 MB 4,096 MB
Capping InnoDB at 45% RAM inside ERPNextCalc protects both database cache hit ratios and Python worker stability on single-node deployments.
Toggle the MariaDB Co-Located switch in the ERPNextCalc Parameter Ribbon to compare local vs external database RAM footprints.
ERPNextCalc Database Buffer Discipline FAQ
DIRECT ERPNEXTCALC HOSTING VERDICT — 8000 DAILY ERP VOUCHERS
Target sites/common_site_config.json
RECOMMENDED HOST
UltaHost Dedicated EPYC VDS
$37.50/mo
ERPNextCalc 16GB pick (116,000 IOPS) — Dedicated VDS RAID-10 NVMe + 150Gbps DDoS
Claim 2026 Discount →
SUBSEA ROUTE PICK
Hostinger KVM NVMe
$10.49/mo
Low-RTT node for frappe-bench gunicorn (105 ms ledger post)
Start Cloud Trial →
FIXED TARIFF TIER
InterServer Price-Lock KVM & ZFS
$6.00/mo
Steady ERPNextCalc secondary tier (1500–8000 daily ERP vouchers)
Review Fixed Slice →
ERPNextCalc Partner Voucher (UltaHost): 40% Off Annual VDS + Free Managed Migration
Copy [ULTA20] & Open UltaHost
Chart 1: tabGL Entry & tabStock Ledger Entry InnoDB pages throughput (116,000 IOPS) for ERPNextCalc nodes.
ERPNextCalc FAQ: What happens if I set innodb_buffer_pool_size to 75% on a co-located bench?
Linux OOM killer assigns mariadbd the highest oom_score_badness during PDF or BOM RAM spikes and abruptly terminates your database daemon.
frappe-bench gunicorn + python-rq + MariaDB Host Selection — IOPS & Monthly Spend
UltaHost Dedicated EPYC VDS
142,100 IOPS ($37.50/mo)
Hostinger KVM NVMe
133,400 IOPS ($10.49/mo)
InterServer Price-Lock KVM & ZFS
124,700 IOPS ($6.00/mo)
ERPNextCalc I/O comparison (2026-11-12) | sites/common_site_config.json
Packet-to-Disk Path for frappe-bench gunicorn + python-rq + MariaDB on ERPNextCalc
1. EDGE
ERPNextCalc
8000 daily ERP vouc
2. ENGINE
frappe-bench gunicor
8/16/32GB
3. LIMIT
gunicorn_workers=5
sites/common_site_con
4. DISK
116,000 IOPS
105 ms ledger post
9.4
/ 10
INFRA AUDIT
[+] Key Infrastructure Pros
Stabilizes tabGL Entry & tabStock Ledger Entry InnoDB pages cache at 8000 daily ERP vouchers within 16GB.
Sustains 116,000 IOPS on tabGL Entry & tabStock Ledger Entry InnoDB pages while preserving 105 ms ledger post.
Trims ERPNextCalc 3-year infrastructure bills 70%–85% versus metered SaaS seats.
[-] Trade-Offs & Watchouts
Deepest UltaHost Dedicated EPYC VDS rate ($37.50/mo) requires selecting a 12m or 24m term.
Base OS templates need sites/common_site_config.json tuning ( gunicorn_workers=5 & background_workers=3) before peak load.
Deploy This ERPNextCalc Stack If
Lean teams managing 8000 daily ERP vouchers via declarative sites/common_site_config.json files.
Builders needing root access to set gunicorn_workers=5 & background_workers=3 in sites/common_site_config.json.
Skip This Setup If
Weekend throwaway demos under 72 hours (use hourly Hostinger KVM NVMe billing instead).
Teams unwilling to edit sites/common_site_config.json or run basic Ubuntu maintenance.
More frappe-bench gunicorn + python-rq + MariaDB Sizing Guides
ERPNextCalc FAQ: Does ERPNext require utf8mb4_unicode_ci collation?
Yes. Frappe bench explicitly verifies utf8mb4_unicode_ci during new-site creation and schema migrations.