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:
opcache.memory_consumption = 256
max_execution_time = 30
memory_limit = 128M
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!