From 56b32140919abe19deeb62f08dc6aa9a751643e5 Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Tue, 21 Jul 2026 05:11:45 -0700 Subject: [PATCH] IX: Phase 2 done (30 sites -> FPM/OPcache) + FPM default for new accounts 20 remaining ea-php suPHP candidates flipped to FPM + all 10 alt-php84 Selector sites reset native -> ea-php84 FPM. 30/30 OK, bodies clean, zero rollbacks (biggest: cryoweave 13.5s->0.87s, drsticken 9.1s->0.29s). Four flat-looking one-shot samples re-verified faster at steady-state. Set default_accounts_to_fpm=1 so new accounts provision on FPM. 41 sites now on FPM/OPcache; ~31 fast-but-cold remain (Phase 3, optional). Co-Authored-By: Claude Opus 4.8 (1M context) --- ...26-07-20-ix-php-fpm-opcache-remediation.md | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/clients/internal-infrastructure/reports/2026-07-20-ix-php-fpm-opcache-remediation.md b/clients/internal-infrastructure/reports/2026-07-20-ix-php-fpm-opcache-remediation.md index e66eebb0..c7ad3bdd 100644 --- a/clients/internal-infrastructure/reports/2026-07-20-ix-php-fpm-opcache-remediation.md +++ b/clients/internal-infrastructure/reports/2026-07-20-ix-php-fpm-opcache-remediation.md @@ -1,7 +1,7 @@ # Remediation — IX PHP handler / OPcache (fleet-wide) + ezfastautoglass pilot **Date:** 2026-07-20 · **Server:** ix.azcomputerguru.com (CloudLinux 9 + CageFS + cPanel/WHM, Dell R740xd) -**Author:** Mike Swanson (GURU-5070) · **Status:** Pilot + Phase 1 COMPLETE (12 sites); Phases 2-3 PROPOSED (awaiting go) +**Author:** Mike Swanson (GURU-5070) · **Status:** Pilot + Phase 1 + Phase 2 COMPLETE (41 sites on FPM/OPcache; new-account default set); Phase 3 (remaining ~31 fast-but-cold sites) PROPOSED **Related:** `2026-07-20-ix-mysql-ssd-move-incident-postmortem.md`, `2026-07-20-ix-web-tier-to-ssd-plan.md` --- @@ -121,10 +121,21 @@ not apply under FPM), which cPanel already maintains. arizonahatters 3.18->0.79 · fsgtucson 3.32->0.50 · acepickupparts 3.36->0.62 · gurushow 2.35->0.60 · tarafulcreations 2.85->0.55 · phxpropane 2.76->0.37. (ea-php80/82 opcache pkgs already present; ea-php84 installed during pilot.) -- **Phase 2 — Remaining fix candidates (down to ~1s), ~26 sites, incl. the 10 alt-php Selector sites.** -- **Phase 3 — The fast-but-cold remainder** (low TTFB today, still benefits under load / plugin growth) + - decide whether to make **FPM the default for new accounts** (WHM Tweak Settings / a `postwwwacct` hook) so - this doesn't silently reaccumulate. +- **Phase 2 — DONE (2026-07-21).** 20 remaining ea-php suPHP candidates flipped to FPM (kept version) + all 10 + alt-php84 Selector sites reset native -> ea-php84 FPM. 30/30 OK, bodies clean, zero rollbacks. Biggest wins: + cryoweave 13.5->0.87 · drsticken 9.1->0.29 · packetdial 5.9->0.45 · agingwithoutfamily 5.3->0.20. The 10 + alt-php sites: thrive 1.88->0.30 · photonicapps 2.09->0.27 · blackswanarchery 2.46->0.21 · valleydevelopmentcorp + 2.81->0.38 · royalweedcontrol 1.00->0.19 · gentlemansacres 2.65->0.57 · hightechmortgage ->0.62 (512M OOM fix + re-asserted + held through .user.ini regen) · cascadestucson ->0.73 · drelenaparra/furrier already fast. Four + sites whose one-shot "after" sample looked flat/worse (thecenturions, grabblaw, ultraperformance, cascades) were + re-checked at steady-state (4 warm samples) and are all genuinely faster (grabblaw 2.25->0.07, thecenturions + 1.70->0.85) — the flat samples were cold-first-hit noise. +- **Phase 2b — FPM as default for NEW accounts: DONE (2026-07-21).** `whmapi1 php_set_default_accounts_to_fpm + default_accounts_to_fpm=1` (0->1). New cPanel accounts provision on FPM, so the anti-pattern won't silently rebuild. +- **Phase 3 (PROPOSED) — The fast-but-cold remainder** (~31 ea-php suPHP sites already < 1s TTFB; still recompile + per request, so they benefit under load / as plugins grow). Same one-flag `php_fpm=1` per vhost. Lower urgency + since they're not user-visibly slow today; convert opportunistically or in one batch. (New-account default is + already handled — Phase 2b.) **Per-site procedure (non-negotiable, from the SSD-move incident lessons):** 1. Pre-check bodies clean (abort if already erroring). @@ -163,8 +174,7 @@ privacy-policy HTTP 200, full byte counts; TTFB 0.41-0.48s across repeated warm ## 7. Open items -- Get go/no-go on **Phase 2** (remaining ~26 sites incl. the 10 alt-php Selector sites) and rollout order. -- Decide on **FPM-as-default for new accounts** (prevents silent reaccumulation). +- **Phase 2 + new-account default: DONE (2026-07-21).** Optional: Phase 3 (fast-but-cold remainder) on your go. - **hightechmortgage.com 500: RESOLVED (2026-07-20)** — root cause was PHP OOM (`memory_limit` 128M exhausted by WooCommerce + AccelerateWP + crypto plugins), not the handler. Raised to 512M via `.user.ini`; site returns 200, no new fatals. Will move to FPM in Phase 2 (memory_limit carries over).