Skip to content
On this page

PHP 설정 변경을 통한 EC2 인스턴스 타입 최적화

EC2 인스턴스 타입에 적합한 PHP 설정을 확인함으로써 리소스를 더 유연하게 조정할 수 있습니다. PHP 프로세스 수를 제한하면 Redis, Memcached, RDS와 같은 잠재적 병목 지점에 대한 연결 관리에 이점을 제공합니다. 과도한 연결은 각 지점에서 오버헤드를 발생시킬 수 있으며, PHP 프로세스를 제한함으로써 어느 정도 조정할 수 있습니다.

EC2 인스턴스 타입별 PHP 설정 검증

비용 관점에서 EC2 인스턴스 타입을 적극적으로 줄이는 것을 고려해볼 만합니다. 하지만 PHP 프로세스 설정이 EC2 메모리와 관련되어 있어 현재 PHP 설정으로 인스턴스 타입을 낮추는 것에 대한 우려가 있습니다. 더 적은 프로세스 설정으로 서비스가 부하를 처리할 수 있는지 테스트해야 합니다.

테스트 결과

설정CPU 사용률메모리 사용률childsparestartmax_child비고
원본 상태10%24%18015060160-
1차 조정11%17%15010060150실제 사용량 대비 설정이 여전히 크므로 활성 프로세스는 변화가 없었고, 유휴 프로세스만 적게 생성되어 메모리 사용량만 감소
2차 조정11%7%503010501차 조정과 유사하게 활성 프로세스는 동일한 CPU 사용률로 변화 없었지만, 유휴 프로세스가 감소하여 메모리 사용량 감소
3차 조정12%5%30553010개 유휴 프로세스 유지, CPU 사용률 동일, 문제없이 약간의 메모리 감소
markdown
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
     Loaded: loaded (/usr/lib/systemd/system/php7.2-fpm.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-05-13 06:21:57 UTC; 5h 40min ago
       Docs: man:php-fpm7.2(8)
    Process: 610110 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.2/fpm/poo>
   Main PID: 609958 (php-fpm7.2)
     Status: "Processes active: 0, idle: 150, Requests: 1387052, slow: 0, Traffic: 84.5req/sec"
      Tasks: 151 (limit: 9115)
     Memory: 1.4G (peak: 1.6G)
        CPU: 2h 28min 15.644s
     CGroup: /system.slice/php7.2-fpm.service

start_servers 5 min_spare_servers 5 설정으로 12개의 태스크를 가지고 있다는 것은 6개 프로세스 내에서 원활하게 처리되고 있음을 나타냅니다. 이 경우 보다 적은 PHP 프로세스의 개수를 세팅하여도 문제 없이 서비스가 가능하다고 판단할 수 있고, 그에 따라 컴퓨팅 자원을 적게 소모하도록 하여 부가적인 득을 얻을 수 있습니다. 프로세스 개수대비 요청 수처리에 대해서는 서비스의 특성, 로직의 특성에 따라서 다르게 나타날 수 있습니다.

markdown
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
     Loaded: loaded (/usr/lib/systemd/system/php7.2-fpm.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-05-13 07:55:23 UTC; 4h 7min ago
       Docs: man:php-fpm7.2(8)
    Process: 70546 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.2/fpm/pool>
   Main PID: 70538 (php-fpm7.2)
     Status: "Processes active: 1, idle: 10, Requests: 911110, slow: 0, Traffic: 73.7req/sec"
      Tasks: 12 (limit: 9115)
     Memory: 140.3M (peak: 365.5M)
        CPU: 1h 48min 10.302s
     CGroup: /system.slice/php7.2-fpm.service