W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
盡可能把client和server部署在同一臺機(jī)器上,比如都部署在app server,或者一個網(wǎng)段中,減少網(wǎng)絡(luò)延遲對于redis的影響。
如果是同一臺機(jī)器,又想榨干redis性能可以考慮采用UNIX domain sockets配置方式,配置方式如下
# 0 = do not listen on a port
port 0
# listen on localhost only
bind 127.0.0.1
# create a unix domain socket to listen on
unixsocket /tmp/redis.sock
# set permissions for the socket
unixsocketperm 755
這樣的配置方式在沒有大量pipeline下會有一定性能提升,具體請參見http://redis.io/topics/benchmarks:
另外,對于混合部署即redis和應(yīng)用部署在同一臺服務(wù)器上,那么可能會出現(xiàn)如下的情況:
出現(xiàn)瞬時 Redis 大量連接和處理超時,應(yīng)用業(yè)務(wù)線程被阻塞,導(dǎo)致服務(wù)拒絕,過一段時間可能又自動恢復(fù)了。這種瞬時故障非常難抓現(xiàn)場,一天來上幾發(fā)就會給人業(yè)務(wù)不穩(wěn)定的感受,而一般基礎(chǔ)機(jī)器指標(biāo)的監(jiān)控周期在分鐘級。瞬時故障可能發(fā)生在監(jiān)控的采集間隙,所以只好上腳本在秒級監(jiān)控日志,發(fā)現(xiàn)瞬時出現(xiàn)大量 Redis 超時錯誤,就收集當(dāng)時應(yīng)用的 JVM 堆棧、內(nèi)存和機(jī)器 CPU Load 等各項指標(biāo)。終于發(fā)現(xiàn)瞬時故障時刻 Redis 機(jī)器 CPU Load 出現(xiàn)瞬間飆升幾百的現(xiàn)象,應(yīng)用和 Redis 混合部署時應(yīng)用可能瞬間搶占了全部 CPU 導(dǎo)致 Redis 沒有 CPU 資源可用。而應(yīng)用處理業(yè)務(wù)的邏輯又可能需要訪問 Redis,而 Redis 又沒有 CPU 資源可用導(dǎo)致超時,這不就像一個死鎖么。搞清楚了原因其實解決方法也簡單,就是分離應(yīng)用和 Redis 的部署,各自資源隔離出處: http://mp.weixin.qq.com/s?__biz=MzAxMTEyOTQ5OQ==&mid=402004912&idx=1&sn=7517696a86f54262e60e1b5636d6cbe0&3rd=MzA3MDU4NTYzMw==&scene=6#rd
因此在混合部署下要對極限性能進(jìn)行監(jiān)控,提前將可能出現(xiàn)性能問題的應(yīng)用遷移出來。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: