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