서버 성능
서버 성능은 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 버전