Giới hạn bộ nhớ Php-fpm

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

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-FPM

Giả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ụ

  • Các quy trình có thể được bắt đầu và dừng một cách đơn giản nhờ quản lý nâng cao
  • Nó thay thế chế độ an toàn và cung cấp khả năng khởi chạy công nhân với nhiều uid, gid, chroot, môi trường và php khác nhau. ban đầu
  • đăng nhập trên stderr và stout
  • Thiết lập các biến ghi chậm sẽ cho phép bạn xác định các chức năng mất nhiều thời gian hơn bình thường để hoàn thành
  • dựa trên các tệp cấu hình cho PHP
  • Các cải tiến đối với FastCGI bao gồm yêu cầu kết thúc fastcgi(), một chức năng duy nhất dừng và tải xuống tất cả dữ liệu trong khi bạn tiếp tục làm việc trên một quy trình dài như chuyển mã video hoặc phân tích dữ liệu thống kê
  • (Tương tự như mô-đun mod_status của Apache)
  • Trong trường hợp bộ đệm opcode vô tình bị phá hủy, cần phải khởi động lại khẩn cấp
  • hỗ trợ tải lên tăng tốc

Ư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;

  • Bảo vệ
  • Tính linh hoạt
  • Hiệu suất
  • Đáng tin cậy
  • cấu hình
  • sự ổn định

Các ứng dụng PHP-FPM trong nhiều lĩnh vực khác nhau

  • Các ứng dụng web để giảm thời gian tải trang web càng nhiều càng tốt
  • Một chương trình sử dụng PHP-fpm để giám sát một số máy chủ trên toàn thế giới

NGINX và PHP-FPM

Sự 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;

Giới hạn bộ nhớ Php-fpm

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

Giới hạn bộ nhớ Php-fpm

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 PHP

Cá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.