whm & cpanel를 활용한 워드프레스 속도 높이기 : PHP-FPM 설정

콘텐츠플로우

PHP-FPM(FastCGI Process Manager)은 WordPress 관리자 페이지 속도를 개선하는 데 중요한 역할을 합니다. PHP-FPM은 PHP 요청을 효율적으로 처리하여 서버 성능을 높이고, 관리자 페이지가 느려지는 문제를 해결할 수 있습니다. 아래에서 PHP-FPM 설정을 변경하는 방법을 안내합니다.

언제 PHP-FPM을 사용해야 할까?

PHP-FPM은 아래와 같은 상황에서 사용을 고려해야 합니다:

  1. 트래픽이 많은 웹사이트
    • 하루에 수천 건 이상의 동시 요청을 처리해야 하는 고트래픽 사이트에서 PHP-FPM은 병목현상을 줄이고 응답 속도를 개선합니다.
  2. 리소스가 제한된 서버 환경
    • PHP-FPM은 메모리와 CPU 자원을 효율적으로 관리하기 때문에, 제한된 서버 환경에서도 성능 향상을 제공합니다.
  3. 워드프레스 관리자 페이지가 느릴 때
    • 관리자 페이지는 일반 페이지보다 더 많은 PHP 요청을 생성하므로, PHP-FPM 최적화를 통해 속도를 개선할 수 있습니다.
  4. PHP 요청이 과부하를 일으킬 때
    • 기존의 PHP 설정으로는 동시 요청을 충분히 처리하지 못해 504 Gateway Timeout 오류가 발생할 때 PHP-FPM을 적용하면 문제를 해결할 수 있습니다.

PHP-FPM 주요 설정 설명 및 권장값

PHP-FPM의 성능을 최적화하기 위해 중요한 설정 항목과 권장값을 아래와 같이 정리했습니다. 각 항목은 워드프레스 관리자 페이지와 같은 동적인 웹사이트의 요청 처리 성능에 영향을 미칩니다.

1️⃣ pm.max_children

  • 설명:
    • 동시에 처리할 수 있는 최대 요청 수를 정의합니다.
    • PHP-FPM이 한 번에 처리할 수 있는 요청의 최대치를 설정하며, 이를 초과하면 요청은 대기 상태로 전환됩니다.
    • 이 값은 서버의 메모리 용량에 따라 결정됩니다.
  • 권장값:
    • 10~50: 소규모 웹사이트.
    • 50~150: 중간 트래픽 웹사이트.
    • 150~300: 고트래픽 웹사이트.
    • (예: RAM 1GB당 약 20개의 max_children 가능)

2️⃣ pm.start_servers

  • 설명:
    • PHP-FPM이 시작 시 준비하는 프로세스 개수입니다.
    • 초기 요청을 처리하기 위해 준비된 상태로 대기하는 프로세스의 수를 설정합니다.
    • 설정값이 너무 낮으면 초기 요청 시 대기 시간이 증가할 수 있습니다.
  • 권장값:
    • pm.min_spare_serverspm.max_spare_servers 값 사이로 설정.
      • 예) pm.min_spare_servers=5이고 pm.max_spare_servers=10이라면 pm.start_servers=7로 설정.

3️⃣ pm.min_spare_servers

  • 설명:
    • 요청을 대기하는 동안 항상 유지되어야 하는 최소 프로세스 수를 정의합니다.
    • 이 값보다 프로세스 수가 적으면 PHP-FPM이 새 프로세스를 생성합니다.
  • 권장값:
    • 소규모 사이트: 2~5
    • 고트래픽 사이트: 5~10

4️⃣ pm.max_spare_servers

  • 설명:
    • 요청 대기를 위해 생성할 수 있는 최대 프로세스 수를 정의합니다.
    • 설정값을 초과하는 프로세스는 제거됩니다.
    • 이 값이 너무 높으면 메모리 낭비를 유발할 수 있습니다.
  • 권장값:
    • 소규모 사이트: 5~10
    • 고트래픽 사이트: 10~20

5️⃣ pm.max_requests

  • 설명:
    • 각 PHP-FPM 프로세스가 처리할 수 있는 최대 요청 수를 설정합니다.
    • 이 값은 메모리 누수를 방지하기 위해 프로세스를 주기적으로 재생성하는 역할을 합니다.
    • 값이 너무 낮으면 자주 프로세스를 재생성해 성능 저하가 발생할 수 있고, 너무 높으면 메모리 누수로 인해 문제가 생길 수 있습니다.
  • 권장값:
    • 500~1000: 안정적인 요청 처리.
    • 고트래픽 웹사이트에서 메모리 문제가 없다면 1000~2000까지 가능.

6️⃣ pm=dynamic 또는 static

  • 설명:
    • PHP-FPM 프로세스 관리 방식:
      • dynamic: 요청 수에 따라 프로세스를 동적으로 증가/감소시킴.
      • static: 고정된 수의 프로세스를 유지함.
  • 권장값:
    • dynamic: 대부분의 사이트에 적합.
    • static: 매우 안정적이고 고정된 리소스 할당이 필요한 사이트.

최종 설정 예시

서버 메모리 및 트래픽 상황에 따라 설정을 적용한 예시는 다음과 같습니다:

