본문 바로가기

카테고리 없음

MariaDB 5.5 Galera Cluster Monitoring v1.0

MariaDB 5.5 Galera Cluster Monitoring v1.0

 

Date

Ver

Etc.

13.08.05

v1.0

 

 

 

 

 

 

 

 

 

 

http://www.codership.com/wiki/doku.php?id=monitoring 를 번역한 문서입니다.

 

 

Table of Contents

중요 모니터링 파라미터

모든 wsrep 관련있는 ( 경우에는 – Galera ) status variables ‘wsrep_’ prefix 가진다. 그래서 다음과 같이 쉽게 확인할 있다.

mysql> SHOW VARIABLES LIKE 'wsrep_%';

Status variables 매회의 SHOW STATUS 명령에 대해 값이 다르다. 때문에 2 회의 SHOW STATUS ~ 1 분의 인터벌 수행하는 것을 권고한다.

 

1. Cluster integrity 체크

가장 중요한 확인사항은 노드가 제대로 클러스터에 속해 있는지 확인하는 것이다. 이는 다음을 통해 확인할 있다.

wsrep_cluster_state_uuid

값은 클러스터의 모든 노드가 동일한 값을 가져야만 한다. wsrep_cluster_state_uuid 값이 다른 값을 가지고 있는 노드는 연결되지 않은 노드이다.

다음으로 체크할 사항은 노드가 동일한 콤포넌트에 연결되어 있는지 확인하는 것이다.

wsrep_cluster_conf_id

또한 모든 노드가 동일한 값을 가져야 한다. 만약 wsrep_cluster_conf_id 다른 값을 가지고 있다면 이는 파티션 되어 있다는 의미이다. 이는 임시적인 문제로
노드간의 네트워크 연결 문제가 해결되면 해소되어야 문제이다.

wsrep_cluster_size

만약 노드 숫자와 동일한 값을 리턴한다면, 모든 클러스터 노드는 연결되어 있는 것이다. 이는 노드에서만 체크하더라도 충분한 값이다.

마지막으로 연결되어 있는 노드가 연결되어 있는 클러스터 콤포넌트의 primary 상태를 체크하는 것은 중요하다.

wsrep_cluster_status

만약 값이 Primary 값이 아니라면, 파티션이 조재, split-brain 컨디션이다. 그리고 해당 콤포넌트는 현재 수행이 불가능한 상태가 된다.
Primary component 연결 다른 노드가 없다면 (예를들어 같은 콤포넌트에 non-primary 상태로 연결 모든 노드) 클러스터는 수동으로 rebootstrapped 해야 한다.
모든 노드는 shutdown 되어야 하며 가장 앞선 시점으로 restarted 해야 한다.

(wsrep_last_committed status variables 확인한다.)

하지만 존재하는 다른 클러스터 콤퍼넌트가 존재하고 그것이 primary 라면, 노드간의 연결 손실과 회복을 확인해야 한다. non-primary 상태로부터의 복구는 primary component 대해
자동으로 재연결하고 싱크한다.

 

2. Node 상태점검

상태를 점검하는 주요 variable 다음과 같다.

wsrep_ready

값이 true (실제로는 ON | OFF 표현 ) 라면 해당 노드는 SQL load 받아들일 있다.

wsrep_connected

만약 true (ON) 아니라면 확인해야 한다. OFF 라면 해당 노드는 아직 클러스터에 연결되지 않았다는 것을 의미한다. 이는 잘못된 환경구성으로 인해 발생한다.
(
잘못된 wsrep_cluster_address / 혹은 wsrep_cluster_name). wsrep_ready = off 라면, 발생 문제는 wsrep_local_state_comment 에서 확인할 있다.
Primary component
에서 가질 있는 상태는 Joining, Waiting for SST, Joined, Synced, Donor 이다. 만약 wsrep_ready = off 이고
state comment
값이 처음 3 하나라면, 이는 Cluster 동기중이란 뜻이다.
non-primary
콤포넌트 노드의 state comment Initialized 이다. 다른 states 일시적인 것들이다.

 

3. Replication 상태점검

Replication 상태를 가리키는 메인 지표는

wsrep_flow_control_paused

variables 이다. 변수의 범위는 0.0 ~ 1.0 으로 마지막 show status 명령으로부터 replication 중지되었던 시간의 비율을 의미한다. (때문에 1.0 완전한 정지를 의미한다.)
다른 의미로는 Cluster slave lag 으로 인해 얼마나 느린가를 보여준다 값은 가능한 0.0 가까워야 한다.
값을 개선하기 위한 가장 좋은 방법은 wsrep_slave_threads 값을 증가시키고 느린 노드를 클러스터 구성에서 삭제하는 것이다.
권고되는 wsrep_slave_threads 이상적인 값은 아래의 status variables 참고하여 설정한다.

wsrep_cert_deps_distance

variables 얼마나 많은 트랜잭션이 병렬로 적용될 있는지를 보여준다.
이를 참조하여 wsrep_slave_threads 값을 값보다 크게 설정할 있다.

 

가장 느린 클러스터 노드 찾기

가장 느린 클러스터 노드는 가장높은 다음의 variables 가진다 :

wsrep_flow_control_sent

그리고

wsrep_local_recv_queue_avg

위의 값이 낮을수록 좋다.

4. 느린 네트워크의 발견

High (on the order of the number of client connections) values in;1

다음의 높은 값은

wsrep_local_send_queue_avg

Network link 병목현상을 가리킨다. 경우, 원인은 어떤 레이어에서도 발생할 있으며, 물리적 구성부터 OS 구성까지 확인해야 한다.