7.4. 데이터베이스 복제 성능 테스트
클러스터와 개별 노드가 모두 정상이고 안정적인 경우 특정 데이터베이스 변수를 쿼리하여 복제 처리량에서 성능 벤치마크 테스트를 실행할 수 있습니다.
이러한 변수 중 하나를 쿼리할 때마다 FLUSH STATUS
명령이 변수 값을 재설정합니다. 벤치마크 테스트를 실행하려면 여러 쿼리를 실행하고 분산을 분석해야 합니다. 이러한 변동은 클러스터의 성능에 영향을 미치는 흐름 제어 의 양을 결정하는 데 도움이 될 수 있습니다.
흐름 제어는 클러스터가 복제를 관리하는 데 사용하는 메커니즘입니다. 로컬 수신된 큐 가 특정 임계값을 초과하면 Flow Control은 대기열 크기가 중단될 때까지 복제를 일시 중지합니다. Flow Control에 대한 자세한 내용은 Galera Cluster 웹 사이트에서 Flow Control 을 참조하십시오.
절차
다음 명령을 실행하고 확인할 wsrep
데이터베이스 변수로 VArichBLE을 바꿉니다.
$ sudo docker exec galera-bundle-docker-0 sudo mysql -B --password="[MYSQL-HIERA-PASSWORD]" -e "SHOW STATUS LIKE 'VARIABLE';"
다음 표에는 데이터베이스 복제 성능을 테스트하는 데 사용할 수 있는 wsrep
데이터베이스 변수가 나열되어 있습니다.
변수 | 요약 | 사용법 |
---|---|---|
| 마지막 쿼리 이후의 로컬 수신된 쓰기 세트 대기열의 평균 크기입니다. |
값이 0.0 보다 높으면 노드가 쓰기 세트를 수신할 때마다 write-sets를 적용할 수 없음을 나타냅니다. 이 경우 복제 제한을 트리거합니다. 이 벤치마크를 자세히 살펴보려면 |
| 마지막 쿼리 후 평균 대기열 길이입니다. | 값이 0.0 보다 큰 경우 복제 제한 및 네트워크 처리량 문제가 발생할 가능성이 높습니다. |
| 마지막 쿼리 후 로컬 수신 대기열의 최소 및 최대 크기입니다. |
|
| 마지막 쿼리 후 Flow Control이 노드를 일시 중지한 시간입니다. |
값이 0.0 보다 큰 경우 Flow Control이 노드를 일시 중지했음을 나타냅니다. 일시 중지 기간을 결정하려면 예를 들어 다음과 같습니다.
|
|
병렬로 적용할 수 있는 가장 낮은 시퀀스 번호 ( |
제한 및 일시 중지의 경우 이 변수는 평균적으로 동시에 적용할 수 있는 쓰기 집합의 수를 나타냅니다. 값을 |
| 동시에 적용할 수 있는 스레드 수 |
이 변수의 값을 늘려 더 많은 스레드를 동시에 적용할 수 있으므로
예를 들어
문제가 있는 노드에 이미 최적의 |