중간 트래픽 (RAM 4GB 기준)

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 1000

고트래픽 (RAM 8GB 기준)

pm = dynamic
pm.max_children = 150
pm.start_servers = 20
pm.min_spare_servers = 15
pm.max_spare_servers = 30
pm.max_requests = 2000

PHP-FPM 설정 변경으로 관리자 페이지 최적화 방법

1️⃣ PHP-FPM 설정이 필요한 이유

  1. 동시 요청 처리 향상
    • PHP-FPM은 다중 프로세스를 관리하여 WordPress와 같은 동적인 웹사이트의 성능을 크게 개선합니다.
  2. 리소스 효율성 증가
    • PHP 요청을 효율적으로 처리하므로 CPU와 메모리 사용량이 줄어듭니다.
  3. 특히 관리자 페이지 속도 개선
    • 관리자 페이지는 더 많은 PHP 요청을 생성하므로, PHP-FPM의 성능 최적화가 중요합니다.

2️⃣ cPanel에서 PHP-FPM 활성화 및 설정 변경

  1. cPanel에 로그인
    • 호스팅 관리 도구에 로그인하여 PHP 설정 페이지로 이동합니다.
  2. PHP-FPM 활성화
    • 소프트웨어 → MultiPHP Manager를 선택.
    • WordPress 사이트에 사용되는 도메인에 대해 PHP-FPM이 활성화되어 있는지 확인하고, 활성화되지 않았다면 활성화(Enable) 버튼을 클릭합니다.
  3. PHP-FPM 설정 변경
    • 소프트웨어 → MultiPHP INI Editor로 이동.
    • PHP-FPM 관련 설정을 아래와 같이 조정합니다:

설정 설명:

  • pm.max_children: 동시에 처리할 수 있는 최대 요청 수. (높게 설정할수록 더 많은 동시 요청 처리 가능)
    • 권장값 :
  • pm.start_servers: 초기 프로세스 개수.
  • pm.min_spare_servers: 최소 대기 프로세스 개수.
  • pm.max_spare_servers: 최대 대기 프로세스 개수.
  • pm.max_requests: 하나의 프로세스가 처리할 수 있는 최대 요청 수. (500~1000 권장)
pm = dynamic
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pm.max_requests = 500

3️⃣ PHP-FPM 설정 파일 직접 수정

호스팅 환경이 cPanel이 아닌 경우, SSH로 서버에 접속하여 직접 PHP-FPM 설정 파일을 수정할 수 있습니다.

  • PHP-FPM 설정 파일 열기 :
    SSH로 서버에 접속 후, PHP-FPM 설정 파일을 엽니다. php-fpm 설정 파일은 shell 접속 후 아래의 코드를 입력합니다.
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
  • 설정 수정 :
    아래와 같이 주요 항목을 조정
pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 10
pm.max_requests = 1000
  • PHP-FPM 재시작 :
    설정 변경 후 PHP-FPM 서비스를 재시작합니다.
sudo systemctl restart php7.x-fpm


4️⃣ 관리자 페이지 최적화 추가 작업

PHP-FPM 설정 변경 외에도 WordPress 관리자 페이지 속도를 최적화하려면 다음 작업을 함께 수행하세요:

  1. Heartbeat API 제한
    • Heartbeat Control 플러그인을 설치하여 관리자 페이지의 AJAX 요청 빈도를 제한합니다.
  2. 캐시 플러그인 설정
    • WP Rocket, W3 Total Cache 같은 캐시 플러그인을 활용하여 관리자 페이지 성능을 개선합니다.
  3. 데이터베이스 최적화
    • WP-Optimize 플러그인을 사용해 오래된 리비전, 임시 데이터 등을 정리합니다.
  4. PHP 버전 업그레이드
    • PHP 8.0 이상을 사용하면 성능이 크게 개선됩니다.

5️⃣ PHP-FPM 최적화 결과 확인

  1. 사이트 성능 점검
    • 관리자 페이지 속도가 개선되었는지 확인합니다.
    • 필요하면 Query Monitor 플러그인으로 쿼리 처리 시간을 분석합니다.
  2. 서버 리소스 사용량 점검
    • cPanel 또는 서버 관리 도구에서 CPU 및 메모리 사용량을 모니터링합니다.

🚀 결론

PHP-FPM 설정을 적절히 조정하면 WordPress 관리자 페이지 속도를 크게 개선할 수 있습니다. 추가적으로 Heartbeat 제한, 캐시 최적화, 데이터베이스 정리 등을 병행하면 더 큰 효과를 볼 수 있습니다.

PHP-FPM은 성능과 자원 관리를 모두 개선하는 PHP 실행 환경으로, 특히 트래픽이 많은 사이트나 워드프레스 관리자 페이지의 속도 문제를 해결하는 데 유용합니다. 올바르게 설정하면 웹사이트 성능을 대폭 향상시킬 수 있으며, 효율적인 프로세스 관리를 통해 안정적인 서비스를 제공합니다.

PHP-FPM이 제공하는 기능과 설정 방법을 통해 워드프레스 성능 문제를 해결할 수 있는 구체적인 단계로 넘어갑니다. 😊

Content View