Home  >  Article  >  Backend Development  >  Detailed explanation of php-fpm tuning method

Detailed explanation of php-fpm tuning method

WBOY
WBOYOriginal
2023-07-08 16:31:372988browse

PHP-FPM is a commonly used PHP process manager used to provide better PHP performance and stability. However, in a high-load environment, the default configuration of PHP-FPM may not meet the needs, so we need to tune it. This article will introduce the tuning method of PHP-FPM in detail and give some code examples.

1. Increase the number of processes

By default, PHP-FPM only starts a small number of processes to handle requests. In a high-load environment, we can improve the concurrent processing capabilities of PHP-FPM by increasing the number of processes. The number of processes can be set by editing the php-fpm.conf file.

vi /etc/php-fpm.conf

Find the following two parameters and adjust their values ​​to appropriate values:

pm.max_children = 50
pm.start_servers = 20

Among them, pm.max_children represents the maximum number of processes, and pm.start_servers represents the number of processes at startup. .

2. Adjust the process idle time

By default, the PHP-FPM process will remain idle for a period of time and then shut down to reduce the cost of frequent startup and shutdown of the process. However, in a high-load environment, the process idle time can be lowered to improve PHP-FPM's processing capabilities.

pm.max_spare_servers = 10
pm.min_spare_servers = 5

Among them, pm.max_spare_servers represents the maximum number of idle processes, and pm.min_spare_servers represents the minimum number of idle processes.

3. Improve the request processing capability of the process

The PHP-FPM process can handle multiple requests at the same time. This can be achieved by setting the following parameters:

pm.max_requests = 1000

This parameter Indicates the maximum number of requests that each process is allowed to handle. When this number is reached, the process is shut down and restarted to release resources.

4. Use the dynamic process management mode

PHP-FPM uses the static process management mode by default, that is, a fixed number of processes are created at startup. In a high-load environment, you can use the dynamic process management mode to let PHP-FPM dynamically create and destroy processes according to the number of requests to improve performance and resource utilization.

pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 10

5. Optimize PHP configuration

In addition to adjusting the relevant parameters of PHP-FPM, we can also optimize some configurations of PHP to further improve performance. The following are some common optimization items:

  1. Increase the size of the PHP cache:
opcache.memory_consumption = 256
  1. Increase the cache size of PHP script parsing:
max_execution_time = 30
  1. Optimize PHP memory management:
memory_limit = 128M
  1. Enable PHP FastCGI buffering:
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

The above are only some common optimization methods, for Different servers and applications may have different tuning strategies. Before optimizing, it is recommended to first understand the load of the server and the performance characteristics of the application to determine the specific tuning plan.

Summary

By tuning PHP-FPM, the performance and stability of PHP can be improved, and the load pressure of the server can be effectively reduced in high-load environments. This article introduces some common tuning methods and gives code examples. I hope to be helpful.

The above is the detailed content of Detailed explanation of php-fpm tuning method. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn