본문 바로가기

Proxy

(6)
ProxySQL : Shunned value modify 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) 이 두개의 pa..
ProxySQL : Too Many Open Files Error ulimit Vlaue(EC2)1234567891011121314151617[root@localhost ~]# ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 245648max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 1024pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (..
ProxySQL 기본설명 목적LVS의 keepalived나 Hardware 적인 Switch 없이 Application에서 들어오는 process들에 대해 load balancing 할 수 있게끔 만들기 위함입니다. ProsySQL이란?ProxySQL은 기본적으로 C++로 짜여져 있는 open source proxy 프로그램입니다.총 4개의 database schema를 가지고 proxy를 컨트롤 및 모니터링이 가능 하게끔 짜여져 있습니다.기본적으로 mysql이 설치되어 있어야 합니다. 만약 server에 mysql이 설치되어 있지 않다면 설치를 해 주셔야 합니다.source 설치를 하려고 하면 CentOS의 경우 CentOS 7이상에서 compile을 해야 source 설치가 가능하며 제가 테스트한 CentOS 6.7에서는 r..
Global Variable : Admin Setting admin-admin_credentials이 변수는 user:password 페어로 colon(:)을 가지고 분산되어져 있습니다. admin 인터페이스에서 read & write를 하기 위한 인증을 받을 수 있습니다.Read only를 위한 계정은 "admin-stats_credentials"를 보시면 Read only를 위한 계정을 볼 수 있습니다.Admin 인터페이스는 ProxySQL main thread로부터 분산된 port를 읽습니다. 이 포트는 "admin-mysql_infaces"를 통해 관리됩니다.default : admin:admin admin에 대한 설정은 기본값으로 할 경우 아무나 들어와서 수정을 할 수 있기 때문에 설치문서에도 있지만 따로 설정을 변경해야 합니다. (정책 필요)admi..
ProxySQL Global Variable ProxySQL Global Variable 이란?ProxySQL의 설정은 2가지로 반영될 수 있습니다.runtime 일때, 관리자 인터페이스에서 설정하는 방법startup 할때, config file에서 설정한 것을 가지고 오는 방법. ProxySQL은 대부분의 설정값들이 daemon의 재시작없이 즉각적으로 runtime에 반영시킴으로서 오랜시간동안 가동되는 것을 지원합니다. 오직 mysql-threads와 mysql-stacksize 2가지 설정에 대해서는 runtime에 바로 반영되지 않습니다.그리고 global variables에는 2가지의 종류가 존재합니다. 이는 ProxySQL을 컨트롤 하는 부분에 종속되어 있습니다.admin variables : 관리자 인터페이스의 행동을 관리합니다. 설정값..
Proxy란? 요즘 고민하고 있는 것을 적어보려고 합니다. 제목에서처럼 요새 Proxy를 고민하고 공부하고 테스트를 하고 있습니다. 일반적인 Proxy Server는 아니고 DB에 최적화 된 Proxy입니다. Mysql DBA로써 Architecture에 대한 고민을 많이 할 수 밖에 없는데요. Failover와 부하분산이 주 목적이 되지 않을까 싶네요. 일반적으로 Mysql에서는 Replication이라는 방식을 많이 씁니다. Read 부하 분산을 Scale Out하는 방식인데요. 그렇다면 여기서 좀 더 성능을 높히기 위해선 어떻게 해야 할까요? Read 쪽에 Caching 서버를 둔다면 어떨까요? 그리고 Read를 하는 Slave DB들 중 하나가 죽었을 경우 어떻게 Failover를 할 것인가요? 이러한 생각때문..