Php-fpm số lượng công nhân

Nếu bạn đang sử dụng máy chủ web NGinx với PHP-FPM, rất có thể bạn sẽ phải điều chỉnh cài đặt "ngoài luồng" của php-fpm. Nếu php-fpm của bạn. tệp nhật ký chứa lỗi sau

[26-Mar-2018 10:10:04] WARNING: [pool www] server reached pm.max_children setting [35], consider raising it
[26-Mar-2018 12:04:52] WARNING: [pool www] seems busy [you may need to increase pm.start_servers, or pm.min/max_spare_servers]

Điều này có nghĩa là bạn không có đủ quy trình cho php-fpm

Dựa trên dữ liệu ghi nhật ký thời gian thực của bạn, thật dễ dàng để xác định cài đặt chính xác cho cấu hình php-fpm trên máy chủ của bạn. Các cài đặt chính xác dựa trên bộ nhớ khả dụng cho máy chủ đám mây của bạn, nhưng lưu ý rằng bạn cũng phải tính đến các quy trình khác, chúng cũng ngấu nghiến các tài nguyên đó [ví dụ:. MariaDB, MySQL, Redis]. Không bao giờ chỉ sử dụng 100% bộ nhớ khả dụng trong máy chủ đám mây

Các bước sau đây cần được điều chỉnh trong /etc/php/fpm/pool. d/www. conf file [vị trí điển hình trên Debian mặc dù đường dẫn có thể thay đổi]

pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 4
pm.max_spare_servers = 8

Để tìm các giá trị chính xác, bạn sẽ phải đo lượng bộ nhớ mà một quy trình tiêu thụ. Xin lưu ý, điều này chỉ khả thi trên máy chủ nơi trang web có mức sử dụng bộ nhớ ổn định cho mỗi quy trình, nói cách khác đối với môi trường lưu trữ được chia sẻ với các trang web khác nhau và mã được phát triển khác nhau, mức sử dụng bộ nhớ cho mỗi quy trình sẽ dao động nghiêm trọng.
Dòng sau [được thực thi trong trình bao] sẽ cung cấp cho bạn kết quả có giá trị.

ps -ylC php-fpm --sort:rss

Tên php-fpm khớp với tên quy trình của bạn. Nếu có thể, nó có một tên khác trên máy chủ của bạn, nó phụ thuộc vào các gói PHP được sử dụng

Cột RSS chứa mức sử dụng bộ nhớ trung bình tính bằng kilobyte trên mỗi quy trình.  

S   UID   PID  PPID  C PRI  NI   RSS    SZ WCHAN  TTY          TIME CMD
S     0 24439     1  0  80   0  6364 57236 -      ?        00:00:00 php-fpm
S    33 24701 24439  2  80   0 61588 63335 -      ?        00:04:07 php-fpm
S    33 25319 24439  2  80   0 61620 63314 -      ?        00:02:35 php-fpm

Trong ví dụ này là 61588 kilobyte hoặc được chuyển đổi khoảng +- 60 Mb cho mỗi quá trình

Một tùy chọn khác là lấy trung bình của một quy trình php-fpm

ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ["%d%s\n", sum/NR/1024,"Mb"] }'

Để có được giá trị chính xác cho số chiều. max_children chúng ta sẽ phải kiểm tra dung lượng bộ nhớ mà máy chủ đám mây của chúng ta có thể sử dụng cho quy trình php-fpm và chia tổng số đó cho kích thước trung bình tính bằng Mb của quy trình vừa được kiểm tra của chúng ta

Một ví dụ. nếu máy chủ đám mây của chúng tôi có RAM 4 GB và dịch vụ cơ sở dữ liệu MariaDB cũng đang chạy tiêu thụ ít nhất 1 GB, mục tiêu tốt nhất của chúng tôi là nhận được 4 - 1 - 0,5 [marge] GB = 2,5 GB RAM hoặc 2560 Mb

buổi chiều. max_children đưa chúng ta tới 2560 Mb / 60 Mb = 42 max_children

Chúng tôi đã thực hiện những thay đổi sau trong www của chúng tôi. conf trong nhóm php-fpm

pm.max_children = 40
pm.start_servers = 15
pm.min_spare_servers = 15
pm.max_spare_servers = 25
pm.max_requests = 500

Khởi động lại dịch vụ php-fpm và xem liệu máy chủ có hoạt động đúng cách và phân bổ bộ nhớ như đã định cấu hình không

Trong phiên bản này, chúng tôi sẽ cố gắng giải quyết Pm đã đến máy chủ. Câu đối Max_Children bằng cách sử dụng ngôn ngữ máy tính. Mã sau phục vụ để minh họa điểm này

Nội dung chính Hiển thị

sudo nano /etc/php/7.4/fpm/pool.d/www.conf
#change php version

#increase max_chilren
pm = dynamic
pm.max_children = 25
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500

#restart php
/etc/init.d/php7.4-fpm restart

Bằng cách điều tra nhiều vấn đề sử dụng khác nhau, chúng tôi có thể trình bày cách giải quyết Máy chủ đã tiếp cận Pm. Sự cố Max_Children đã xuất hiện

PM Max_children là gì?

max_spare_servers. buổi chiều. max_children int. Con số quy trình quy định được tạo khi chiều được đặt thành tĩnh và số lượng quy trình con tối đa được tạo khi chiều được đặt thành động. Tùy chọn này là bắt buộc. Tùy chọn này đặt giới hạn về số lượng yêu cầu đồng thời sẽ được phục vụ

PHP tính toán FPM tối đa cho trẻ em như thế nào?

