Realtime Desk Updates
ERPNextCalc Frappe Socket.IO & Node.js Realtime Sizing
ERPNextCalc allocates a dedicated 256 MB Node.js memory budget for Frappe v15 Socket.IO on port 9000 to power real-time Desk notifications and progress modals.
In our audit of multi-branch ERPNext rollouts, misconfigured WebSocket upgrade headers or low ulimit file descriptors trigger silent disconnects that make users believe background jobs froze.
ERPNextCalc File Descriptor & Memory Budget for Port 9000
Each active browser tab maintains one persistent WebSocket connection to Node Socket.IO plus a Redis pub/sub subscription on port 13000. Two hundred concurrent tabs require under 256 MB of V8 heap but need fs.file-max >= 65535.
We recommend setting NODE_OPTIONS="--max-old-space-size=384" inside Supervisor so V8 garbage collection stays predictable.
ERPNextCalc WebSocket Header Hygiene
Nginx must pass Upgrade, Connection "upgrade", and X-Frappe-Site-Name headers to 127.0.0.1:9000 so multi-tenant site authentication validates cleanly against Redis session keys.
We advise verifying /socket.io/?EIO=4 returns HTTP 101 Switching Protocols after every TLS certificate renewal.
ERPNextCalc Socket.IO Supervisor Block
[program:frappe-bench-node-socketio]
command=/usr/bin/node /home/frappe/frappe-bench/apps/frappe/socketio.js
environment=NODE_OPTIONS="--max-old-space-size=384"
directory=/home/frappe/frappe-bench
user=frappe
autostart=true
autorestart=true
Concurrent Tabs Node V8 Heap Open File Descriptors Redis Pub/Sub Overhead
50 tabs 110 MB ~150 FDs 16 MB
150 tabs 190 MB ~420 FDs 38 MB
400 tabs 320 MB ~1,100 FDs 84 MB
Right-sizing Socket.IO inside ERPNextCalc keeps real-time warehouse stock alerts and document presence indicators responsive.
Inspect the complete OS and Node reserve breakdown on the ERPNextCalc 3-column studio.
ERPNextCalc Realtime Desk Updates 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: Why do ERPNext Data Import progress bars freeze at 0%?
Almost always because Nginx lacks WebSocket proxy_set_header Upgrade directives or frappe-bench-node-socketio is stopped.
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.5
/ 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 Socket.IO need multiple Node cluster processes in Frappe v15?
No. A single Node event loop easily handles 1,000+ concurrent ERPNext WebSocket connections under 384 MB RAM.