最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis 內(nèi)存碎片原因及清理

 更新時(shí)間:2024年06月28日 10:32:29   作者:_江嶼_  
內(nèi)存碎片是指在內(nèi)存分配的時(shí)候,產(chǎn)生的不能重復(fù)利用的空間,本文主要介紹了Redis 內(nèi)存碎片原因及清理,具有一定的參考價(jià)值,感興趣的可以了解一下

一、Redis 內(nèi)存碎片

內(nèi)存碎片是指在內(nèi)存分配的時(shí)候,產(chǎn)生的不能重復(fù)利用的空間。例如,內(nèi)存空間還有3K,應(yīng)用程序想申請(qǐng)連續(xù)的3K空間,雖然內(nèi)存空間夠,但是空間分配為2K,1K,總空間夠,但是不連續(xù),導(dǎo)致應(yīng)用程序申請(qǐng)失敗,這種無(wú)法利用的內(nèi)存空間稱之為"內(nèi)存碎片"。內(nèi)存分片會(huì)占用操作系統(tǒng)分配給redis的內(nèi)存空間,嚴(yán)重影響redis性能。

二、內(nèi)存碎片形成原因

1.內(nèi)因
內(nèi)存分片策略引發(fā):redis默認(rèn)使用jemalloc分配器分配內(nèi)存。jemalloc每次分配2*N固定空間,例如寫(xiě)入數(shù)據(jù)申請(qǐng)10K空間,jemalloc會(huì)分配16K空間,優(yōu)點(diǎn):下次寫(xiě)入>=6K數(shù)據(jù)不需要申請(qǐng)內(nèi)存空間,缺點(diǎn)造成內(nèi)存浪費(fèi)。

2.外因
修改內(nèi)存中數(shù)據(jù):修改包括增加和減少內(nèi)存占用,例如原來(lái)的16K空間數(shù)據(jù),增加或減少1K都會(huì)造成內(nèi)存浪費(fèi)。大量?jī)?nèi)存碎片的存在,會(huì)造成redis實(shí)際內(nèi)存使用率降低,影響性能。

三、查看內(nèi)存碎片

info memory 查看redis內(nèi)存使用情況,主要關(guān)注以下參數(shù)

used_memory:                 redis分配的內(nèi)存總量單位為b
used_memory_human:      redis分配的內(nèi)存總量單位為M
used_memory_rss:           redis向操作系統(tǒng)申請(qǐng)的內(nèi)存總量單位為b
used_memory_rss_human: redis向操作系統(tǒng)申請(qǐng)的內(nèi)存總量單位為M
mem_fragmentation_ratio:     內(nèi)存碎片率
mem_allocator:jemalloc-5.1.0 內(nèi)存分配器

mem_fragmentation_ratio計(jì)算公式為:used_memory_rss/used_memory 該值大于1但小于1.5。這種情況是合理的。該值過(guò)高時(shí)考慮清理內(nèi)存,例如該值大于1.5表示有50%空間浪費(fèi),需要清理內(nèi)存碎片。

四、內(nèi)存碎片清理

內(nèi)存碎片清理,就是將不連續(xù)的內(nèi)存空間重新整理為連續(xù)空間,由于redis是單線程,在清理過(guò)程中會(huì)造成堵塞,降低性能??赏ㄟ^(guò)以下三種方式清理:

1.手動(dòng)清理內(nèi)存碎片

memory purge 只支持jemalloc內(nèi)存分配器

2.自動(dòng)清理

修改redis.conf配置文件

activedefrag yes 開(kāi)啟自動(dòng)清理內(nèi)存碎片,命令開(kāi)啟:config set activedefrag yes
active-defrag-ignore-bytes 100mb 內(nèi)存碎片的字節(jié)數(shù)達(dá)到100M時(shí)開(kāi)始清理
active-defrag-threshold-lower 10 內(nèi)存碎片空間占操作系統(tǒng)分配給redis的總空間比例達(dá)到 10% 時(shí)開(kāi)始清理
active-defrag-ignore-bytes與active-defrag-threshold-lower 兩個(gè)條件同時(shí)滿足會(huì)觸發(fā)內(nèi)存碎片清理,當(dāng)有一個(gè)不滿足則停止清理
active-defrag-threshold-upper 100 內(nèi)存碎片超過(guò) 100%,則盡最大努力整理
active-defrag-cycle-min 1 自動(dòng)清理過(guò)程所用CPU時(shí)間的比例不低于1%,保證能正常清理
active-defrag-cycle-max 25 自動(dòng)清理過(guò)程所用CPU時(shí)間的比例不高于25%,超過(guò)25%停止清理,避免redis主線程阻塞
active-defrag-max-scan-fields 1000 自動(dòng)清理過(guò)程中長(zhǎng)度小于1000的set/hash/zset/list才會(huì)進(jìn)行自動(dòng)清理

----以上參數(shù)默認(rèn)注釋----

3.重啟redis

到此這篇關(guān)于Redis 內(nèi)存碎片原因及清理的文章就介紹到這了,更多相關(guān)Redis 內(nèi)存碎片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

台北市| 珠海市| 都安| 扎鲁特旗| 通江县| 边坝县| 西贡区| 襄汾县| 闽清县| 阳江市| 晋江市| 泗水县| 英山县| 莱西市| 高碑店市| 阆中市| 黎平县| 于都县| 婺源县| 岢岚县| 牙克石市| 东兴市| 新蔡县| 颍上县| 普兰店市| 乌审旗| 长阳| 隆回县| 郎溪县| 新巴尔虎右旗| 盱眙县| 简阳市| 酉阳| 仙居县| 石泉县| 舞钢市| 娱乐| 江油市| 古浪县| 始兴县| 什邡市|