서버 성능
서버 성능은 WCPOS 애플리케이션의 속도와 반응성에 직접적인 영향을 미칩니다. 이 가이드는 내장된 메트릭 및 문제 해결 기술을 사용하여 서버 성능을 모니터링, 진단 및 최적화하는 데 도움이 됩니다.
서버 메트릭 이해하기
WCPOS는 각 데이터 가져오기 작업(제품, 주문, 고객 등)마다 서버 성능 메트릭을 자동으로 수집합니다. 이 메트릭은 로그 화면에서 확인할 수 있습니다.
일반적인 서버 메트릭
{
"total": "24692",
"execution_time": "76.64 ms",
"server_load": "[15.20605469,16.16357422,16.76806641]"
}
세부 사항:
total- 처리된 레코드 수 (24,692 제품 ID)execution_time- 작업 완료에 소요된 시간 (76.64 밀리초)server_load- 1, 5, 15분 동안의 서버 부하 평균
서버 부하 설명
서버 부하는 다수의 시간 동안의 평균 시스템 부하를 나타냅니다:
- 첫 번째 값 - 1분 평균 (15.21)
- 두 번째 값 - 5분 평균 (16.16)
- 세 번째 값 - 15분 평균 (16.77)
부하 해석
서버 부하 값은 오해의 소지가 있으며 주의 깊게 해석해야 합니다:
서버 부하 평균이 성능과 직접적으로 연관되지 않는 경우가 있습니다. 높은 부하 값(15+)을 가진 서버도 충분한 리소스가 있고 잘 최적화되어 있다면 매우 반응적일 수 있습니다. 부하 값이 아닌 실행 시간에 중점을 두세요.
일반 지침:
- CPU 코어에 대한 부하 - 8코어 서버의 8.0 부하는 완전 활용을 의미합니다.
- 지속적 vs. 일시적 - 짧은 급증은 정상이며, 지속적인 높은 부하는 문제를 나타낼 수 있습니다.
- 성능이 더 중요함 - 높은 부하의 반응적인 서버가 낮은 부하의 느린 서버보다 낫습니다.
주목해야 할 사항:
- 시간이 지남에 따라 증가하는 실행 시간
- 설명 없이 지속적으로 증가하는 부하
- 높은 부하와 느린 실행 시간이 함께 나타나는 경우
성능 기준선
실행 시간 지침
| 작업 | 우수 | 허용 가능 | 보통 | 치명적 |
|---|---|---|---|---|
| 제품 가져오기 | < 100ms | 100-500ms | 500ms-2s | > 2s |
| 주문 생성 | < 200ms | 200-800ms | 800ms-3s | > 3s |
레코드 수 고려사항
실행 시간은 레코드 수에 따라 합리적으로 증가해야 합니다:
// Good scaling examples
{"total": "100", "execution_time": "15.2 ms"} // 0.15ms per record
{"total": "1000", "execution_time": "89.4 ms"} // 0.09ms per record
{"total": "10000", "execution_time": "234.1 ms"} // 0.02ms per record
// Poor scaling examples
{"total": "100", "execution_time": "500.0 ms"} // 5.0ms per record
{"total": "1000", "execution_time": "8000.0 ms"} // 8.0ms per record
성능 문제 진단하기
단계 1: 로그 모니터링
- 내비게이션 창에서 로그를 엽니다.
- 느린 작업을 수행합니다(제품 동기화, 주문 생성 등).
- 해당 로그 항목을 찾습니다.
- 메트릭을 보기 위해 컨텍스트를 확장합니다.
단계 2: 메트릭 분석
높은 실행 시간 + 높은 서버 부하 = 서버 리소스 문제
{
"total": "5000",
"execution_time": "3500.0 ms",
"server_load": "[12.45, 11.23, 10.87]"
}
해결책: 서버 리소스를 늘리거나 서버 구성 최적화
높은 실행 시간 + 정상 서버 부하 = 플러그인/데이터베이스 문제
{
"total": "1000",
"execution_time": "2800.0 ms",
"server_load": "[1.23, 1.45, 1.67]"
}
해결책: 느린 플러그인을 식별하거나 데이터베이스 쿼리 최적화
정상 실행 시간 + 높은 서버 부하 = 일반적인 서버 과부하
{
"total": "2000",
"execution_time": "150.0 ms",
"server_load": "[8.90, 9.12, 8.45]"
}
해결책: 다른 프로세스에서 서버 부하를 줄이거나 리소스를 업그레이드
일반적인 성능 문제
1. 불충분한 서버 리소스
증상:
- 지속적으로 높은 서버 부하 (> 4.0 대부분의 서버에서)
- 모든 작업에서 긴 실행 시간
- 빈번한 타임아웃
해결책:
- CPU 업그레이드 - 더 많은 코어가 동시 요청을 더 잘 처리
- RAM 증가 - 디스크 I/O 감소 및 캐싱 개선
- SSD 스토리지 사용 - 데이터베이스 성능을 극적으로 향상
- PHP 설정 최적화 -
memory_limit,max_execution_time증가
2. 느린 데이터베이스 쿼리
증상:
- 정상 서버 부하에서 높은 실행 시간
- 특히 느린 제품/주문 가져오기
- 로그에서 데이터베이스 관련 오류 코드
해결책:
- WooCommerce HPOS 활성화 - 가장 큰 데이터베이스 성능 개선
- 객체 캐싱 사용 - 호스트에서 사용할 수 있으면 Redis 또는 Memcached
- WordPress 업데이트 유지 - 코어 업데이트에는 종종 데이터베이스 최적화가 포함됩니다.
- 게시물 수정 제한 - wp-config.php에
define('WP_POST_REVISIONS', 3);추가
3. 플러그인 간섭
증상:
- 플러그인 업데이트 후 갑작스러운 성능 저하
- 특정 작업이 다른 작업보다 훨씬 느림
- 정상 서버 부하에서 높은 실행 시간
문제 해결:
- 스테이징에서 테스트 - WooCommerce와 WCPOS를 제외한 모든 플러그인 비활성화
- 기준 측정 - 최소한의 플러그인으로 실행 시간 기록
- 점진적으로 활성화 - 플러그인을 하나씩 추가하여 원인을 식별
- 플러그인 훅 확인 - WooCommerce 작업에 연결된 플러그인 확인
문제가 발생하기 쉬운 플러그인:
- 제품 작업 중 무거운 SEO 플러그인
- 복잡한 재고 관리 시스템
- 실시간 분석/추적 플러그인
- 잘못된 코드의 사용자 정의 플러그인
4. WordPress/WooCommerce 구성
증상:
- 일관되지 않은 성능
- 로그에서 메모리 관련 오류
- 느린 관리자 대시보드
최적화 체크리스트:
- PHP 버전 - 더 나은 성능을 위해 PHP 8.0+ 사용
- WooCommerce HPOS - 고성능 주문 저장 활성화(아래 참조)
- WordPress 캐싱 - 사용 가능한 경우 객체 캐싱 활성화
- WooCommerce 설정 - 제품 이미지 크기 최적화
WooCommerce 고성능 주문 저장소(HPOS)
HPOS는 WooCommerce를 위한 가장 중요한 성능 개선 중 하나입니다. 주문을 WordPress 게시물 테이블이 아닌 사용자 지정 데이터베이스 테이블에 저장하여 다수의 주문을 가진 상점을 위한 성능을 극적으로 개선합니다.
이점:
- 빠른 주문 쿼리 - 최적화된 데이터베이스 구조에 저장된 주문
- 데이터베이스 부하 감소 - 게시물/페이지와 주문을 분리합니다.
- 더 나은 확장성 - 대량의 주문을 효율적으로 처리
- 개선된 관리자 성능 - 빠른 주문 관리 화면
활성화 방법:
WooCommerce > 설정 > 고급 > 기능으로 이동- "고성능 주문 저장" 활성화
- 마이그레이션 프로세스를 따릅니다.
자세히 알아보기:
서버 모니터링 모범 사례
1. 정기적인 성능 점검
- 주간 검토 - 성능 트렌드를 위해 로그 확인
- 기준 측정 - 정상 실행 시간 기록
- 피크 시간 모니터링 - 트래픽이 많은 동안 모니터링
2. 성능 경고 설정
다음 경고 신호를 모니터링합니다:
- 실행 시간이 지속적으로 > 1000ms
- 서버 부하가 > 5.0으로 계속된 경우
- 로그에서 빈번한 타임아웃 오류
3. 용량 계획
성장 추세 추적:
- 레코드 수 성장 - 제품, 주문, 고객
- 성능 저하 - 실행 시간이 어떻게 확장되는지
- 리소스 활용 - CPU, 메모리, 디스크 사용량
서버 최적화 전략
1. WordPress/WooCommerce 모범 사례
HPOS 활성화:
- WooCommerce를 위한 가장 영향력 있는 성능 향상
- 위의 HPOS 섹션을 참조하여 자세한 내용 확인
PHP 구성 (호스트에 문의):
memory_limit = 512M
max_execution_time = 300
max_input_vars = 3000
WordPress 구성:
// In wp-config.php - limit post revisions
define('WP_POST_REVISIONS', 3);
// Enable WordPress debug logging if needed
define('WP_DEBUG_LOG', true);
2. 호스팅 수준 최적화
객체 캐싱:
- Redis 또는 Memcached 사용 가능 여부를 호스트에 문의
- 많은 관리형 WordPress 호스트는 이를 자동으로 제공합니다.
PHP 버전:
- 상당한 성능 향상을 위해 PHP 8.0+ 사용
- 대부분의 호스트는 PHP 버전 전환을 쉽게 허용합니다.
서버 리소스:
- 적절한 RAM(최소 1GB, 가능하면 2GB 이상) 확보
- SSD 스토리는 기존 드라이브보다 데이터베이스 성능을 훨씬 향상시킵니다.
도움을 요청해야 할 때
호스팅 제공업체 또는 WordPress 개발자에게 문의하십시오:
- 서버 부하가 지속적으로 > 8.0 최적화 노력에도 불구하고
- 실행 시간이 > 5000ms 심플한 작업에 대해
- 로그에서 메모리 오류가 자주 발생하는 경우
- 데이터베이스 쿼리가 > 2초 이상 소요되는 경우
다음 정보를 제공하십시오:
- 로그에서 서버 메트릭
- 활성 플러그인 목록
- 서버 사양 (CPU, RAM, 스토리지 유형)
- WordPress 및 WooCommerce 버전