Php fpm sử dụng quá nhiều bộ nhớ
Khu đổi mới để thử nghiệm các công nghệ tiên tiến của chúng tôi trước khi chúng chính thức được tung ra thị trường
Truy cập nhanh
Định cỡ PHP-FPM Đóng góp Đăng lại Twitter Facebook LinkedIn In
PHP
Cập nhật lần cuối ngày 2 tháng 6 năm 2022 Khách quanWeb PaaS sử dụng heuristic để tự động đặt số lượng worker của thời gian chạy PHP-FPM dựa trên bộ nhớ có sẵn trong vùng chứa. Phương pháp phỏng đoán này dựa trên các giả định về bộ nhớ trung bình cần thiết để xử lý một yêu cầu. Bạn có thể điều chỉnh các giả định đó nếu ứng dụng của bạn thường sử dụng bộ nhớ nhiều hơn hoặc ít hơn đáng kể Lưu ý rằng giá trị này độc lập với grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 24 được đặt trong grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 25, đây là dung lượng bộ nhớ tối đa mà một quy trình PHP đơn lẻ có thể sử dụng trước khi nó tự động kết thúc. Các ước tính này chỉ được sử dụng để xác định số lượng công nhân PHP-FPM bắt đầu heuristicHeuristic dựa trên ba tham số đầu vào
Số lượng công nhân được tính như Mặc địnhCác giả định mặc định là
Đây là những giá trị thận trọng có chủ ý sẽ cho phép hầu hết các chương trình chạy mà không cần sửa đổi Bạn có thể thay đổi chúng bằng cách sử dụng grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 23 và grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 24 trong grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 25 của mình. Ví dụ: nếu ứng dụng của bạn tiêu thụ trung bình ___06 bộ nhớ cho một yêu cầu, hãy sử dụng runtime: sizing_hints: request_memory: 110 grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 27 có giới hạn thấp hơn là 10 MB trong khi grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 28 có giới hạn thấp hơn là 70 MB. Các giá trị thấp hơn giá trị đó sẽ được thay thế bằng các giá trị tối thiểu đó Bạn có thể kiểm tra số lượng công nhân PHP-FPM tối đa bằng cách mở phiên SSH và chạy lệnh sau (ví dụ cho PHP 7. x) grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 2 Đo mức sử dụng bộ nhớ worker của PHPĐể xem các tiến trình công nhân PHP của bạn đang sử dụng bao nhiêu bộ nhớ, bạn có thể mở một phiên SSH và xem nhật ký truy cập PHP grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 21 Trong cột thứ năm, bạn sẽ thấy mức sử dụng bộ nhớ cao nhất xảy ra trong khi từng yêu cầu được xử lý. Mức sử dụng cao nhất có thể sẽ khác nhau giữa các yêu cầu, nhưng để tránh chi phí hiệu suất nghiêm trọng do hoán đổi, gợi ý về kích thước của bạn phải ở đâu đó giữa mức sử dụng bộ nhớ trung bình và trường hợp xấu nhất mà bạn quan sát thấy Một cách hay để xác định bộ nhớ yêu cầu tối ưu là sử dụng lệnh sau grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 22 Điều này sẽ in ra một bảng có bao nhiêu yêu cầu đã sử dụng bao nhiêu bộ nhớ, tính bằng KB, cho 5000 yêu cầu cuối cùng đạt được PHP-FPM. (Trên một trang web đặc biệt bận rộn, bạn có thể cần tăng số lượng đó). Ví dụ, xem xét đầu ra sau grep -e '^pm.max_children' /etc/php/*/fpm/php-fpm.conf pm.max_children = 23 Điều này chỉ ra rằng phần lớn các yêu cầu (4800) đã sử dụng 2048 KB bộ nhớ. Trong trường hợp này, có khả năng bộ nhớ đệm của ứng dụng đang hoạt động. Hầu hết các yêu cầu đã sử dụng tối đa khoảng 10 MB bộ nhớ, trong khi một số ít sử dụng tới 18 MB và một số rất ít (6 yêu cầu) đạt mức cao nhất là 131 MB. (Trong ví dụ này, đó có thể là xóa bộ nhớ cache. ) Một cách tiếp cận thận trọng sẽ đề xuất bộ nhớ yêu cầu trung bình là 16 MB là đủ. Lập trường tích cực hơn sẽ đề xuất 10 MB. Cách tiếp cận tích cực hơn có khả năng cho phép nhiều yêu cầu đồng thời hơn có nguy cơ một số yêu cầu cần sử dụng bộ nhớ trao đổi, do đó làm chậm chúng Cơ quan web Pixelant cũng đã xuất bản một công cụ phân tích nhật ký cho Web PaaS cung cấp hình ảnh trực quan tốt hơn về nhật ký truy cập để xác định mức trung bình yêu cầu bộ nhớ đang sử dụng. Nó cũng cung cấp thông tin chi tiết bổ sung về hoạt động của trang web của bạn, có thể đề xuất các địa điểm để tối ưu hóa hơn nữa cấu hình của bạn và cung cấp hướng dẫn về thời điểm tăng kích thước gói của bạn. (Xin lưu ý rằng công cụ này được duy trì bởi bên thứ 3, không phải bởi Web PaaS. ) Nếu bạn đang chạy trên PHP 5. x thì đừng bận tâm đến việc điều chỉnh mức sử dụng bộ nhớ worker cho đến khi bạn nâng cấp lên PHP 7. x. PHP 7 hiệu quả hơn rất nhiều về bộ nhớ so với PHP 5 và bạn có thể sẽ cần ít hơn một nửa bộ nhớ cho mỗi tiến trình trong PHP 7 Bạn có thấy hướng dẫn này hữu ích không?có không Vui lòng đưa ra bất kỳ đề xuất nào để cải thiện tài liệu này Mọi phản hồi của bạn về hình ảnh, nội dung hay cấu trúc, hãy chia sẻ để chúng ta cùng nhau hoàn thiện Yêu cầu hỗ trợ của bạn sẽ không được xử lý qua biểu mẫu này. Để thực hiện việc này, vui lòng sử dụng biểu mẫu "Tạo vé" |