Adobe Commerce: "인증 대기 중" 상태에서 MySQL 쿼리가 중단되면 성능 문제가 발생합니다
MySQL의 인증 대기 중 상태는 Adobe Commerce을 구동하는 Galera 기반 클러스터에서 사용되는 2단계 커밋 프로세스의 일부입니다. 이 메커니즘은 트랜잭션이 제출될 때마다 데이터베이스에서 충돌이 없도록 합니다. 이 상태의 간략한 모습은 정상이지만 지속 시간이 길어지면 성능 병목 현상이 나타납니다. 이러한 지연은 오래 실행되는 쿼리, 높은 경합 또는 인프라 문제로 인해 발생할 수 있습니다.
이를 해결하려면 느린 쿼리를 분석하고 캐시 플러시를 관리하며 SWAT 권장 사항을 구현하고 데이터베이스 통계를 최적화합니다.
설명 description
환경
- 제품: Adobe Commerce
- 데이터베이스 클러스터 유형: Galera 기반 MySQL
문제/증상
많은 MySQL 쿼리가 인증 대기 중 상태에서 중단되어 성능이 저하되었습니다. 증상은 다음과 같습니다.
- 장바구니에서 제품 가시성이 지연되었습니다.
- 쿼리 실행 속도가 느립니다.
- 느린 쿼리 로그 파일이 큽니다.
- 캐시 플러시는 피크 사용 시간과 일치합니다.
해결 방법 resolution
문제를 해결하려면:
-
MySQL 느린 쿼리 로그를 검토하여 오래 실행되는 쿼리를 식별하십시오. 로그 파일 크기가 수백 MB로 커지면 심각한 문제를 나타냅니다. 문제가 있는 모든 쿼리를 최적화하여 병목 현상을 줄이고 전반적인 성능을 개선합니다. 자세한 내용은 Commerce KB 설명서의 느린 쿼리 및 프로세스 확인을 참조하십시오.
-
늦은 밤 또는 이른 아침과 같이 사용량이 적은 시간이 아닌 시간에 캐시 플러시를 예약합니다. 이렇게 하면 수요가 많은 기간 동안 시스템 로드가 증가하지 않고 성능 저하가 방지됩니다. 자세한 내용은 Commerce 구성 안내서의 캐시 관리 설명서를 참조하십시오.
-
SWAT 보고서에서 권장 사항을 구현합니다. 이러한 작업에는 누락된 기본 키를 테이블에 추가하고 트리거 사용을 최소화하는 작업이 포함될 수 있으며, 이 두 작업 모두 경합을 줄이고 인증 속도를 향상시킬 수 있습니다. Commerce 도구 설명서에서 사이트 전체 분석 도구에 대해 자세히 알아보세요.
-
참고: 이 작업은 테이블을 일시적으로 잠글 수 있습니다. 업무 시간 외에 실행하고 중단을 방지하기 위해 크론 작업이 비활성화되었는지 확인하십시오.
테이블 분석으로
mysqlcheck을(를) 실행하여 데이터베이스 통계가 최신 상태인지 확인합니다.code language-none mysqlcheck -h<host_name> -u<user_name> -p -a <db_name> -
테이블 통계가 최신 상태인지 확인하십시오. 오래된 통계는 비효율적인 쿼리 실행 계획을 초래하여 클러스터 전체의 성능을 저하시킬 수 있습니다.