Free Server Tool — 100% In-Browser

PHP-FPM & MySQL Tuning Calculator

Work out pm.max_children, innodb_buffer_pool_size and nginx or Apache worker settings from your server's RAM — with ready-to-paste config snippets. No server access needed, nothing uploaded: the maths runs entirely in your browser.

  • ✔ PHP-FPM pm.* sizing
  • ✔ InnoDB buffer pool
  • ✔ nginx & Apache workers
  • ✔ Copy-paste configs
  • ✔ Nothing uploaded
  • ✔ Free Forever
RAM ALLOCATION 4 GB VPS · WordPress PHP-FPM 55% MySQL 35% OS 10% pm.max_children = 62 Buffer Pool 1.4G ✓ pm.start/min/max_spare ✓ innodb_log_file_size ✓ nginx / Apache workers PRIVATE your server specs stay in your browser

Right-Size Your PHP-FPM, MySQL & Web Server — Without Guesswork


Every sysadmin knows the drill: a VPS arrives with defaults built for a machine twice its size, and the first traffic spike either swaps the box into the ground or throws 502s. The classic fix is working out your numbers by hand — pm.max_children from RAM ÷ average worker size, the InnoDB buffer pool from your database share, worker counts from cores. This calculator does that arithmetic instantly and consistently, with sensible splits per workload profile, so you get correct, ready-to-paste settings in seconds.
Nothing is uploaded: your server's RAM, core count and process sizes are processed in your browser and never touch a server — safe to use even for client machines under NDA.

How It Works

1. Enter Server Specs

Total RAM, CPU cores and your average PHP-FPM process size — presets for common VPS sizes included.

2. Pick a Workload

WordPress, WooCommerce, general PHP or database-heavy — the calculator splits RAM between PHP and MySQL accordingly.

3. Get Exact Numbers

pm.max_children, pm.* spares, innodb_buffer_pool_size, log file size and web server workers — computed live as you type.

4. Paste & Go

Copy ready-to-paste snippets for your pool config, my.cnf and nginx/Apache, or export everything as TXT/JSON. Zero uploads.

PHP-FPM & MySQL Tuning Calculator

Quick presets:

Not sure of your average PHP-FPM process size? Run ps --no-headers -o "rss,cmd" -C php-fpm | awk '{s+=$1; n++} END {printf "%.0f MB", s/n/1024}' on your server, or start with 40 MB and watch pm.status_path.

Your Recommended Settings

How the Numbers Are Calculated

These are the same rules of thumb a sysadmin applies by hand — the calculator just does them consistently and shows its work. Always load-test after applying changes.

SettingFormula / rationale
PHP-FPM RAM shareWorkload profiles allocate RAM: WordPress 55% to PHP / 35% to MySQL, WooCommerce 50/40 (bigger DB), DB-heavy 40/55, static 65/25. The OS/services keep the remainder (~10%).
pm.max_childrenfloor(PHP RAM ÷ average process size). The single most important FPM setting: too high causes swap-death, too low causes 502/504 errors under load.
pm.start/min/max_spare_serversDynamic pool sizing: start ≈ 25% of max_children, min_spare ≈ 10%, max_spare ≈ 35% (all capped at max_children).
innodb_buffer_pool_size~70% of the MySQL RAM share. This is the most important MySQL setting — it caches data and indexes in memory.
innodb_log_file_size25% of the buffer pool, clamped between 128 MB and 1 GB per file (rule: large enough to absorb an hour of writes).
innodb_buffer_pool_instancesBuffer pool ≥ 1 GB → one instance per GB, max 8. Reduces internal mutex contention.
nginx workersworker_processes = CPU cores; worker_connections 1024 per worker. Max clients ≈ cores × 1024 (keepalive × 0.75 as a practical figure).
Apache (mpm_event + proxy)MaxRequestWorkers aligned with pm.max_children — Apache threads mostly wait on FPM, so a 1:1 match avoids queueing.
memory_limit / upload sizesphp.ini memory_limit 256 MB (WooCommerce 512 MB), post_max_size and upload_max_filesize aligned at 64 MB.
Swap guidance1–2 GB of swap on small VPS as an emergency buffer — but if you regularly see swap-in during traffic peaks, you need more RAM, not more tuning.

Frequently Asked Questions

Is my server information uploaded anywhere?

No. RAM, CPU and process-size figures are processed entirely in your browser with JavaScript. Nothing is sent to, or stored on, our servers — safe to use even for client machines.

Why is pm.max_children so important?

It is the hard cap on simultaneous PHP processes. Set it above what your RAM can hold and the server swaps to disk — everything slows down at once. Set it too low and visitors get 502/504 errors during traffic spikes. Sizing it from real RAM and real process sizes is the only reliable method.

How do I find my average PHP-FPM process size?

Measure it, don't guess: the ps command shown above the calculator averages the resident set size of your live php-fpm workers. WordPress sites typically run 30–60 MB per worker; WooCommerce or heavy plugins can hit 80–120 MB.

Are these settings safe to apply directly?

They are solid, conservative starting points based on standard sysadmin practice. Apply them, then watch your monitoring: FPM status page, MySQL uptime with slow-query log, and swap usage under real load. Tune upward only with evidence.

My server still swaps after tuning — what next?

Tuning can only stretch the RAM you have. If swap-in continues during normal traffic, you have genuinely outgrown the plan — a VPS upgrade is the honest fix. Systron's managed NVMe VPS plans scale RAM without reinstalling.

24/7 Support Available:

Our support team is here to assist you around the clock. Get Expert Help, Anytime.