Trong bài đăng này, chúng tôi sẽ giải thích cách chẩn đoán php-fpm hết bộ nhớ đã giết và cách ngăn PHP-FPM trong Linux sử dụng quá nhiều hoặc toàn bộ bộ nhớ hệ thống (RAM) của bạn Show
Bạn nhận thấy rằng các máy chủ web của mình hoạt động chậm chạp và cuối cùng ngừng phản hồi khi bạn đăng nhập. nó chỉ ra rằng RAM của hệ thống thấp và PHP fpm đã sử dụng hết phần lớn RAM PHP-FPM là gì?FastCGI Process Manager, hay fpm trong PHP, là một mẫu thực thi với nhiều khả năng khác nhau có tác động đáng kể đến tốc độ tải trang web. PHP có khả năng xử lý nâng cao được gọi là Fpm, bắt đầu bất kỳ tác vụ nào một cách duyên dáng và sau đó lặng lẽ kết thúc nó mà không can thiệp. Tính năng này cũng có khả năng điều chỉnh cho phù hợp với bất kỳ môi trường làm việc nào, bao gồm cổng, kiểu ghi nhật ký, tải lên tệp có hỗ trợ cho một số chức năng nhất định và xóa dữ liệu để hoàn thành các yêu cầu theo các tệp cấu hình có sẵn tại thời điểm triển khai Tính năng PHP-FPMGiải pháp thay thế được sử dụng rộng rãi nhất cho PHP FastCGI là PHP-FPM. Nó cung cấp các khả năng bổ sung đặc biệt hữu ích cho các trang web có lưu lượng truy cập đáng kể. Đây là vài ví dụ
Ưu điểm của PHP-FPMƯu điểm lớn nhất của việc sử dụng PHP-FPM là nó tiêu tốn ít bộ nhớ và CPU hơn đáng kể so với các cách khác để thực thi PHP. Lý do chính cho điều này là nó làm hỏng PHP, biến nó thành một quy trình nền trong khi vẫn cung cấp công cụ CLI để kiểm soát các yêu cầu PHP. Các ưu điểm khác bao gồm;
Các ứng dụng PHP-FPM trong nhiều lĩnh vực khác nhau
NGINX và PHP-FPMSự bổ sung lý tưởng cho PHP-FPM là NGINX, một máy chủ web hiệu suất cao đáng tin cậy với mức sử dụng tài nguyên rất thấp. Dựa trên các sự kiện, Nginx cung cấp một thiết kế không đồng bộ có khả năng mở rộng đáng kể hơn. Ngoài ra, hiệu suất ở mức sử dụng bộ nhớ được nâng cao khi sử dụng Nginx và PHP-FPM Sử dụng PHP-FPM, PHP hoạt động như một dịch vụ riêng biệt. Các yêu cầu được xử lý thông qua ổ cắm TCP/IP khi phiên bản PHP này được sử dụng làm trình thông dịch ngôn ngữ, khiến máy chủ web Nginx chỉ xử lý các yêu cầu HTTP trong khi PHP-FPM diễn giải mã PHP. Sự tồn tại của hai dịch vụ riêng biệt là điều cần thiết để tăng năng suất Lỗi "hết bộ nhớ đã giết php fpm" là gì?Lỗi này sẽ xảy ra khi bạn thấy rằng các máy chủ web của mình trở nên chậm chạp và cuối cùng đã ngừng phản hồi khi đăng nhập vào máy chủ. điều đó có nghĩa là hệ thống sắp hết RAM và PHP fpm đã tiêu thụ hầu hết RAM Bạn sẽ thấy một cái gì đó như thế này; PHP fpm hoạt động như thế nào?PHP-FPM triển khai bộ đệm cấp máy chủ có thể được sử dụng lại ngay lập tức nếu yêu cầu được thực hiện lại do các thành phần và câu lệnh được gọi được lưu trong bộ nhớ (Xem thêm OPcache ). Do đó, tệp PHP được yêu cầu ít thường xuyên hơn đáng kể, dẫn đến tải máy tính thấp hơn (tải trung bình) và tính khả dụng của tài nguyên lớn hơn để nó có thể xử lý các tác vụ khác Trong cùng một "nhóm công nhân", PHP-FPM có thể kích hoạt "các quy trình con", cách ly hoàn toàn hoạt động của tập lệnh php này khỏi tập lệnh php khác. Các cài đặt này được thực hiện trong tệp "pool"; Như thể hiện trong hình bên dưới, về cơ bản, máy chủ web sẽ gửi một yêu cầu PHP tới PHP-fpm, sau đó gửi yêu cầu đó tới một trong các phần tử con của nó và tiếp tục cho đến khi nhận được phản hồi Làm cách nào để chẩn đoán hết bộ nhớ đã giết chết lỗi PHP-fpm?Sự cố này có thể được giải quyết bằng cách thay đổi tệp cấu hình nhóm để giảm mức tiêu thụ bộ nhớ của trình quản lý quy trình PHP-FPM và một số thành phần của nó PHP chiếm bao nhiêu bộ nhớ45 MB cho bộ nhớ trung bình cho mỗi yêu cầu . 70 MB cho bộ nhớ dành riêng.
Cách tăng PHPCách thay đổi giới hạn bộ nhớ . Xác định vị trí php. ini được sử dụng bởi máy chủ web của bạn. Bạn có thể nhấp vào liên kết "thông tin thêm" trên phần PHP của trang trạng thái Drupal. . Chỉnh sửa tham số memory_limit trong php. ini (thường nằm trong phần có tên là Giới hạn tài nguyên). . Khởi động lại Apache Giới hạn bộ nhớ tối đa cho PHP là bao nhiêu?Giới hạn bộ nhớ mặc định là 256M và giới hạn này thường là quá đủ cho hầu hết các nhu cầu. Nếu bạn cần tăng giới hạn này, bạn phải tạo một tệp phprc.
Làm cách nào để kiểm tra giới hạn bộ nhớ trong PHP?Giới hạn bộ nhớ Phpinfo()
. Quản trị viên máy chủ có thể đặt giới hạn bộ nhớ từ -1 (Không cấp phát bộ nhớ) thành bất kỳ kích thước nào. Giới hạn bộ nhớ lần đầu tiên được giới thiệu dưới dạng cài đặt trong php. executing phpinfo() function to see the memory limit and plan an attack according to the value. A server administrator can set memory limit from -1 (No memory allocation) to any size. The memory limit was first introduced as a setting in php. |