Shunned?
- ProxySQL에서 Shunned는 일정 횟수 이내에 접속에 대한 error가 발생했을때 서버를 접속 서버를 제외시키기 위한 수단입니다.
Why Shunned Value Modify?
- Shunned에 대한 parameter는 2개가 존재합니다.
- mysql-shun_on_failures : 같은 서버에서 1초동안 몇번의 connection 에러가 났을 경우 자동으로 Shunned 상태로 변경 될것인지에 대한 parameter입니다.
– default : 5 - mysql-shun_recovery_time_sec : 자동적으로 Shunned 상태가 된 서버가 몇 초뒤에 자동으로 online 상태로 변경할 것인지에 대한 parameter입니다.
– default : 10(seconds) - 이 두개의 parameter를 다시한번 풀어보면, "1초동안 5번의 connection 에러가 났을경우 Shunned 상태로 변경되서 신규 커넥션이 더이상 에러 서버로 가지 않고 10초 이후에 에러 서버를 다시 online으로 변경시켜서 서비스 투입시킨다."라는 것 입니다.
- 이때 가장 문제가 된다고 생각한 점은 10초 이후에 에러 서버를 다시 online으로 바꿔서 서비스 투입을 한다는 것 입니다. 아무런 검증없이 10초 뒤에 서비스 투입하기에는 위험한 것 같습니다.
- 그래서 해당 파라미터 2개에 대해서 수정을 했습니다.
- mysql-shun_on_failures : 5 -> 1
- mysql-shun_recovery_time_sec : 10 -> 7200
- 바꾼 파라미터의 의미는 1초에 1번 connection fail이 나면 바로 shun 상태로 빠져서 서비스에서 제외를 시키고 7200초동안 서비스 투입을 안시키겠다는 것 입니다.
How to Parameter Modify?
parameter 변경 후 RUNTIME 및 DISK 반영
parameter 변경 여부 확인
Goal of Shunned Status
- Shunned 상태를 잘 이용하면 손쉽게 slave 서버들의 health check 및 DB서버 장애시 서비스(Application)에서의 error를 최소한으로 줄일 수 있을 것이라고 생각이 됩니다.
- 현재 서버 shutdown으로 인한 OFFLINE_SOFT와 OFFLINE_HARD가 자동으로 변경되지는 않는 것 같습니다. 그래서 1차적으로 SHUNNED 상태로 변경을 하고 다시 체크해서 OFFLINE_SOFT와 OFFLINE_HARD로 변경하는 방안을 생각해야합니다.
'Proxy > ProxySQL' 카테고리의 다른 글
ProxySQL : Too Many Open Files Error (0) | 2016.10.01 |
---|---|
ProxySQL 기본설명 (0) | 2016.10.01 |
Global Variable : Admin Setting (0) | 2016.10.01 |
ProxySQL Global Variable (0) | 2016.10.01 |