国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

隨機IOPS全面超越,騰訊云CSG存儲網(wǎng)關(guān)高性能緩存

發(fā)布時(shí)間:2022-05-16 12:02 來(lái)源:IDC圈 閱讀:68 作者:網(wǎng)絡(luò ) 欄目: 互聯(lián)網(wǎng) 歡迎投稿:712375056

CSG存儲網(wǎng)關(guān)是基于騰訊云高性能、高可靠性的對象存儲系統COS對外提供iSCSI、NFS和CIFS/SMB訪(fǎng)問(wèn)協(xié)議。作為一種混合云方案, 幫助用戶(hù)不用修改本地應用就可以把數據上傳到COS。網(wǎng)關(guān)可以部署在用戶(hù)IDC也可以部署在騰訊云上,產(chǎn)品形態(tài)如下所示。

1.緩存命中率和延時(shí)是技術(shù)上兩大挑戰,

網(wǎng)關(guān)和COS之間需要走外網(wǎng)來(lái)通訊,外網(wǎng)網(wǎng)絡(luò )存在延時(shí)高、抖動(dòng)和丟包等問(wèn)題,而且還會(huì )占用客戶(hù)大量帶寬。

實(shí)際場(chǎng)景下,我們發(fā)現用戶(hù)經(jīng)常訪(fǎng)問(wèn)的數據只是一小部分熱點(diǎn)數據,存在局部性特點(diǎn),所以如果能在網(wǎng)關(guān)上加一層緩存且緩存命中率足夠高的話(huà),理論上網(wǎng)關(guān)就可以達到接近本地磁盤(pán)的讀性能,也可以減少對帶寬占用。

緩存的大小受容量的限制只能保存一部分熱點(diǎn)數據, 需要根據場(chǎng)景選擇合適的緩存算法。評價(jià)緩存系統好壞一般通過(guò)命中率和延時(shí)兩個(gè)指標,緩存算法一般都是在兩者間權衡。影響命中率的關(guān)鍵就是緩存替換算法,而延時(shí)主要跟并發(fā)鎖設計有關(guān)。一般緩存系統采用一把大的全局鎖,對于CSG采用本地磁盤(pán)作為存儲介質(zhì)的系統,普通的SATA盤(pán)延時(shí)差不多10ms左右,如果采用全局鎖最多只有100qps/s, 所以需要對鎖進(jìn)行優(yōu)化。

2. 業(yè)界現有技術(shù)實(shí)現過(guò)程及弊端解析

業(yè)界普遍的做法是采用緩存替換算法是LRU,例如Linux內核page cache、 memcached等。典型的實(shí)現方式是hashtable 雙鏈 全局鎖的方式,但是這種實(shí)現存在兩大問(wèn)題:

所有的操作都需要加全局鎖造成并發(fā)低,延時(shí)高

對于數據訪(fǎng)問(wèn)局部性差的場(chǎng)景命緩存失效中率低,比如順序掃描

針對這兩個(gè)問(wèn)題常見(jiàn)的實(shí)現改進(jìn)思路是:

犧牲LRU特性,即減少節點(diǎn)移動(dòng)到head的次數, 從而降低全局鎖的競爭,但是可能會(huì )造成熱點(diǎn)數據被淘汰

LRU鏈表分兩段或多段,基于一定的訪(fǎng)問(wèn)策略解決局部性差的場(chǎng)景

memecached 和page cache也是基于這兩種改進(jìn)思路優(yōu)化的,下面分析下memecached 和page cache的具體實(shí)現細節。

memcached 的LRU算法實(shí)現:

每個(gè)節點(diǎn)一把鎖保護節點(diǎn)數據和索引

LRU鏈表分為hot、warm和cold三個(gè)子鏈表,大小比例為 32:32:34

每個(gè)子鏈表一把全局鎖,maintainer 線(xiàn)程根上述比例維持鏈表長(cháng)度時(shí)要加全局鎖

