SJSBiz SJSBiz

PHP OPcache와 PHP-FPM 최적화|워드프레스 서버 속도 높이기

읽는 시간 약 6분
(adsbygoogle = window.adsbygoogle || []).push({});
image 12

워드프레스는 방문 요청이 들어올 때 PHP 코드를 실행해 페이지를 만듭니다. OPcache는 이미 해석된 PHP 코드를 메모리에 저장하고, PHP-FPM은 동시에 들어오는 요청을 처리하는 PHP 프로세스를 관리합니다.

두 기능을 적절하게 설정하면 서버 처리시간과 TTFB를 개선할 수 있지만 서버 메모리를 고려하지 않고 값을 높이면 오히려 오류가 발생할 수 있습니다.

30초 요약

  • OPcache는 컴파일된 PHP 바이트코드를 메모리에 저장합니다.
  • PHP-FPM은 PHP 요청을 처리하는 작업자 프로세스를 관리합니다.
  • OPcache가 활성화되어 있는지 먼저 확인합니다.
  • PHP-FPM 작업자 수는 서버 메모리에 맞춰 설정합니다.
  • 공유 호스팅은 직접 변경하지 못할 수 있습니다.
  • 변경 전 설정 기록과 백업이 필요합니다.

OPcache와 PHP-FPM 차이

image 13
구분OPcachePHP-FPM
주요 역할컴파일된 PHP 코드 저장PHP 요청과 프로세스 관리
기대 효과반복적인 코드 분석 감소동시 요청 처리 안정화
주요 자원공유 메모리CPU와 프로세스별 메모리
확인 항목활성화·메모리·파일 수작업자 수·대기 요청·느린 로그
잘못된 설정캐시 부족 또는 코드 갱신 지연메모리 부족과 502 오류

PHP 공식 문서는 OPcache가 미리 컴파일한 스크립트 바이트코드를 공유 메모리에 저장해 요청마다 PHP 파일을 불러오고 분석하는 작업을 줄인다고 설명합니다. PHP OPcache 공식 안내

OPcache 확인 방법

호스팅 제어판의 PHP 정보 또는 서버 상태 화면에서 OPcache 활성화 여부를 확인합니다. 직접 서버를 운영한다면 opcache.enable, 메모리 사용량, 캐시된 파일 수와 재시작 횟수를 살펴봅니다.

OPcache 메모리가 부족하면 캐시에 저장되지 못하는 PHP 파일이 늘어나거나 캐시가 자주 재시작될 수 있습니다. 반대로 작은 사이트에 지나치게 큰 메모리를 할당하면 다른 서비스가 사용할 자원이 줄어듭니다.

PHP 공식 설정의 기본값에는 opcache.memory_consumption, opcache.max_accelerated_files, opcache.validate_timestamps 등이 포함됩니다. 값은 PHP 버전과 서버 환경에 따라 달라질 수 있으므로 인터넷의 설정을 그대로 복사하지 않는 것이 좋습니다. OPcache 설정 문서

PHP-FPM 최적화 핵심

PHP-FPM은 여러 작업자 프로세스를 이용해 PHP 요청을 처리합니다. 작업자가 너무 적으면 요청이 대기하고, 너무 많으면 서버 메모리가 부족해져 사이트가 중단될 수 있습니다.

dynamic 방식은 방문량에 따라 작업자 수를 조절하고, ondemand 방식은 요청이 들어올 때 작업자를 생성해 메모리를 절약합니다. 트래픽이 일정한 사이트와 방문이 드문 사이트의 적합한 설정이 다릅니다.

가장 중요한 값은 최대 작업자 수입니다. 서버의 사용 가능한 메모리에서 운영체제, 데이터베이스, Redis와 웹서버가 사용하는 메모리를 제외한 후 PHP 프로세스 하나의 실제 사용량을 기준으로 계산해야 합니다.

(adsbygoogle = window.adsbygoogle || []).push({});

PHP-FPM 설정과 프로세스 관리 항목은 PHP 공식 FPM 설정 문서에서 확인할 수 있습니다.

안전한 적용 순서

image 14
  1. 현재 PHP 버전과 OPcache 활성화 여부를 확인합니다.
  2. 서버 메모리와 PHP 프로세스 사용량을 기록합니다.
  3. 워드프레스 파일과 데이터베이스를 백업합니다.
  4. 한 번에 하나의 설정만 변경합니다.
  5. PHP-FPM과 웹서버를 정상적으로 다시 불러옵니다.
  6. 홈페이지, 관리자 화면과 글 작성을 테스트합니다.
  7. TTFB, 오류 로그와 메모리를 비교합니다.
  8. 문제가 발생하면 이전 값으로 복원합니다.

공유 호스팅이나 관리형 워드프레스에서는 서버 설정을 직접 수정할 수 없습니다. 이때는 호스팅 고객센터에 OPcache 활성화 여부와 PHP 작업자 제한을 문의하면 됩니다.

TIP

opcache.validate_timestamps를 끄면 변경된 PHP 파일이 바로 반영되지 않을 수 있습니다. 배포 과정에서 OPcache를 초기화하는 절차가 없다면 활성 상태를 유지하는 편이 안전합니다.

또한 PHP-FPM 작업자 수를 단순히 CPU 코어 수만 보고 결정하면 안 됩니다. 워드프레스 플러그인과 요청 종류에 따라 프로세스별 메모리 사용량이 크게 달라집니다.

자주 묻는 질문

OPcache와 워드프레스 캐시 플러그인은 같은가요?

아닙니다. OPcache는 PHP 코드를 저장하고 페이지 캐시는 완성된 HTML을 저장합니다. 서로 다른 단계에서 작동합니다.

PHP-FPM 작업자를 많이 늘리면 빨라지나요?

메모리가 충분하고 요청이 대기 중일 때는 도움이 될 수 있습니다. 메모리가 부족하면 서버가 더 느려지거나 오류가 발생합니다.

초보자가 직접 설정해도 되나요?

VPS와 단독 서버 설정은 장애로 이어질 수 있습니다. 서버 관리 경험이 없다면 현재 상태만 확인하고 호스팅 업체에 변경을 요청하는 것이 안전합니다.

마무리

OPcache는 PHP 코드의 반복 분석을 줄이고 PHP-FPM은 요청 처리 프로세스를 관리합니다. 두 기능은 역할이 다르며 페이지 캐시와 Redis 객체 캐시를 함께 사용할 때 전체 서버 처리 과정을 효율적으로 구성할 수 있습니다.

설정값을 무작정 높이지 말고 현재 사용량과 오류 로그를 기준으로 한 번에 하나씩 변경하세요.

(adsbygoogle = window.adsbygoogle || []).push({});
깨비

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!
광고보고 콘텐츠 계속 읽기
원치않으시면 뒤로가기를 해주세요

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.

광고보고 콘텐츠 계속 읽기
원치않으시면 뒤로가기를 해주세요