天天看點

Redis開發運維實踐上線部署規劃之伺服器部署位置5.3 伺服器部署位置

盡可能把client和server部署在同一台機器上,比如都部署在app server,或者一個網段中,減少網絡延遲對于redis的影響。

如果是同一台機器,又想榨幹redis性能可以考慮采用unix domain sockets配置方式,配置方式如下

另外,對于混合部署即redis和應用部署在同一台伺服器上,那麼可能會出現如下的情況:

出現瞬時 redis 大量連接配接和處理逾時,應用業務線程被阻塞,導緻服務拒絕,過一段時間可能又自動恢複了。這種瞬時故障非常難抓現場,一天來上幾發就會給人業務不穩定的感受,而一般基礎機器名額的監控周期在分鐘級。瞬時故障可能發生在監控的采集間隙,是以隻好上腳本在秒級監控日志,發現瞬時出現大量 redis 逾時錯誤,就收集當時應用的 jvm 堆棧、記憶體和機器 cpu load 等各項名額。終于發現瞬時故障時刻 redis 機器 cpu load 出現瞬間飙升幾百的現象,應用和 redis 混合部署時應用可能瞬間搶占了全部 cpu 導緻 redis 沒有 cpu 資源可用。而應用處理業務的邏輯又可能需要通路 redis,而 redis 又沒有 cpu 資源可用導緻逾時,這不就像一個死鎖麼。搞清楚了原因其實解決方法也簡單,就是分離應用和 redis 的部署,各自資源隔離 +

是以在混合部署下要對極限性能進行監控,提前将可能出現性能問題的應用遷移出來。

<b></b>

<b>redis開發運維實踐指南</b>

<b>本文為《redis開發運維實踐指南》内容,該書作者為黃鵬程,已授權雲栖社群轉載。</b>