Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

TL; DR: Để tính toán cài đặt PM.Max_Children của bạn bằng máy tính của tôi, vui lòng bấm vào đây.

Đối với những người trong chúng ta sử dụng PHP-FPM (Trình quản lý quy trình nhanh), một điều bạn có thể gặp Nhật ký lỗi.

WARNING: [pool www] server reached pm.max_children setting (5), consider raising it

Mặc dù hầu hết thời gian các cảnh báo này không phải là dấu hiệu của một vấn đề nghiêm trọng, nhưng đừng bỏ qua nó - đặc biệt là nếu trang web hoặc ứng dụng sẽ tiếp tục phát triển lưu lượng truy cập.

Dù sao thì pm.max_children này là gì?

PM trong pm.max_children đề cập đến Trình quản lý quy trình của PHP FPM, vì vậy, chỉ cần đặt, cài đặt pm.max_children giới hạn số lượng yêu cầu có thể được phục vụ đồng thời PHP.

Điều đầu tiên cần làm là kiểm tra nhật ký lỗi của bạn để xem những gì đang xảy ra. Để làm điều này, nó sẽ phụ thuộc một chút vào phiên bản PHP của bạn. Dưới đây là một vài đường dẫn tiêu chuẩn từ các hệ thống Ubuntu /Debian đến nhật ký lỗi PHP-FPM, nhưng tùy thuộc vào phiên bản bạn đang chạy, bạn có thể phải đào xung quanh để tìm thấy nó trong thư mục /var /log.

//PHP 5.0
tail -f /var/log/php5-fpm.log

//PHP 7.0
sudo tail -f /var/log/php7.0-fpm.log

//PHP 7.1
sudo tail -f /var/log/php7.1-fpm.log

//PHP 7.2
sudo tail -f /var/log/php7.2-fpm.log

Thay phiên, nếu bạn không thể tìm thấy nhật ký, bạn có thể cần thiết lập tệp PHPINFO trên máy chủ của mình để tìm ra nơi lỗi của bạn và được ghi lại.

Làm cách nào để tìm ra số lượng quy trình tối ưu nên là gì cho PHP-FPM?

Hãy bắt đầu bằng cách xem các cài đặt được xác định theo mặc định trong cấu hình PHP-FPM của bạn. Bắt đầu bằng cách mở tệp cấu hình trong VIM (hoặc trình chỉnh sửa văn bản yêu thích của bạn) làm người dùng gốc hoặc bằng cách sử dụng lệnh sudo dưới tên người dùng của riêng bạn:

sudo vi /etc/php/7.0/fpm/pool.d/www.conf

Bạn có thể sẽ thấy một cái gì đó tương tự như các cài đặt mặc định sau:

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

Làm cách nào để tính toán cài đặt pm.max_children?

Đầu tiên chúng ta cần kiểm tra xem quá trình trung bình đang sử dụng bao nhiêu bộ nhớ, để tính toán số lượng quá trình chúng ta có thể chạy với RAM có sẵn trên máy chủ của chúng ta. Để thực hiện việc này, hãy chạy lệnh ps (Trạng thái xử lý) sau đây sẽ tăng danh sách các quy trình hiện đang chạy trên máy chủ của bạn:

ps -ef | grep '[f]'pm
//Results on this machine :
root      4073     1  0 Sep19 ?        00:02:02 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
www-data 24905  4073  1 18:14 ?        00:00:29 php-fpm: pool www
www-data 25056  4073  1 18:30 ?        00:00:11 php-fpm: pool www
www-data 25125  4073  1 18:32 ?        00:00:09 php-fpm: pool www

Tiếp theo, để xem bộ nhớ cần thiết cho các quy trình này, chúng ta cần thêm tham số rss, đó là 'kích thước thiết lập cư trú' hoặc bộ nhớ vật lý đang bị chiếm trong bộ nhớ vật lý. Lưu ý: Thay đổi PHP-FPM7.0 để phù hợp với phiên bản PHP của bạn:

ps -C php-fpm7.0 -o rss=
//Results on this machine :
21080
92892
91272
90816

Nói chung, dòng đầu tiên trong danh sách này cho thấy quy trình chính, trong trường hợp này đang chạy PHP và các kết quả sau đây cho thấy các tài nguyên được sử dụng bởi mỗi quy trình trẻ em. Những con số này có tính bằng kilobyte vì vậy trong ví dụ này, tôi sẽ bỏ qua quy trình đầu tiên và làm tròn để đặt trung bình 100MB bộ nhớ vật lý cho mỗi quá trình con.

[Tổng số RAM có sẵn] - [RAM dành riêng] - [10% bộ đệm] = [RAM có sẵn cho PHP]

Kết quả: [RAM có sẵn cho PHP] / [Kích thước quy trình trung bình] = [Max_Children]
[Available RAM for PHP] / [Average Process Size] = [max_children]

pm.max_children = [max_children] pm.start_servers = [25% max_children] pm.min_spare_servers = [25% max_children] pm.max_spare_servers = [75% Max_children]
pm.start_servers = [25% of max_children]
pm.min_spare_servers = [25% of max_children]
pm.max_spare_servers = [75% of max_children]

Máy tính quy trình PHP-FPM

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php ini - php này

Khi PHP chạy, nó sẽ nạp các cấu hình để thay đổi cách nó ứng sử từ các file php.ini, hầu hết các thiết lập được thực hiện ở đây (một số thiết ...

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Tìm hiểu về ngôn ngữ php

PHP - viết tắt hồi quy của Hypertext Preprocessor, là một ngôn ngữ lập trình kịch bản được chạy ở phía server nhằm sinh ra mã html trên client. PHP đã ...

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn dùng garbage colection trong PHP

Memory leaks can happen in any language, including PHP. These memory leaks may happen in small increments that take time to accumulate, or in larger jumps that manifest quickly. Either way, if ...

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php serve pdf - php phục vụ pdf

Trang chủ//Chia sẻ//Website/Lập trình PHP kết hợp JS cho xem file PDF dưới dạng hình ảnh mà không bị lộ đường dẫn file PDFLập trình PHP kết hợp JS cho xem file ...

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn subtract php - trừ php

Trang chủ và học hỏi: Khóa học lập trình PHPPHP Programming CoursePHP Programming CourseNội dung chínhPhép trừ đơn giản.Gán kết quả cho một biến. Trừ các ...

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn dùng array creator trong PHP

Trang chủHướng dẫn họcHọc PHPPHP arrayĐịnh nghĩa và cách dùng PHP arrayArray là kiểu dữ liệu lưu trữ nhiều giá trị trong một biến duy nhất.Rất tiện dụng ...

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn role of php - vai trò của php

Trang chủHướng dẫn họcHọc PHPPHP functionĐịnh nghĩa và cách dùng PHP functionPHP function (thường gọi là hàm), có rất nhiều hàm khác nhau được khai báo sẵn ...

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn dùng strcmp python trong PHP

Sử dụng toán tử so sánhCách đơn giản và thô sơ nhất là dùng toán tử so sánh của PHP (comparison operators). Tuy nhiên không nên dùng toán tử Equal (==) mà nên dùng ...

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn php-fpm calculate max_children - php-fpm tính toán max_children

Hướng dẫn dùng alphanumeric values trong PHP

(PHP 4, PHP 5, PHP 7, PHP 8)rand — Génère une valeur aléatoireDescriptionrand(): intrand(int $min, int $max): int Appelée sans les options min et max, rand() retourne un nombre pseudoaléatoire ...