Tối ưu hóa php fpm apache
Bài viết mô tả về điều chỉnh Apache và xem xét quá trình xử lý của nó để xử lý một số yêu cầu từ máy khách. Nó hướng dẫn tắt các mô-đun nào của Apache và nhu cầu thay đổi cài đặt tài nguyên Xem lại Trạng thái Apache
Tập lệnh Apache2Buddy, tương tự như MySQLTuner, xem xét thiết lập Apache của bạn và đưa ra đề xuất dựa trên bộ nhớ xử lý Apache và RAM tổng thể của bạn. Mặc dù đây là một chương trình khá cơ bản, tập trung vào chỉ thị MaxClients, nhưng Apache2Buddy rất hữu ích và có thể chạy thông qua một lệnh duy nhất cuộn tròn -sL https. // thô. githubusercontent. com/richardforth/apache2buddy/master/apache2buddy. làm ơn. perl Mô-đun đa xử lý (MPM)Trước tiên, hãy sao lưu tệp cấu hình Apache của bạn trước khi thực hiện bất kỳ thay đổi nào đối với tệp đó. Chạy lệnh sau để thực hiện tương tự tùy thuộc vào hệ thống bạn đang sử dụng. Trên Debian/Ubuntu cp /etc/apache2/apache2. cấu hình ~/Apache2. conf. sao lưu Trên CentOS/Fedora cp /etc/httpd/conf/httpd. cấu hình ~/httpd. conf. sao lưu Trong thực tế, chức năng mô-đun của Apache được mở rộng bởi các MPM cho phép chúng tôi quyết định cách sửa đổi cấu hình máy chủ Apache chẳng hạn như máy chủ web để liên kết với các cổng mạng, các yêu cầu từ máy khách được chấp nhận và các tiến trình con (và các luồng, cách khác) Có ba MPM khác nhau được cung cấp bởi Apache như - Worker MPM, Event MPM, Prefork MPM. Tốc độ và khả năng mở rộng của httpd/apache2 có thể bị ảnh hưởng, tùy thuộc vào lựa chọn
Lệnh kiểm tra MPM được cài đặt Apache của bạn sử dụng httpd -V Để thay đổi điều này, chúng ta cần chỉnh sửa tệp conf MPM. Vị trí tập tin như sau # /etc/httpd/conf. mô-đun. d/00-mpm. conf [Trên hệ thống dựa trên RedHat/CentOS] # /etc/apache2/mods-available/. tải [Trên hệ thống dựa trên Debian/Ubuntu] Ở đâu Có thể là mpm_event, mpm_worker, cho mpm_prefork Mở tệp và bỏ ghi chú dòng tải mô-đun mong muốn như LoadModule mô-đun mpm_event_module/mod_mpm_event. Vì thế Bây giờ, hãy khởi động lại máy chủ web cũng như dịch vụ php-fpm (hoặc php5-fpm) mới được cài đặt. Lệnh như sau Trên RedHat/CentOS # systemctl khởi động lại httpd php-fpm && systemctl bật httpd php-fpm Trên Debian/Ubuntu # systemctl khởi động lại apache2 php5-fpm && systemctl kích hoạt apache2 php5-fpm Chúng ta cần đặt khối như được mô tả bên dưới, bên trong /etc/httpd/conf/httpd. conf hoặc /etc/apache2/apache2. conf, tùy thuộc vào việc bạn đang sử dụng CentOS hay Debian Xin lưu ý rằng cùng một nguyên tắc áp dụng cho tất cả các MPM – chúng tôi đang sử dụng worker tại đây Cấu hình cung cấp 8000 kết nối đồng thời ServerLimit 250 Máy chủ khởi động 10 MinSpareThreads 75 MaxSpareThreads 250 ThreadLimit 64 ThreadsPerChild 32 MaxRequestWorkers 8000 MaxConnectionsPerChild 10000 Các chi tiết về các tham số được mô tả dưới đây Giới hạn máy chủ Khai báo số lượng tiến trình apache đang chạy tối đa. Nếu bạn thay đổi giá trị này, daemon sẽ yêu cầu khởi động lại Máy chủ khởi động Số lượng quy trình ban đầu để bắt đầu khi bắt đầu daemon apache MinSpareThreads/MaxSpareThreads Điều này quy định số lượng luồng có thể không hoạt động mà không bị giết chủ đề mỗi đứa trẻ Có bao nhiêu luồng có thể được tạo cho mỗi quy trình. Có thể thay đổi trong quá trình tải lại Chủ đềGiới hạn Trong thời gian chạy, ThreadsPerChild có thể được định cấu hình cao bằng giá trị này. Nếu bạn thay đổi giá trị này, daemon sẽ yêu cầu khởi động lại Yêu cầu tối đaCông nhân Điều này tuyên bố có bao nhiêu kết nối đồng thời chúng tôi cung cấp. Chia cho ThreadsPerChild, bạn nhận được giá trị ServerLimit phù hợp. Có thể ít hơn ServerLimit * ThreadsPerChild để dự trữ một số tài nguyên có thể được sử dụng trong thời gian chạy với việc tăng MaxRequestWorkers và tải lại cấu hình MaxConnectionsPerChild Xác định số lượng Kết nối mà một quy trình có thể xử lý trong suốt thời gian tồn tại của nó (số lượng kết nối được tính một lần). Sau đó, nó sẽ bị giết. Nó được sử dụng để ngăn chặn khả năng rò rỉ bộ nhớ apache. Nếu được đặt thành 0 thì thời gian tồn tại là vô hạn Liệu PHPFPM là trình quản lý quy trình để quản lý FastCGI trong PHP. Apache vận chuyển với mod_php theo mặc định và hoạt động với tất cả các máy chủ web chính .
Là PHPBạn có thể nhận thấy PHP-FPM làm cho trang web thử nghiệm của chúng tôi nhanh hơn gần 350% về thời gian tải . Ngoài ra, nó làm cho trang web sử dụng tài nguyên hiệu quả gấp đôi so với mod_php. PHP-FPM, một trong những cách mới nhất để sử dụng PHP kết hợp với máy chủ web, là một triển khai PHP FastCGI thay thế.
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 Là PHPPHP-FPM nhanh hơn các phương pháp dựa trên CGI truyền thống , chẳng hạn như SUPHP, dành cho môi trường PHP nhiều người dùng. Nó không làm quá tải bộ nhớ của hệ thống với PHP từ các quy trình của Apache. Các tính năng PHP-FPM bao gồm. Quá trình thích nghi sinh sản. |