Tính max_con

  • buổi chiều. max_children = Tổng RAM dành riêng cho máy chủ web/Kích thước tiến trình con max
  • hệ thống RAM. 2GB
  • Kích thước hồ bơi trung bình. 85Mb
  • buổi chiều. max_con = 1500MB / 85MB = 17

Làm cách nào để tắt FPM?

Nếu bạn muốn tắt nó, bạn sẽ chuyển công tắc sang "Tắt", thao tác này sẽ cho phép miền của bạn không còn chạy trên PHP-FPM. Sau đó nhấp vào nút Tùy chỉnh bên cạnh "Gói đã cài đặt hiện tại" rồi nhấp vào "Tiện ích mở rộng PHP. " Bạn có thể gỡ cài đặt các tiện ích mở rộng PHP-FPM tiện ích cho từng phiên bản PHP từ trang này. 25-Aug-2022

Làm cách nào để biết liệu PHP-FPM đang chạy hay không?

Đầu tiên hãy mở tệp cấu hình php-fpm và bật trang trạng thái như được hiển thị. Trong tệp này, tìm và bỏ ghi chú biến pm. status_path = /status as trong ảnh chụp màn hình. Lưu các thay đổi và thoát khỏi tệp. 12-Oct-2018

PHP-FPM được sử dụng để làm gì?

A. PHP-FPM [FastCGI Process Manager] là một công cụ web được sử dụng để tăng hiệu suất của một trang web. Nó nhanh hơn nhiều so với các phương pháp dựa trên CGI truyền thống và có khả năng xử lý đồng thời tải cực lớn. 13-Dec-2021

Quy trình con PHP-FPM là gì?

buổi chiều. max_con. Số tiến trình con max được phép sinh ra. buổi chiều. start_servers. Con số tiến trình bắt đầu khi PHP-FPM bắt đầu. Năng động

Nhóm PHP-FPM là gì?

PHP-FPM [FastCGI Process Manager] là một giải pháp thay thế cho việc phát triển FastCGI của PHP với một số tính năng bổ sung hữu ích cho các trang web có lưu lượng truy cập cao. Đây là phương pháp ưa thích để xử lý các trang PHP bằng NGINX và nhanh hơn các phương pháp dựa trên CGI truyền thống như SUPHP hoặc mod_php để chạy tập lệnh PHP. 03-Aug-2022

File cấu hình PHP-FPM ở đâu?

conf phải nằm trong /etc/php/7. 2/fpm/group. 15-Jun-2019

PHP-FPM chạy với tư cách người dùng nào?

dữ liệu www

Dịch vụ PHP-FPM cho daemon cPanel là gì?

cpanel_php_fpm — Dịch vụ PHP-FPM cho cPanel Daemon Trình nền cải thiện hiệu suất này của các ứng dụng nội bộ dựa trên PHP đi kèm với cPanel & WHM, chẳng hạn như. phpMyAdmin. 14-Jul-2022

Gần đây, tập lệnh PHP của tôi không được phản hồi và quá trình duyệt tiếp tục tải trang. Điều này thật kỳ lạ vì tập lệnh đang hoạt động trên máy cục bộ của tôi chứ không phải máy chủ phát triển. Thật không may, không có lý do rõ ràng cho vấn đề này

Sau đó tôi phát hiện ra rằng nhật ký PHP-FPM hiển thị thông báo sau. "WARNING. máy chủ [pool www] đã đến pm. cài đặt max_children [5], hãy cân nhắc nâng cấp nó lên”. Nhật ký này nằm trong /var/log/php7. 2 khung hình/phút. đăng nhập. Lưu ý rằng bạn có thể đang chạy một phiên bản PHP khác

Sự cố này xảy ra khi có nhiều tập lệnh PHP thực thi bài hát. Thật không thể, chỉ cần khởi động lại Apache đã không giải quyết được vấn đề này cho tôi

Giải quyết vấn đề – hãy thay đổi thứ e chiều. cài đặt max_con trong  www. conf trong /etc/php/7. 2/fpm/group. đ.

; The number of child processes to be created when pm is set to 'static' and the
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
; This value sets the limit on the number of simultaneous requests that will be
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
; CGI. The below defaults are based on a server without much resources. Don't
; forget to tweak pm.* to fit your needs.
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
; Note: This value is mandatory.
pm.max_children = 5

Mặc định của tôi được đặt thành 5, nhưng con số này có thể tăng lên. Tuy nhiên, đừng đặt con số này quá cao, vì điều này có thể gây ra các vấn đề khác. Đọc cái này để biết thêm thông tin

Hãy nhớ khởi động lại PHP-FPM sau khi thay đổi bằng cách sử dụng

________số 8

Bạn sẽ không thấy thông báo sau trong ký tự PHP-FPM. "sẵn sàng xử lý các kết nối" Nếu trang web của bạn vẫn chưa bắt đầu, hãy kiểm tra các ký tự Apache khác của bạn

You can also quan tâm

  • Bash Script để xóa hàng loạt nhật ký AWS CloudWatch
  • mẹo và thủ thuật PHP CLI
  • Các sự cố thường gặp khi chạy AWS CLI bằng CRON & Bash
  • Xác định nguyên nhân của quá nhiều kết nối trong MySQL/MariaDB

Giới thiệu về tác giả

Nhóm biên tập của Anto cũng yêu thích đám mây như bạn. Mỗi thành viên trong nhóm biên tập của Anto đều là chuyên gia về Đám mây theo cách riêng của họ. Anto Online rất tự hào trong công việc giúp đỡ những người đam mê Cloud. Hãy cho chúng tôi biết nếu bạn có ý tưởng tuyệt vời cho chủ đề tiếp theo. Liên hệ với Anto Online nếu bạn muốn đóng góp

Chủ Đề