NỘI DUNG
Hướng dẫn tăng PHP LSAPI CHILDREN trên CyberPanel khắc phục tình trạng website bị treo!
Hôm nay tôi tiếp nhận được một con VPS từ khách thông báo website và CyberPanel không thể truy cập vào được. Hiện tượng là load rất lâu và đôi lúc trả về mã 503.
Trên CyberPanel thì lỗi này tôi gặp khá thường xuyên và nhìn vào có thể xác định được ngay vấn đề. Do đó tôi viết lại bài này nhằm chia sẻ đến các bạn đang sử dụng CyberPanel nếu gặp có thể thực hiện theo. Và trước khi thực hiện hãy cùng tôi tìm hiểu sơ qua về lỗi này.
Với hệ thống webserver LiteSpeed/OpenLiteSpeed thì các file log sẽ nằm tại vị trí /usr/local/lsws/logs/
. Và bạn hãy đọc file stderr.log
bằng lệnh sau.
tail -f /usr/local/lsws/logs/stderr.log
Và kết quả trả về thông báo Reached max children process limit: 10
Dòng log này xuất phát từ LiteSpeed/OpenLiteSpeed web server khi xử lý các yêu cầu PHP qua giao thức LiteSpeed API (LSAPI). Thông báo lỗi này xảy ra khi quá trình xử lý PHP đã đạt đến giới hạn số lượng “children” của các tiến trình PHP được chỉ định trong cấu hình PHP_LSAPI_CHILDREN
.
Ý nghĩa các phần trong log:
Reached max children process limit: 10
: Giới hạn tối đa số lượng tiến trình con PHP (children
) hiện tại là 10.extra: 3, current: 13, busy: 13
: Hệ thống hiện đang có 13 tiến trình, trong đó 13 tiến trình đều đang bận xử lý, và có thêm 3 yêu cầu mới đang chờ xử lý.
Khi xuất hiện log như trên, việc không truy cập được website có thể do server đã đạt giới hạn số lượng tiến trình PHP (PHP_LSAPI_CHILDREN
) có thể xử lý đồng thời. Khi giới hạn này đạt tối đa, các yêu cầu mới từ người dùng sẽ không được xử lý ngay, dẫn đến tình trạng website bị treo hoặc không phản hồi
Nguyên nhân phổ biến
- Server đã sử dụng hết số tiến trình PHP được cấp, nên không còn tiến trình trống để xử lý thêm yêu cầu.
- Do các tiến trình PHP cũ chưa hoàn tất hoặc có quá nhiều yêu cầu cùng lúc, hệ thống không thể tiếp nhận thêm.
PHP_LSAPI_CHILDREN là gì?
PHP_LSAPI_CHILDREN
là một thiết lập để giới hạn số lượng tiến trình PHP có thể chạy đồng thời. Khi số lượng yêu cầu xử lý PHP vượt quá giới hạn này, các yêu cầu mới sẽ phải đợi hoặc bị từ chối, dẫn đến lỗi như trên.
Bạn có thể tăng giá trị của PHP_LSAPI_CHILDREN
trong cấu hình PHP để cho phép nhiều tiến trình xử lý hơn, giúp giảm tình trạng chờ. Tuy nhiên, việc tăng này cần phù hợp với tài nguyên server để tránh tình trạng quá tải.
Cách tăng PHP_LSAPI_CHILDREN
Để tăng giá trị này bạn hãy truy cập vào bên trong giao diện LiteSpeed WebAdmin Console. Đây là giao diện có sẵn khi bạn cài đặt CyberPanel, và đường dẫn truy cập là:
https://server-ip:7080
User login sẽ là admin
và passwd bạn có thể xem ở file /etc/cyberpanel/webadmin_passwd
Sau khi đã login vào bạn truy cập đến Server Configuration => External App => Edit => LiteSpeed SAPI App
Bạn kéo xuống tìm mục Environment, tại đây bạn sẽ thấy giá trị PHP_LSAPI_CHILDREN=10. Bạn hãy tăng giá trị này lên. Sau khi tăng bạn bấm lưu lại.
PHP_LSAPI_CHILDREN=30
Hoặc
PHP_LSAPI_CHILDREN=50
Bây giờ bạn click vào biểu tượng như ảnh để khởi động lại dịch vụ webserver.
Và sau khi khởi động bạn hãy truy cập lại xem còn gặp lỗi trên không nhé. Chúc bạn thực hiện thành công.