天天看點

四、運維經驗總結

1、自動化管理

CMDB管理所有的資源資訊。

Agent方式上報硬軟體資訊。

标準化基礎設定。機型、OS核心參數、軟體版本。

Puppet管理和下發标準化的配置檔案、公用的任務計劃、軟體包、運維工具。

資源申請自助服務。

2、自動化監控

zabbix作為主要的監控資料收集工具。

開發實時性能dashboard,對開發提供查詢。

單機部署多個redis,借助于zabbix discovery。

開發DB響應時間監控工具Titan。

基本思想來源于pt-query-degest,通過分析tcp應答封包産生日志。flume agent + kafka收集,spark實時計算,hbase作為存儲。最終得到hotquery/slowquery,request source等性能資料。

3、自動化運維

資源申請自助服務化。

如果申請合理,一鍵即可完成cluster叢集部署。

能不動手的,就堅決不動手,另外,監控資料對開發開發很重要,讓他們了解自己服務性能,有時候開發會更早發現叢集的一些異常行為,比如資料不過期這種問題,運維就講這麼多了,後面是幹貨中的幹貨,由deep同學開發的幾個實用工具。

4、redis開源工具介紹4.1 redis實時資料遷移工具

1) 線上實時遷移

2) redis/twemproxy/cluster 異構叢集之間互相遷移。

3)github:https://github.com/vipshop/redis-migrate-tool 

4.2 redis cluster管理工具

1)批量更改叢集參數

2)clusterrebalance

3)很多功能,具體看github :

https://github.com/deep011/redis-cluster-tool

4.3 多線程版本Twemproxy

1)大幅度提升單個proxy的吞吐量,線程數可配置。

2)壓測情況下,20線程達到50w+qps,最優6線程達到29w。

3)完全相容twemproxy。

4)github:

https://github.com/vipshop/twemproxies

4.4 在開發的中的多線redis

1)Github:

https://github.com/vipshop/vire

2)歡迎一起參與協作開發,這是我們在開發中的項目,希望大家能夠提出好的意見。

問答(陳群和申政解答):問題1:版本更新,對資料有沒有影響?

答:我們重新開機更新從2.8.17到3.0.3/3.0.7沒有任何的異常。3.0到3.2我們目前還沒有實際更新操作過。

問題2:請問下sentinel模式下有什麼好的讀寫分離的方法嗎

答:我們沒有讀寫分離的使用,讀寫都在maste;叢集太多,管理複雜;此外,我們也做了分片,沒有做讀寫分離的必要;且我們幾乎是一主一從節點配置

問題3:redis的fork主要是為了rdb吧,去掉是為了什麼呢

答:fork不友好

問題4:如果不用fork,是怎麼保證rdb快照是精确的,有其他cow機制麼

答:可以通過其他方法,這個還在探究階段,但目标是不用fork

問題5:就是redis cluster模式下批量操作會有很多問題,可是不批量操作又會降低業務系統的性能

答:确實存在這方面的問題,這方面支援需要用戶端的支援,但是jedis的作者也不大願意支援pipeline或者一些multi key操作。如果是大批量的操作,可以用多線程提高用戶端的吞吐量。

本文作者:geelou

本文來自雲栖社群合作夥伴rediscn,了解相關資訊可以關注redis.cn網站。

繼續閱讀