Home > Article > Backend Development > What should I do if php-fpm takes up too much memory?
Solution to the problem that php-fpm takes up too much memory: Set pm.min_spare_servers and pm.max_spare_servers within a reasonable range to ensure that the number of processes will continue to change.
The operating environment of this article: windows10 system, PHP7, thinkpad t480 computer.
The method to solve the problem of excessive memory usage by php-fpm is as follows:
Method 1: Adjust the management mode
static management mode is suitable for larger memory server, and dynamic is suitable for servers with small memory. You can set a reasonable range of pm.min_spare_servers and pm.max_spare_servers, so that the number of processes will continue to change. The ondemand mode is more suitable for small memory, such as 512MB or 256MB memory, and environments with low availability requirements.
Method 2: Reduce the number of php-fpm processes
If the memory of your VPS host is occupied and exhausted, you can check the number of your php-fpm processes. According to the number of php-fpm processes =memory/2/30 calculation, the number of php-fpm processes suitable for 1GB of memory is between 10-20, depending on the add-ons loaded by your PHP.
php-fpm configuration example
Here is a VPS configuration of php-fpm with 1GB memory as a demonstration. In actual operation, the setting value must be considered based on the performance of the server itself, PHP, etc.
pm = dynamic #dynamic和ondemand适合小内存。 pm.max_children = 15 #static模式下生效,dynamic不生效。 pm.start_servers = 8 #dynamic模式下开机的进程数量。 pm.min_spare_servers = 6 #dynamic模式下最小php-fpm进程数量。 pm.max_spare_servers = 15 #dynamic模式下最大php-fpm进程数量。
Recommended learning: php training
The above is the detailed content of What should I do if php-fpm takes up too much memory?. For more information, please follow other related articles on the PHP Chinese website!