Goal: fast and stable WordPress on SpinupWP (Bricks + many plugins + large uploads) ✅

❓ I use SpinupWP, and it allows you to configure the following settings. Please explain these settings to me and recommend what I should set: I’ll be using BricksBuilder and a whole range of other plugins. I also want to upload large files and edit large pages (a lot of content on a single page). My goal is to achieve excellent performance and stability.

Nginx

  • Client Max Body Size
  • Client Body Timeout
  • FastCGI Read Timeout

PHP

  • Upload Max File Size
  • Post Max Size
  • Memory Limit
  • Max Execution Time
  • Max File Uploads
  • Max Input Vars
  • Max Input Time
  • Worker Management
    • Static
      • Max Workers
      • Max Requests
    • Dynamic
      • Max Workers
      • Max Requests
      • Start Workers
      • Mind Idle Workers
      • Max Idle Workers
    • On-Demand
      • Max Workers
      • Max Requests
      • Idel Worker Timeout

Goal: fast and stable WordPress on SpinupWP (Bricks + many plugins + large uploads) ✅

SpinupWP is essentially letting you tune two layers:

  1. Nginx (the web server): controls request size limits and how long it will wait for data.
  2. PHP-FPM (PHP workers): controls how much PHP can consume per request and how many requests can run concurrently.

Below is what each setting does and what I’d set as a strong default for a “performance + stability” Bricks/WordPress site that also needs large uploads and large admin edits. (You can tighten later once you know your real needs.)


Nginx settings

1) Client Max Body Size

Recommendation


2) Client Body Timeout

Recommendation


3) FastCGI Read Timeout

Recommendation


PHP (runtime) settings

4) Upload Max File Size (upload_max_filesize)

Recommendation


5) Post Max Size (post_max_size)

Recommendation


6) Memory Limit (memory_limit)

Recommendation (Bricks + plugins + big pages)

Stability tip: it’s usually better to run fewer PHP workers with enough memory than many workers that cause swapping/oom.


7) Max Execution Time (max_execution_time)

Recommendation


8) Max File Uploads (max_file_uploads)

Recommendation


9) Max Input Vars (max_input_vars)

Recommendation (large builder pages)


10) Max Input Time (max_input_time)

Recommendation


PHP-FPM Worker Management (this is the big performance/stability lever)

PHP-FPM runs a pool of PHP “workers.” Each concurrent uncached request generally needs a worker. More workers = more concurrency, but also more RAM usage. Too many workers = memory pressure → swapping → slow site → crashes.

Choosing the mode: Static vs Dynamic vs On-Demand

  1. Static
    • Always keeps exactly Max Workers running.
    • Best for predictable, steady traffic and lowest latency.
    • Can waste RAM on quiet sites.
  2. Dynamic (usually best general-purpose choice) 🌿
    • Keeps a baseline and scales up/down with demand.
    • Great balance of responsiveness and RAM efficiency.
  3. On-Demand
    • Starts workers only when needed; kills them after idle timeout.
    • Efficient for very low traffic.
    • Slight latency spikes as workers spawn; can feel worse in WP admin if constantly cold-starting.

Recommendation


Worker parameters (what they mean + what to set)

A) Max Workers (pm.max_children)

How to size it (rule of thumb)

Recommendation (practical starting points)


B) Max Requests (pm.max_requests)

Recommendation


Dynamic mode-specific

C) Start Workers (pm.start_servers)

D) Min Idle Workers (pm.min_spare_servers)

E) Max Idle Workers (pm.max_spare_servers)


On-Demand mode-specific

F) Idle Worker Timeout (pm.process_idle_timeout)


Suggested “strong baseline” config (most Bricks sites)

Use this as a starting point, then adjust based on real usage. 📌

Nginx

  1. Client Max Body Size: 512M
  2. Client Body Timeout: 300s
  3. FastCGI Read Timeout: 300s

PHP

  1. Upload Max File Size: 512M
  2. Post Max Size: 640M
  3. Memory Limit: 512M (go 768M if you hit memory fatals)
  4. Max Execution Time: 300
  5. Max File Uploads: 50
  6. Max Input Vars: 10,000 (20,000 if large builder pages still don’t save fully)
  7. Max Input Time: 300

PHP-FPM (Dynamic)

Concrete examples:

  1. If 4GB RAM
    1. Max Workers: 10
    2. Max Requests: 500
    3. Start Workers: 4
    4. Min Idle Workers: 2
    5. Max Idle Workers: 6
  2. If 8GB RAM
    1. Max Workers: 18
    2. Max Requests: 500
    3. Start Workers: 6
    4. Min Idle Workers: 3
    5. Max Idle Workers: 10

Two quick guardrails (important for “stability”)

  1. Don’t oversubscribe workers
    • If you see swapping (disk activity high, load average high, site suddenly slow), reduce Max Workers first.
  2. Make sure limits agree
    • client_max_body_size (Nginx) must be post_max_size (PHP) must be upload_max_filesize (PHP), otherwise you get confusing failures.

If you tell me these 4 details, I can give a precise worker count ⚙️

  1. Server RAM (and whether DB is on the same server)
  2. CPU cores
  3. Traffic level (avg + peak concurrent visitors)
  4. Whether you run WooCommerce / membership / heavy search/filter plugins

I’ll then recommend an exact Dynamic worker configuration sized to your hardware and workload.


Revision #4
Created 2026-04-08 18:46:12 UTC by art10m
Updated 2026-04-08 19:34:34 UTC by art10m