配置:mysql
Centos 6.6 minimal
sql
CPU: E5 - 2620 x 2shell
Mem: 64G
後端
Disk : 1T
安全
內核配置以下:
服務器
[root@server1 ~]# sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_fin_timeout = 50 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_tw_recycle = 1 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.netdev_max_backlog = 262144 net.core.somaxconn = 262144 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_max_syn_backlog = 262144 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 net.ipv4.tcp_synack_retries = 3 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_rmem = 4096 4096 16777216 net.ipv4.tcp_wmem = 4096 4096 16777216 fs.file-max = 65535 [root@server1 ~]#
Atlas 安裝路徑 :/usr/local/mysql-proxycookie
Atlas 配置以下:網絡
[mysql-proxy] #帶#號的爲非必需的配置項目 #管理接口的用戶名 admin-username = admin #管理接口的密碼 admin-password = admin #Atlas後端鏈接的MySQL主庫的IP和端口,可設置多項,用逗號分隔 proxy-backend-addresses = 10.10.10.1:3306 #Atlas後端鏈接的MySQL從庫的IP和端口,@後面的數字表明權重,用來做負載均衡,若省略則默認爲1,可設置多項,用逗號分隔 proxy-read-only-backend-addresses = 10.10.10.2:3306@2,10.10.10.3:3306@1 #主庫:10.10.10.1 #從庫:10.10.10.2 、10.10.10.3 #用戶名與其對應的加密過的MySQL密碼,密碼使用PREFIX/bin目錄下的加密程序encrypt加密,下行的user1和user2爲示例,將其替換爲你的MySQL的用戶名和加密密碼! pwds = root:CmzTQ3dAQ-VU3z0J1zByMQ== #設置Atlas的運行方式,設爲true時爲守護進程方式,設爲false時爲前臺方式,通常開發調試時設爲false,線上運行時設爲true,true後面不能有空格。 daemon = true #設置Atlas的運行方式,設爲true時Atlas會啓動兩個進程,一個爲monitor,一個爲worker,monitor在worker意外退出後會自動將其重啓,設爲false時只有worker,沒有monitor,通常開發調試時設爲false,線上運行時設爲true,true後面不能有空格。 keepalive = true #工做線程數,對Atlas的性能有很大影響,可根據狀況適當設置 event-threads = 48 #日誌級別,分爲message、warning、critical、error、debug五個級別 log-level = message #日誌存放的路徑 log-path = /usr/local/mysql-proxy/log #SQL日誌的開關,可設置爲OFF、ON、REALTIME,OFF表明不記錄SQL日誌,ON表明記錄SQL日誌,REALTIME表明記錄SQL日誌且實時寫入磁盤,默認爲OFF #sql-log = ON #慢日誌輸出設置。當設置了該參數時,則日誌只輸出執行時間超過sql-log-slow(單位:ms)的日誌記錄。不設置該參數則輸出所有日誌。 #sql-log-slow = 10000 #實例名稱,用於同一臺機器上多個Atlas實例間的區分 #instance = test #Atlas監聽的工做接口IP和端口 proxy-address = 10.10.10.254 #Atlas監聽的管理接口IP和端口 admin-address = 127.0.0.1:2345 #分表設置,此例中person爲庫名,mt爲表名,id爲分表字段,3爲子表數量,可設置多項,以逗號分隔,若不分表則不須要設置該項 #tables = person.mt.id.3 #默認字符集,設置該項後客戶端再也不須要執行SET NAMES語句 #charset = utf8 #容許鏈接Atlas的客戶端的IP,能夠是精確IP,也能夠是IP段,以逗號分隔,若不設置該項則容許全部IP鏈接,不然只容許列表中的IP鏈接 #client-ips = 127.0.0.1, #Atlas前面掛接的LVS的物理網卡的IP(注意不是虛IP),如有LVS且設置了client-ips則此項必須設置,不然能夠不設置 #lvs-ips =
關於內核與Atlas的配置,網絡上不少不少教程了! 這邊就不說起了。併發
ulimit 的修改是必須的,不然在打開與鏈接的時候會有提示。負載均衡
針對Atlas 幾點包括:
一、存儲過程若是帶insert 與 update 偶爾會發送到從庫
二、線程重置(這個是360官方未作處理,其實不影響使用)
三、最好是關閉SELinux 。
四、Linux服務器安全軟件限制,致使Atlas 併發到必定數量後被強制終止或重置而致使錯誤! (如非必要,請勿安裝Linux安全軟件)
以上,關於線程重置大約是併發上來,服務器內核、ulimit 沒配置好也有必定關係,你們本身參考下本身的電腦性能給予相應的配置皆可~
若有錯誤、歡迎指出!