Trong hướng dẫn này, bạn sẽ tinh chỉnh hai tập tin cấu hình quan trọng: www.conf và php.ini theo cấu hình server thực tế.
Cấu hình PHP-FPM pool
Mở tập tin /etc/php/8.3/fpm/pool.d/www.conf và điều chỉnh các thông số sau:
pm = dynamic
pm.max_children = 12
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 9
pm.max_requests = 500
Giải thích nhanh:
pm: Chế độ quản lý process, nên đểdynamicđể tự điều chỉnh theo tải.pm.max_children: Số lượng process PHP tối đa được phép chạy song song.pm.start_servers: Số lượng process khởi tạo khi dịch vụ bắt đầu.pm.min_spare_servers/pm.max_spare_servers: Số lượng process chờ (idle) tối thiểu và tối đa.pm.max_requests: Số request mỗi process xử lý trước khi được khởi động lại (tránh memory leak).
Cấu hình PHP-FPM cho server mạnh
Nếu bạn đang dùng VPS hoặc máy chủ vật lý với cấu hình cao (ví dụ: 32 CPU, 64GB RAM), bạn có thể áp dụng cấu hình mạnh tay hơn:
pm = dynamic
pm.max_children = 100
pm.start_servers = 70
pm.min_spare_servers = 60
pm.max_spare_servers = 80
Sau khi chỉnh sửa xong, hãy khởi động lại PHP-FPM để áp dụng thay đổi:
systemctl restart php8.3-fpm
Tối ưu file php.ini
Tiếp theo, bạn nên điều chỉnh một số giới hạn tài nguyên trong tập tin /etc/php/8.3/fpm/php.ini để phù hợp với nhu cầu thực tế:
post_max_size = 32M
upload_max_filesize = 32M
max_file_uploads = 100
memory_limit = 1024M
post_max_sizevàupload_max_filesize: Giới hạn kích thước tệp tin người dùng có thể upload.max_file_uploads: Số lượng tệp tối đa có thể upload cùng lúc.memory_limit: Giới hạn bộ nhớ tối đa cho mỗi tiến trình PHP (tùy máy chủ, có thể là 512M, 1024M hoặc hơn).
Khởi động lại PHP-FPM để áp dụng cấu hình mới:
systemctl restart php8.3-fpm
Việc tối ưu PHP-FPM đúng cách sẽ giúp server xử lý các request PHP hiệu quả hơn, tránh tình trạng quá tải khi có nhiều lượt truy cập cùng lúc.
Bình luận