참고 문서  

The best configuration for your PHP-FPM settings depends on your specific server environment, application requirements, and traffic patterns. However, I can provide you with a starting point for tuning your PHP-FPM settings on a server with 8 GB of memory.

  1. pm: Choose 'dynamic' as the process manager. This allows PHP-FPM to manage the number of worker processes based on demand, which is ideal for most use cases.

    pm = dynamic
  2. pm.max_children: This setting determines the maximum number of child processes that can be created. Calculate this value based on the memory consumed by each PHP-FPM process and the amount of memory you want to allocate to PHP-FPM. For example, if each PHP-FPM process consumes 100 MB of memory, and you want to allocate 70% of your 8 GB memory to PHP-FPM, you can set the value as:

    pm.max_children = (0.7 * 8192 MB) / 100 MB = 57

    In this case, you can set pm.max_children to around 57.

    pm.max_children = 57
  3. pm.start_servers: This setting determines the number of child processes created when the FPM service starts. A good starting point is to set it to 20% of pm.max_children:

    pm.start_servers = 0.2 * 57 ≈ 11
    pm.start_servers = 11
  4. pm.min_spare_servers: This setting specifies the minimum number of idle (spare) worker processes. Set this value to around 10% of pm.max_children:

    pm.min_spare_servers = 0.1 * 57 ≈ 6
    pm.min_spare_servers = 6
  5. pm.max_spare_servers: This setting specifies the maximum number of idle (spare) worker processes. Set this value to around 50% of pm.max_children:

    pm.max_spare_servers = 0.5 * 57 ≈ 29
    pm.max_spare_servers = 29

These values are a starting point for your PHP-FPM configuration. You should monitor your server's performance and adjust these settings as necessary based on your application's requirements and traffic patterns. Additionally, consider configuring other settings, such as request timeouts and limits, to fine-tune your PHP-FPM performance.