節點(diǎn)訪(fǎng)問(wèn)時(shí)只需要加節點(diǎn)鎖同時(shí)標記為active 并不移動(dòng)解決了鎖沖突問(wèn)題,而且分三個(gè)子鏈表配合制定的訪(fǎng)問(wèn)策略解決了局部性差的場(chǎng)景。但是只是由maintainer 線(xiàn)程根據 active 表示來(lái)判斷是否移動(dòng)到 head, 過(guò)度的犧牲LRU特性會(huì )造成熱點(diǎn)數據被淘汰導致命中率低。

page cache 的LRU實(shí)現:

全局鎖(zone鎖)

LRU鏈表分為activate和inactivate兩個(gè)子鏈表, 比例為1:1

也是采用分兩個(gè)子鏈表解決了局部性差的場(chǎng)景, 但是依然采用的是全局鎖沒(méi)有對鎖做優(yōu)化。

memecached 和page cache的實(shí)現針對局部性差的場(chǎng)景都是采用拆分鏈表的方式。針對全局鎖的問(wèn)題memecached 中雖然采用了節點(diǎn)鎖,但是過(guò)度的犧牲LRU特性會(huì )造成緩存命中率低。

3. 高性能騰訊云CSG技術(shù)背后細節

CSG在實(shí)現的參考了這兩個(gè)方案的優(yōu)缺點(diǎn),希望能夠在并發(fā)性能的和緩存的命中率之間到達平衡, 具體實(shí)現如下:

hashtable每個(gè)bucket一把鎖保護節點(diǎn)和索引,一把全局鎖保護LRU鏈表

鏈表由midpoint指針?lè )譃閔ot 和cold兩個(gè)子鏈表,默認的節點(diǎn)數比例是 2:1

CSG也是通過(guò)midpoint把LRU鏈表劃分為hot 和cold兩個(gè)子鏈表來(lái)解決局部性差場(chǎng)景。鎖的優(yōu)化采用的是段鎖 全局鎖,對節點(diǎn)的訪(fǎng)問(wèn)是先加段鎖訪(fǎng)問(wèn)數據,移動(dòng)節點(diǎn)時(shí)才加全局鎖,把全局鎖的臨界區控制到了最小范圍。這樣即保證了LRU特性提升了緩存命中率而且鎖沖突也不嚴重, 實(shí)際測試4線(xiàn)程加全局鎖修改鏈表可以達到50w /s的并發(fā)滿(mǎn)足了需求。

如上圖所示我們實(shí)現的段鎖hashtable是對每一個(gè)bucket一把鎖,對hash到同一個(gè)bucekt的key加同一鎖,多線(xiàn)程并發(fā)鎖沖突小并發(fā)高。hash沖突時(shí)采用的鏈式?jīng)_突處理, 當load_factor > 1.0時(shí)會(huì )自動(dòng)進(jìn)行resize,保證key和 bucket鎖得比例小于1:1。

下圖是多線(xiàn)程情況下跟stl 中unordered_map 加全局鎖性能對比數據,測試環(huán)境4 cpu 8G mem。

對比發(fā)現即使單線(xiàn)程性能也差不多10%的性能損耗,4線(xiàn)程下是unordered_map的兩倍以上, key越多鎖沖突越少并發(fā)性能也越好。

4. 與競品讀性能對比

測試環(huán)境:4cpu 16Gmem 1G網(wǎng)卡    平臺: cvm CBS(普通盤(pán)100G) 卷 500G

測試工具:fio -ioengine=libaio -iodepth=128 -direct=1 -rw=randread -bs=[32k|64k|512k]

數據對比在局部性比較好的場(chǎng)景隨機范圍80G,CSG的延時(shí)比國外知名云商低10%左右。局部性比較差的場(chǎng)景隨機范圍500G, CSG 讀隨機IOPS是競品3倍。

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

久这里只精品99re66| 热99RE久久精品| 国产乱码精品一品二品| 亚洲中文字幕乱码AV波多JI| 国产三级久久精品三级| 老熟女乱子伦|