2. 19:10 12/08/2026
Chào bạn Thành Hải,
PHP-FPM tuning cần bắt đầu từ workload và giới hạn máy chủ, không phải một con số max_children phổ biến. Mỗi worker có memory footprint khác nhau tùy framework, extension, request path và dữ liệu xử lý; đặt quá cao có thể làm host swap, còn quá thấp tạo queue khiến latency tăng.
Quy trình nên là:
1. Đo request rate, latency percentile, queue/active process, CPU, RSS của worker, lỗi timeout và memory của host trong giờ cao điểm.
2. Ước lượng max_children từ memory budget thật sau khi chừa phần cho OS, MySQL/Redis/nginx và spike; sau đó load-test/đo lại thay vì tin một phép chia duy nhất.
3. Chọn process manager theo loại tải, đặt timeout để worker kẹt không tồn tại mãi và cấu hình recycle theo request/memory khi có dấu hiệu leak. Nhưng đừng dùng recycle để che một endpoint có bug hoặc I/O chậm.
4. Với OPcache, theo dõi hit rate, memory, interned strings, số script và invalidation. Deploy nên bất biến/atomic: release mới ở đường dẫn mới, switch symlink/nginx upstream có kiểm soát và reload nhẹ PHP-FPM khi cần theo quy trình của bạn.
5. Không dùng reset OPcache tùy tiện trên mọi request. Hãy kiểm thử deploy/rollback dưới tải, gồm cả worker background và cron.
Một dashboard chỉ có CPU không đủ. Cần liên kết saturation của FPM, time ở upstream/database, memory pressure và tốc độ lỗi để tìm đúng nút thắt.
0