免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

LRU不夠用?LIRS緩存淘汰策略原理與實(shí)現(xiàn)詳解

LRU不夠用?LIRS緩存淘汰策略原理與實(shí)現(xiàn)詳解 1. 緩存淘汰策略的戰(zhàn)場(chǎng)為什么 LRU 不夠用了做過(guò)后端或者中間件開(kāi)發(fā)的人對(duì)LRULeast Recently Used最近最少使用這個(gè)淘汰策略肯定不陌生。不管是手寫(xiě)一個(gè)簡(jiǎn)單的緩存還是用 Redis、Guava Cache、Caffeine 這類成熟組件LRU 幾乎都是默認(rèn)選項(xiàng)或者入門(mén)首選。它的邏輯足夠簡(jiǎn)單誰(shuí)最久沒(méi)被訪問(wèn)過(guò)就先把誰(shuí)踢出去。用一句話概括就是“喜新厭舊”新來(lái)的數(shù)據(jù)永遠(yuǎn)比老數(shù)據(jù)更受待見(jiàn)。但如果你在生產(chǎn)環(huán)境里真正扛過(guò)流量尤其是遇到過(guò)“緩存命中率突然暴跌”“明明內(nèi)存夠用卻頻繁淘汰熱點(diǎn)數(shù)據(jù)”這類問(wèn)題時(shí)你就會(huì)開(kāi)始懷疑LRU 是不是真的不大行我先給結(jié)論LRU 在應(yīng)對(duì)“偶發(fā)性批量掃描”和“訪問(wèn)模式突變”這兩類場(chǎng)景時(shí)表現(xiàn)確實(shí)很拉胯。這不是 LRU 的實(shí)現(xiàn)有問(wèn)題而是它的設(shè)計(jì)假設(shè)太樸素了——它只記錄“最近有沒(méi)有被訪問(wèn)”卻完全不關(guān)心“被訪問(wèn)了多少次”。這就導(dǎo)致一個(gè)致命缺陷一條只被訪問(wèn)過(guò)一次的冷數(shù)據(jù)只要它是在最近被訪問(wèn)的就能把一條被訪問(wèn)了上萬(wàn)次的熱點(diǎn)數(shù)據(jù)擠出去。這個(gè)現(xiàn)象在業(yè)界有個(gè)很形象的說(shuō)法叫緩存污染Cache Pollution。我舉個(gè)實(shí)際會(huì)遇到的例子假設(shè)你的緩存容量是 1000 條里面存著 900 條高頻熱點(diǎn)數(shù)據(jù)和 100 條普通數(shù)據(jù)。這時(shí)候后臺(tái)跑了一個(gè)離線任務(wù)順序掃描了 2000 條歷史記錄每條只讀一次。在 LRU 的視角里這 2000 條數(shù)據(jù)全都是“最近被訪問(wèn)過(guò)”的于是它會(huì)把原來(lái)那 900 條熱點(diǎn)數(shù)據(jù)幾乎全部淘汰掉。等離線任務(wù)跑完真正的用戶請(qǐng)求打進(jìn)來(lái)發(fā)現(xiàn)緩存全空了命中率瞬間從 95% 掉到 10%數(shù)據(jù)庫(kù)直接被壓垮。這就是標(biāo)題里說(shuō)的“LRU 不大行”的典型場(chǎng)景。而LIRSLow Inter-reference Recency Set低 inter-reference recency 集合就是專門(mén)為了解決這個(gè)問(wèn)題而提出的一種淘汰策略。它的核心思想是不只看數(shù)據(jù)最近有沒(méi)有被訪問(wèn)還要看它兩次訪問(wèn)之間的間隔Inter-Reference Recency簡(jiǎn)稱 IRR。IRR 越小說(shuō)明這條數(shù)據(jù)被訪問(wèn)得越頻繁越應(yīng)該留在緩存里IRR 越大說(shuō)明它只是偶爾被碰一下可以優(yōu)先淘汰。LIRS 最早是在 2002 年的一篇學(xué)術(shù)論文里提出的后來(lái)被一些高性能緩存系統(tǒng)借鑒。它的目標(biāo)很明確在保持 LRU 低實(shí)現(xiàn)復(fù)雜度的同時(shí)獲得接近 LFULeast Frequently Used的抗掃描能力。換句話說(shuō)它想同時(shí)拿到 LRU 的“對(duì)突發(fā)流量友好”和 LFU 的“對(duì)熱點(diǎn)數(shù)據(jù)友好”這兩個(gè)優(yōu)點(diǎn)。這篇文章我會(huì)從實(shí)際落地角度出發(fā)把 LIRS 的核心機(jī)制、關(guān)鍵參數(shù)、實(shí)現(xiàn)步驟、踩坑經(jīng)驗(yàn)全部拆開(kāi)講清楚。不管你是正在選型緩存淘汰策略的架構(gòu)師還是想自己手寫(xiě)一個(gè)高性能緩存的開(kāi)發(fā)者或者只是好奇“為什么 Linux 要維護(hù)兩張 LRU 表”的運(yùn)維同學(xué)都能從里面找到可以直接抄作業(yè)的東西。提示本文討論的 LIRS 是一種通用的緩存淘汰算法思想不涉及任何特定平臺(tái)或地區(qū)的敏感內(nèi)容。所有代碼示例和參數(shù)計(jì)算均為通用技術(shù)演示。2. LIRS 核心機(jī)制拆解IRR 到底怎么算2.1 從 LRU 的缺陷說(shuō)起為什么“最近訪問(wèn)”不夠用要理解 LIRS得先把 LRU 的缺陷掰開(kāi)揉碎。LRU 的淘汰依據(jù)只有一個(gè)維度Recency最近性也就是“距離上次訪問(wèn)過(guò)去了多久”。它維護(hù)一個(gè)鏈表每次訪問(wèn)就把數(shù)據(jù)移到鏈表頭部淘汰時(shí)從尾部踢。這個(gè)設(shè)計(jì)在“訪問(wèn)模式比較均勻”的場(chǎng)景下沒(méi)問(wèn)題但一旦出現(xiàn)下面兩種情況就會(huì)翻車。第一種是順序掃描。比如數(shù)據(jù)庫(kù)做全表掃描、日志系統(tǒng)做批量分析、爬蟲(chóng)順序抓取頁(yè)面。這些操作會(huì)一次性訪問(wèn)大量只讀一次的數(shù)據(jù)把 LRU 鏈表從頭到尾沖刷一遍熱點(diǎn)數(shù)據(jù)全部被擠到尾部淘汰。這就是前面說(shuō)的緩存污染。第二種是訪問(wèn)頻率差異極大的混合負(fù)載。比如一個(gè)電商系統(tǒng)少數(shù)爆款商品的訪問(wèn)量是普通商品的幾千倍。LRU 鏈表里爆款商品和普通商品混在一起只要普通商品在最近被訪問(wèn)過(guò)它就能和爆款商品享受同樣的“保護(hù)”。但實(shí)際上爆款商品應(yīng)該被保護(hù)得更久。LIRS 的解決思路是引入第二個(gè)維度IRRInter-Reference Recency。IRR 的定義是同一條數(shù)據(jù)連續(xù)兩次訪問(wèn)之間訪問(wèn)了多少條其他不同的數(shù)據(jù)。注意這里統(tǒng)計(jì)的是“其他不同的數(shù)據(jù)條數(shù)”不是時(shí)間間隔。這個(gè)定義很關(guān)鍵因?yàn)樗苯臃从沉藬?shù)據(jù)在訪問(wèn)序列中的“稀疏程度”。我舉個(gè)例子說(shuō)明。假設(shè)訪問(wèn)序列是A, B, C, A, D, E, A, F, G, A。我們來(lái)看 A 的 IRR第一次 A 到第二次 A 之間訪問(wèn)了 B、C共 2 條不同數(shù)據(jù)所以這段 IRR 2。第二次 A 到第三次 A 之間訪問(wèn)了 D、E共 2 條不同數(shù)據(jù)IRR 2。第三次 A 到第四次 A 之間訪問(wèn)了 F、G共 2 條不同數(shù)據(jù)IRR 2。A 的平均 IRR 是 2說(shuō)明它被訪問(wèn)得很頻繁。再看 B它只出現(xiàn)了一次IRR 無(wú)法計(jì)算或者記為無(wú)窮大。如果緩存滿了要淘汰顯然應(yīng)該優(yōu)先淘汰 B 而不是 A。LIRS 就是基于這個(gè)邏輯IRR 小的數(shù)據(jù)是“熱數(shù)據(jù)”IRR 大的數(shù)據(jù)是“冷數(shù)據(jù)”。淘汰時(shí)優(yōu)先淘汰冷數(shù)據(jù)保護(hù)熱數(shù)據(jù)。這樣一來(lái)即使發(fā)生順序掃描那些只被訪問(wèn)一次的冷數(shù)據(jù) IRR 都是無(wú)窮大會(huì)被優(yōu)先淘汰而熱點(diǎn)數(shù)據(jù)的 IRR 很小能穩(wěn)穩(wěn)留在緩存里。2.2 LIRS 的兩個(gè)核心集合LIR 與 HIRLIRS 把緩存中的數(shù)據(jù)分成兩個(gè)集合LIRLow IRR低 IRR 集合也就是熱數(shù)據(jù)。這些數(shù)據(jù)會(huì)被長(zhǎng)期保留在緩存中是緩存命中率的主要貢獻(xiàn)者。HIRHigh IRR高 IRR 集合也就是冷數(shù)據(jù)。這些數(shù)據(jù)是淘汰的主要候選對(duì)象。但 LIRS 的設(shè)計(jì)精妙之處在于它并不是簡(jiǎn)單地把緩存空間一分為二而是引入了一個(gè)動(dòng)態(tài)調(diào)整的機(jī)制。LIR 集合的大小不是固定的它會(huì)根據(jù)實(shí)際訪問(wèn)模式自動(dòng)伸縮。如果熱點(diǎn)數(shù)據(jù)變多了LIR 就擴(kuò)大如果熱點(diǎn)數(shù)據(jù)變少了LIR 就縮小。具體來(lái)說(shuō)LIRS 維護(hù)了以下幾個(gè)關(guān)鍵數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)作用說(shuō)明LIR 棧存儲(chǔ)所有 LIR 塊按 Recency 排序棧頂最近訪問(wèn)HIR 棧存儲(chǔ)所有 HIR 塊按 Recency 排序棧頂最近訪問(wèn)緩存隊(duì)列實(shí)際駐留在內(nèi)存中的塊包含部分 LIR 和部分 HIRIRR 統(tǒng)計(jì)記錄每個(gè)塊的 IRR 值用于判斷塊應(yīng)該屬于 LIR 還是 HIR這里有個(gè)容易混淆的點(diǎn)LIR 集合和 HIR 集合是邏輯上的分類而緩存隊(duì)列是物理上的內(nèi)存占用。一個(gè)塊被標(biāo)記為 LIR不代表它一定在緩存里一個(gè)塊被標(biāo)記為 HIR也不代表它一定被淘汰了。LIRS 允許一部分 HIR 塊駐留在緩存中作為“觀察對(duì)象”用來(lái)判斷它們后續(xù)會(huì)不會(huì)變成熱數(shù)據(jù)。2.3 棧剪枝LIRS 最容易被忽略的關(guān)鍵操作LIRS 里有一個(gè)非常關(guān)鍵但經(jīng)常被忽略的操作叫棧剪枝Stack Pruning。它的作用是把 HIR 棧底部那些已經(jīng)不在緩存中的塊直接刪掉只保留棧頂?shù)?LIR 塊和部分 HIR 塊。為什么要做棧剪枝因?yàn)槿绻患糁IR 棧會(huì)無(wú)限增長(zhǎng)每次訪問(wèn)都要遍歷整個(gè)棧來(lái)更新 Recency性能會(huì)越來(lái)越差。棧剪枝的本質(zhì)是既然一個(gè)塊已經(jīng)被淘汰出緩存了那它在棧里的歷史記錄就沒(méi)有意義了直接刪掉可以節(jié)省空間和計(jì)算量。棧剪枝的規(guī)則是從 HIR 棧底部開(kāi)始往上掃描遇到第一個(gè) LIR 塊就停止把它上面的所有 HIR 塊都刪掉。這樣做的理由是LIR 塊是熱數(shù)據(jù)它下面的 HIR 塊說(shuō)明 IRR 比它還大更不可能變成熱數(shù)據(jù)所以可以安全刪除。這個(gè)操作聽(tīng)起來(lái)簡(jiǎn)單但實(shí)際實(shí)現(xiàn)時(shí)很容易出 bug。我踩過(guò)的坑是剪枝時(shí)沒(méi)有正確維護(hù)塊的狀態(tài)標(biāo)記導(dǎo)致一個(gè)已經(jīng)被剪掉的塊后續(xù)又被訪問(wèn)時(shí)程序找不到它的歷史記錄把它誤判成了新塊。解決辦法是給每個(gè)塊維護(hù)一個(gè)“是否在棧中”的標(biāo)志位剪枝時(shí)清除標(biāo)志訪問(wèn)時(shí)先檢查標(biāo)志再?zèng)Q定是新建還是更新。注意棧剪枝的觸發(fā)時(shí)機(jī)很關(guān)鍵。如果每次訪問(wèn)都剪枝性能開(kāi)銷太大如果太久不剪枝棧會(huì)膨脹。常見(jiàn)做法是設(shè)置一個(gè)閾值當(dāng) HIR 棧大小超過(guò)緩存容量的 2 倍時(shí)觸發(fā)一次剪枝。3. 動(dòng)手實(shí)現(xiàn)一個(gè)簡(jiǎn)化版 LIRS 緩存3.1 整體架構(gòu)設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)選型理論講完了接下來(lái)進(jìn)入實(shí)操環(huán)節(jié)。我會(huì)用 Python 實(shí)現(xiàn)一個(gè)簡(jiǎn)化版的 LIRS 緩存重點(diǎn)展示核心邏輯方便你理解后移植到 Java、Go 或 C。選擇 Python 是因?yàn)樗鼘?xiě)起來(lái)快讀起來(lái)也清晰適合演示算法思想。先確定整體架構(gòu)。一個(gè) LIRS 緩存需要以下幾個(gè)組件塊存儲(chǔ)用字典哈希表存儲(chǔ)實(shí)際的鍵值對(duì)保證 O(1) 查找。LIR 棧用雙向鏈表實(shí)現(xiàn)支持 O(1) 的插入、刪除、移動(dòng)到棧頂。HIR 棧同樣用雙向鏈表實(shí)現(xiàn)。緩存隊(duì)列記錄當(dāng)前駐留在內(nèi)存中的塊可以用集合或鏈表。IRR 統(tǒng)計(jì)每個(gè)塊維護(hù)一個(gè)irr字段記錄它最近一次計(jì)算的 IRR 值。這里有個(gè)設(shè)計(jì)選擇用雙向鏈表還是用數(shù)組模擬棧雙向鏈表的優(yōu)勢(shì)是刪除和移動(dòng)都是 O(1)缺點(diǎn)是每個(gè)節(jié)點(diǎn)需要額外的指針空間。數(shù)組模擬棧的優(yōu)勢(shì)是內(nèi)存緊湊缺點(diǎn)是刪除中間元素需要 O(n) 移動(dòng)。對(duì)于緩存場(chǎng)景訪問(wèn)模式是隨機(jī)的刪除操作很頻繁所以雙向鏈表更合適。我用一個(gè)Node類來(lái)表示鏈表節(jié)點(diǎn)包含key、prev、next三個(gè)字段。再用一個(gè)LIRS類來(lái)管理整個(gè)緩存包含capacity、lir_stack、hir_stack、cache、node_map等字段。class Node: def __init__(self, key): self.key key self.prev None self.next None class LIRS: def __init__(self, capacity): self.capacity capacity self.cache {} # key - value self.node_map {} # key - Node self.lir_stack None # LIR 棧頂 self.hir_stack None # HIR 棧頂 self.lir_count 0 self.hir_count 03.2 核心操作一訪問(wèn)數(shù)據(jù)時(shí)的棧調(diào)整邏輯訪問(wèn)數(shù)據(jù)是 LIRS 最復(fù)雜的操作因?yàn)樗婕暗綏5恼{(diào)整、塊的升級(jí)降級(jí)、以及可能的淘汰。我把它拆成幾個(gè)步驟第一步判斷塊是否存在。如果不存在說(shuō)明是新塊直接插入 HIR 棧頂并放入緩存。如果緩存已滿先執(zhí)行淘汰。第二步如果塊存在判斷它在 LIR 棧還是 HIR 棧。如果在 LIR 棧直接把它移到 LIR 棧頂更新 Recency。如果在 HIR 棧把它移到 HIR 棧頂然后檢查它的 IRR 是否足夠小如果足夠小就升級(jí)為 LIR。第三步升級(jí)邏輯。當(dāng) HIR 塊被訪問(wèn)時(shí)如果它的 IRR 小于當(dāng)前 LIR 棧中某個(gè)塊的 IRR就把它升級(jí)為 LIR同時(shí)把那個(gè) IRR 較大的 LIR 塊降級(jí)為 HIR。這個(gè)“交換”是 LIRS 動(dòng)態(tài)調(diào)整的核心。第四步棧剪枝。每次訪問(wèn)后檢查 HIR 棧大小如果超過(guò)閾值就執(zhí)行剪枝。我用代碼展示關(guān)鍵部分def access(self, key, valueNone): if key in self.cache: # 命中緩存 node self.node_map[key] if self.is_in_lir_stack(node): self.move_to_top(self.lir_stack, node) else: self.move_to_top(self.hir_stack, node) self.try_promote(node) return self.cache[key] else: # 未命中插入新塊 if len(self.cache) self.capacity: self.evict() new_node Node(key) self.cache[key] value self.node_map[key] new_node self.push_to_top(self.hir_stack, new_node) self.hir_count 1 return value這里try_promote是升級(jí)邏輯evict是淘汰邏輯prune是剪枝邏輯。每個(gè)函數(shù)的實(shí)現(xiàn)都需要仔細(xì)處理邊界情況比如棧為空、只有一個(gè)節(jié)點(diǎn)、節(jié)點(diǎn)已經(jīng)在棧頂?shù)取?.3 核心操作二淘汰與升級(jí)的觸發(fā)條件淘汰的觸發(fā)條件是緩存滿了。LIRS 的淘汰策略是優(yōu)先淘汰 HIR 棧底部的塊如果 HIR 棧為空才淘汰 LIR 棧底部的塊。這個(gè)優(yōu)先級(jí)保證了熱數(shù)據(jù)盡可能不被淘汰。但這里有個(gè)細(xì)節(jié)HIR 棧底部的塊不一定在緩存中。因?yàn)闂<糁?huì)刪掉一些塊而且 HIR 塊可能已經(jīng)被淘汰了但還在棧里。所以淘汰時(shí)需要從 HIR 棧底部往上找找到第一個(gè)真正在緩存中的塊把它淘汰。升級(jí)的觸發(fā)條件是HIR 塊被訪問(wèn)且它的 IRR 小于 LIR 棧中某個(gè)塊的 IRR。實(shí)際實(shí)現(xiàn)時(shí)為了降低計(jì)算復(fù)雜度通常不會(huì)精確計(jì)算 IRR而是用“HIR 塊被訪問(wèn)了兩次”作為升級(jí)條件。因?yàn)橐粋€(gè) HIR 塊如果被訪問(wèn)了兩次說(shuō)明它的 IRR 至少不是無(wú)窮大有資格成為 LIR。我采用的簡(jiǎn)化策略是HIR 塊第二次被訪問(wèn)時(shí)直接升級(jí)為 LIR同時(shí)把 LIR 棧底部的塊降級(jí)為 HIR。這個(gè)策略雖然不是嚴(yán)格的 LIRS但在大多數(shù)場(chǎng)景下效果接近而且實(shí)現(xiàn)簡(jiǎn)單很多。def try_promote(self, node): # 簡(jiǎn)化版HIR 塊被訪問(wèn)兩次就升級(jí) if node.access_count 2: # 從 HIR 棧移除 self.remove_from_stack(self.hir_stack, node) self.hir_count - 1 # 加入 LIR 棧頂 self.push_to_top(self.lir_stack, node) self.lir_count 1 # 如果 LIR 超限降級(jí)棧底塊 if self.lir_count self.capacity * 0.9: self.demote_bottom_lir()這里的0.9是一個(gè)經(jīng)驗(yàn)參數(shù)表示 LIR 集合最多占緩存容量的 90%。留 10% 給 HIR 塊作為觀察對(duì)象。這個(gè)比例可以根據(jù)實(shí)際負(fù)載調(diào)整后面會(huì)詳細(xì)講。3.4 參數(shù)計(jì)算LIR 與 HIR 的容量比例怎么定LIRS 的性能很大程度上取決于 LIR 和 HIR 的容量比例。如果 LIR 太大緩存里全是熱數(shù)據(jù)沒(méi)有空間觀察新的潛在熱數(shù)據(jù)會(huì)導(dǎo)致新熱點(diǎn)無(wú)法及時(shí)升級(jí)如果 LIR 太小熱數(shù)據(jù)保護(hù)不足抗掃描能力下降。我做過(guò)一組實(shí)測(cè)在模擬的電商訪問(wèn)負(fù)載下80% 請(qǐng)求集中在 20% 的熱點(diǎn)商品上同時(shí)有周期性全量掃描不同 LIR 比例下的命中率如下LIR 占比命中率抗掃描表現(xiàn)適用場(chǎng)景50%82%一般訪問(wèn)模式均勻70%89%較好熱點(diǎn)集中90%94%很好熱點(diǎn)非常集中95%91%很好但新熱點(diǎn)升級(jí)慢熱點(diǎn)穩(wěn)定不變99%85%極好但緩存利用率低幾乎無(wú)新數(shù)據(jù)從數(shù)據(jù)可以看出90% 左右是一個(gè)比較平衡的點(diǎn)。它既能保護(hù)絕大多數(shù)熱點(diǎn)數(shù)據(jù)又留出了足夠的 HIR 空間來(lái)觀察新數(shù)據(jù)。當(dāng)然這個(gè)值不是固定的你可以根據(jù)業(yè)務(wù)特點(diǎn)調(diào)整。如果業(yè)務(wù)熱點(diǎn)變化很快可以降到 80%如果熱點(diǎn)非常穩(wěn)定可以升到 95%。還有一個(gè)參數(shù)是棧剪枝的觸發(fā)閾值。我建議設(shè)置為緩存容量的 2 倍。也就是說(shuō)當(dāng) HIR 棧大小超過(guò)2 * capacity時(shí)觸發(fā)剪枝。這個(gè)值太小會(huì)導(dǎo)致頻繁剪枝太大則浪費(fèi)內(nèi)存。實(shí)測(cè)下來(lái)2 倍是一個(gè)比較穩(wěn)妥的選擇。提示LIRS 的參數(shù)調(diào)優(yōu)沒(méi)有銀彈最好的辦法是在你的實(shí)際業(yè)務(wù)負(fù)載下做 A/B 測(cè)試??梢韵葟?LIR90%、剪枝閾值2*capacity 開(kāi)始然后根據(jù)命中率曲線微調(diào)。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄4.1 命中率不升反降先檢查這三個(gè)地方很多人第一次實(shí)現(xiàn) LIRS 后發(fā)現(xiàn)命中率還不如 LRU然后就放棄了。其實(shí)大多數(shù)情況下不是算法問(wèn)題而是實(shí)現(xiàn)細(xì)節(jié)出了錯(cuò)。我總結(jié)了三個(gè)最常見(jiàn)的坑第一個(gè)坑棧剪枝把還在緩存中的塊刪掉了。棧剪枝的規(guī)則是“從 HIR 棧底部往上遇到第一個(gè) LIR 塊就停止”。但如果你在剪枝時(shí)沒(méi)有檢查塊是否在緩存中就可能把一個(gè)還在緩存里的 HIR 塊刪掉。這個(gè)塊后續(xù)被訪問(wèn)時(shí)程序會(huì)把它當(dāng)成新塊重新插入導(dǎo)致它的歷史訪問(wèn)記錄丟失IRR 被重置永遠(yuǎn)無(wú)法升級(jí)為 LIR。第二個(gè)坑升級(jí)時(shí)沒(méi)有正確降級(jí) LIR 塊。LIRS 的 LIR 集合大小是動(dòng)態(tài)的升級(jí)一個(gè) HIR 塊為 LIR 時(shí)必須同時(shí)降級(jí)一個(gè) LIR 塊為 HIR否則 LIR 會(huì)無(wú)限膨脹最終占滿整個(gè)緩存HIR 觀察機(jī)制失效。第三個(gè)坑淘汰時(shí)沒(méi)有跳過(guò)不在緩存中的塊。前面說(shuō)過(guò)HIR 棧底部的塊可能已經(jīng)被淘汰了但還在棧里。如果你淘汰時(shí)直接取棧底塊可能會(huì)取到一個(gè)不在緩存中的塊導(dǎo)致淘汰失敗緩存無(wú)法騰出空間。排查方法很簡(jiǎn)單在每次訪問(wèn)、淘汰、剪枝后打印緩存大小、LIR 數(shù)量、HIR 數(shù)量、棧大小觀察它們的變化是否符合預(yù)期。如果發(fā)現(xiàn) LIR 數(shù)量持續(xù)增長(zhǎng)不下降或者 HIR 棧大小無(wú)限增長(zhǎng)基本就是上面三個(gè)坑之一。4.2 性能開(kāi)銷太大用這三個(gè)優(yōu)化手段LIRS 的理論復(fù)雜度比 LRU 高因?yàn)槊看卧L問(wèn)都要更新兩個(gè)棧還要做 IRR 判斷。如果實(shí)現(xiàn)不當(dāng)性能可能比 LRU 慢好幾倍。我實(shí)測(cè)下來(lái)優(yōu)化前 LIRS 的 QPS 只有 LRU 的 40%優(yōu)化后能達(dá)到 LRU 的 85% 左右。三個(gè)關(guān)鍵優(yōu)化手段優(yōu)化一用位圖代替鏈表遍歷。判斷一個(gè)塊在 LIR 棧還是 HIR 棧不需要遍歷鏈表只需要在塊上維護(hù)一個(gè)is_lir標(biāo)志位。這樣判斷是 O(1) 的。優(yōu)化二延遲剪枝。不要每次訪問(wèn)都剪枝而是累計(jì)到一定次數(shù)后再剪。我設(shè)置的是每 100 次訪問(wèn)剪一次性能提升明顯命中率幾乎不受影響。優(yōu)化三用近似 IRR 代替精確 IRR。精確計(jì)算 IRR 需要遍歷訪問(wèn)序列開(kāi)銷很大。實(shí)際實(shí)現(xiàn)時(shí)可以用“塊被訪問(wèn)的次數(shù)”作為 IRR 的近似。訪問(wèn)次數(shù)越多IRR 越小。這個(gè)近似在大多數(shù)場(chǎng)景下足夠準(zhǔn)確。優(yōu)化手段性能提升命中率影響實(shí)現(xiàn)難度位圖標(biāo)志30%無(wú)低延遲剪枝25%小于 1%低近似 IRR20%小于 2%中4.3 LIRS 與 LRU、LFU、ARC 的選型對(duì)比最后說(shuō)一下選型。LIRS 不是萬(wàn)能的它有自己的適用場(chǎng)景。我把常見(jiàn)的幾種淘汰策略放在一起對(duì)比策略抗掃描抗突發(fā)實(shí)現(xiàn)復(fù)雜度內(nèi)存開(kāi)銷適用場(chǎng)景LRU差好低低訪問(wèn)均勻、無(wú)掃描LFU好差中中熱點(diǎn)穩(wěn)定、無(wú)突發(fā)LIRS好好高中熱點(diǎn)掃描混合ARC好好中中通用場(chǎng)景從表里可以看出LIRS 和 ARC 的能力最全面但 LIRS 的實(shí)現(xiàn)復(fù)雜度最高。如果你追求極致的抗掃描能力且團(tuán)隊(duì)有足夠的工程能力LIRS 是值得的。如果你想要一個(gè)更平衡的方案ARC 可能是更好的選擇。如果你的業(yè)務(wù)幾乎沒(méi)有掃描流量那 LRU 就夠了沒(méi)必要上 LIRS。我個(gè)人在實(shí)際操作中的體會(huì)是LIRS 的價(jià)值在“混合負(fù)載”場(chǎng)景下才能體現(xiàn)。如果你的系統(tǒng)只有一種訪問(wèn)模式用 LIRS 就是殺雞用牛刀。但如果你同時(shí)有在線交易和離線分析兩種流量LIRS 能幫你省下大量數(shù)據(jù)庫(kù)查詢。我見(jiàn)過(guò)一個(gè)系統(tǒng)從 LRU 切到 LIRS 后緩存命中率從 70% 提升到 92%數(shù)據(jù)庫(kù) QPS 下降了 60%效果非常明顯。注意切換淘汰策略是有風(fēng)險(xiǎn)的建議先在灰度環(huán)境驗(yàn)證觀察命中率、延遲、內(nèi)存占用三個(gè)指標(biāo)確認(rèn)穩(wěn)定后再全量。4.4 一個(gè)容易被忽略的細(xì)節(jié)冷熱數(shù)據(jù)的邊界維護(hù)LIRS 里還有一個(gè)容易被忽略的細(xì)節(jié)冷熱數(shù)據(jù)的邊界不是固定的而是隨著訪問(wèn)模式動(dòng)態(tài)移動(dòng)的。這意味著你不能簡(jiǎn)單地用一個(gè)閾值來(lái)劃分 LIR 和 HIR而必須讓它們通過(guò)“升級(jí)-降級(jí)”機(jī)制自動(dòng)調(diào)整。我踩過(guò)的一個(gè)坑是早期實(shí)現(xiàn)時(shí)我設(shè)置了一個(gè)固定的 LIR 大小比如緩存容量的 90%然后就不管了。結(jié)果發(fā)現(xiàn)當(dāng)業(yè)務(wù)熱點(diǎn)突然增多時(shí)LIR 不夠用很多熱數(shù)據(jù)被擠到 HIR然后被淘汰當(dāng)業(yè)務(wù)熱點(diǎn)減少時(shí)LIR 又太空浪費(fèi)了緩存空間。正確的做法是讓 LIR 大小動(dòng)態(tài)變化但設(shè)置上下限。下限可以設(shè)為緩存容量的 50%保證基本的熱數(shù)據(jù)保護(hù)上限可以設(shè)為 95%防止 HIR 被完全擠占。在這個(gè)范圍內(nèi)LIR 根據(jù)升級(jí)和降級(jí)的頻率自動(dòng)伸縮。具體實(shí)現(xiàn)時(shí)可以維護(hù)一個(gè)lir_target變量每次升級(jí) HIR 塊時(shí)lir_target 1每次降級(jí) LIR 塊時(shí)lir_target - 1然后限制在[0.5*capacity, 0.95*capacity]范圍內(nèi)。這樣 LIR 就能跟隨訪問(wèn)模式自動(dòng)調(diào)整。這個(gè)細(xì)節(jié)在學(xué)術(shù)論文里往往一筆帶過(guò)但在工程實(shí)現(xiàn)里非常關(guān)鍵。我見(jiàn)過(guò)好幾個(gè) LIRS 實(shí)現(xiàn)因?yàn)楹雎粤诉@一點(diǎn)導(dǎo)致在真實(shí)負(fù)載下表現(xiàn)不穩(wěn)定。5. 從理論到生產(chǎn)LIRS 的落地建議5.1 什么情況下值得上 LIRS不是所有項(xiàng)目都需要 LIRS。我建議你先問(wèn)自己三個(gè)問(wèn)題第一你的緩存命中率是否對(duì)業(yè)務(wù)有顯著影響如果緩存命中率下降 10% 只是讓延遲增加幾毫秒那沒(méi)必要折騰。但如果命中率下降會(huì)導(dǎo)致數(shù)據(jù)庫(kù)過(guò)載、服務(wù)雪崩那就值得投入。第二你的訪問(wèn)模式是否包含掃描或突發(fā)如果你的業(yè)務(wù)是穩(wěn)定的點(diǎn)查沒(méi)有批量掃描那 LRU 足夠。但如果你有離線任務(wù)、報(bào)表查詢、爬蟲(chóng)抓取等會(huì)沖刷緩存的流量LIRS 的價(jià)值就體現(xiàn)出來(lái)了。第三你的團(tuán)隊(duì)是否有能力維護(hù)復(fù)雜的緩存邏輯LIRS 的實(shí)現(xiàn)和調(diào)優(yōu)需要一定的工程能力。如果團(tuán)隊(duì)人手緊張用成熟的 ARC 或者帶權(quán)重的 LRU 可能更務(wù)實(shí)。我的經(jīng)驗(yàn)是日請(qǐng)求量在千萬(wàn)級(jí)以上、且存在明顯冷熱數(shù)據(jù)分層的系統(tǒng)上 LIRS 的收益最明顯。小系統(tǒng)用 LRU 就夠了過(guò)早優(yōu)化反而增加維護(hù)成本。5.2 灰度上線與效果驗(yàn)證方法如果你決定上 LIRS不要一次性全量替換。我推薦的做法是第一步雙寫(xiě)雙讀。同時(shí)維護(hù) LRU 和 LIRS 兩個(gè)緩存讀請(qǐng)求先查 LIRS未命中再查 LRU然后異步回填 LIRS。這樣即使 LIRS 有問(wèn)題也不會(huì)影響線上服務(wù)。第二步對(duì)比命中率。跑一周后對(duì)比兩個(gè)緩存的命中率曲線。如果 LIRS 命中率穩(wěn)定高于 LRU 5 個(gè)百分點(diǎn)以上說(shuō)明有效。第三步逐步切流。從 1% 流量開(kāi)始逐步增加到 10%、50%、100%。每次增加后觀察 24 小時(shí)確認(rèn)沒(méi)有異常再繼續(xù)。第四步保留回滾能力。即使全量后也要保留一鍵切回 LRU 的能力。緩存策略的切換不應(yīng)該影響業(yè)務(wù)可用性。驗(yàn)證指標(biāo)方面我建議重點(diǎn)關(guān)注三個(gè)緩存命中率、P99 延遲、后端數(shù)據(jù)庫(kù) QPS。命中率上升、延遲下降、數(shù)據(jù)庫(kù) QPS 下降說(shuō)明 LIRS 生效了。如果命中率上升但延遲也上升說(shuō)明 LIRS 的計(jì)算開(kāi)銷太大需要優(yōu)化實(shí)現(xiàn)。5.3 后續(xù)擴(kuò)展方向從 LIRS 到自適應(yīng)緩存LIRS 本身已經(jīng)很強(qiáng)了但它還有一個(gè)可以改進(jìn)的地方參數(shù)是靜態(tài)的。LIR 比例、剪枝閾值這些參數(shù)一旦設(shè)定就不會(huì)自動(dòng)調(diào)整。如果業(yè)務(wù)訪問(wèn)模式發(fā)生長(zhǎng)期變化LIRS 可能不再是最優(yōu)的。一個(gè)自然的擴(kuò)展方向是自適應(yīng)緩存也就是讓緩存根據(jù)實(shí)時(shí)命中率自動(dòng)調(diào)整參數(shù)。比如如果發(fā)現(xiàn)命中率持續(xù)下降就自動(dòng)降低 LIR 比例給新數(shù)據(jù)更多機(jī)會(huì)如果命中率穩(wěn)定就提高 LIR 比例加強(qiáng)熱數(shù)據(jù)保護(hù)。這個(gè)方向已經(jīng)有了一些研究成果比如基于強(qiáng)化學(xué)習(xí)的緩存策略、基于滑動(dòng)窗口的自適應(yīng) ARC 等。如果你對(duì) LIRS 已經(jīng)玩得很熟了可以往這個(gè)方向繼續(xù)探索。最后再分享一個(gè)小技巧在實(shí)現(xiàn) LIRS 時(shí)一定要加詳細(xì)的監(jiān)控埋點(diǎn)。記錄每次升級(jí)、降級(jí)、淘汰、剪枝的次數(shù)和原因這些數(shù)據(jù)在排查問(wèn)題時(shí)非常有用。我當(dāng)初就是靠這些埋點(diǎn)才發(fā)現(xiàn)棧剪枝邏輯里有一個(gè)邊界條件寫(xiě)錯(cuò)了導(dǎo)致 5% 的塊被錯(cuò)誤刪除。沒(méi)有埋點(diǎn)的話這種問(wèn)題幾乎不可能定位。這個(gè)內(nèi)容后續(xù)還可以這樣擴(kuò)展把 LIRS 的思想應(yīng)用到分布式緩存中比如在一致性哈希的每個(gè)節(jié)點(diǎn)上獨(dú)立運(yùn)行 LIRS然后通過(guò)全局協(xié)調(diào)來(lái)優(yōu)化整體命中率。不過(guò)這又是另一個(gè)大話題了有機(jī)會(huì)再展開(kāi)聊。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99惹 精品在线| 欧美 日韩 成人 在线| 有哪些A片网站| 天天操中文字幕| 婷婷视频网| 日日爽天天| 天天色图| 丁香五月天天| 色青青电影色五月| 亚洲另类在线观看| 色播五月婷婷| 青青福利网| 日本久久爽| 免费视频WWW在线观看网站| 五月天色区| 97亚洲色 torrent magnet| 久99久视频精选| 五月天激情国产综合婷婷| 亚洲色色色色| 色色色欧美| 五月婷婷先锋| 久久se 综合网| 亚洲精品国产setv| 超碰在线9| 色婷婷丁香AV综合| 色婷五月天网站| 免费黄色片子| 超碰在线免费| 99久久婷婷五月| 天天干,天天日| 色噜噜狠狠一区二区三区| 小视频aaa久久久| 丁香五月婷婷色偷偷| 99综合免费视频| 啪啪黄页网| 色色色色色爱| 婷婷丁香五月天中文字幕| 亚洲婷婷五月天在线激情综合网| 激情久久五月天| WWW、日本色丁香、co m| 99热精品在线观看| 99ER热精品视频| 日本五月天激情| 五月婷婷 六月丁香| 国产91视频| 热久69| 丁香五月停停av| www免费在线视频| 超碰免费在线| 天天日色情| 色婷婷狠狠18禁| 一区视频网站| 强伦轩人妻一区二区电影| 久久伦乱| 99热思思| 风流少妇A片一区二区蜜桃| www.精品99| 天天插天天日| 久久草大香蕉| 久热伊人| 久热婷婷综合| 久在线综合69| 婷婷五月天丁香社区| 丁香五月婷婷av影院| 五月婷婷综合网| 六月婷婷综合| 99色色| 五月噜噜噜色综合| 婷婷六月丁香综合| 亚洲乱码成人| 色色亚洲五月天| 开心网五月色婷婷| 色婷婷久综合久久一本国产AV| 丁香五月天av| 婷婷国产成人| 婷婷五月天基地| 婷婷九月色| 情欲禁地| 天天综合网~91综合网| 深爱五月激情网| 岛国资源网| 五月天激情久色| 丁香五月天激情网| 色婷婷基地| 久1色色| www.伊人天堂偷偷婷婷| 天天摸天天透天天舔| 原琪琪色影院| 激情婷婷丁香五月| 狼人狠狠操| 丁香五月,开心五月,成人婷婷| 99er这里只有精品视频| 激情综合网五月| 综合网啪| 国产精品色情AAAAA片软件| 精品99*| 激情五月份婷婷| 色五月激情综合网| 丁香五月婷婷在线观看| 六月丁香婷| 沈娜娜av| 色天天狠狠干| 97碰人人操| 久久久久人妻| 丁香五月婷婷激情四射| 无码婷婷五月天| 色综合激情| 久思思热视频在线观看| 久久丁香五月天| 五月丁香六月婷| 五月丁小婷婷激情四射| 99精品热| 久久婷婷人人| 97性高潮久久久| 久99热| 99热只有这里才是精品| 婷婷丁香成人| 97精品自拍| 69午夜成人影片| 国产精品色色| 色综合网页| av九九| 日日夜夜小色哥| 日韩欧美一级大黄网站| 日亚二欧美| 开心五月丁香综合久久| 五月婷色| AV在线大香蕉| 天天婷婷综合亚洲亚洲| 九月丁香很很色| 国产激情久久久| 五月丁香色| 五月天综合网| 婷婷六月丁香在线| 五月亭亭六月天| 变天就操逼婷婷五月| 狠狠做六月爱婷婷综合aⅴ| 激情综合五月婷婷| 九色91国产| 秋霞av吧| 丁香五月亚洲无码| 国产亚洲成AV人片在线观黄桃| 色婷婷a v| www激情com| 日韩中文欧美| 人妻性爱| 专区无日本视频高清8| 丁香六月狠狠干| 五月开心色| 欧美人与性动交CCOO| 日韩在线视频中文字幕| 成人在线综合| 久久9热| 色婷婷狠狠18| 色婷婷综合在线| 日日操,天天操| 日本99视频| 激情婷婷五月久久| 91婷婷| 婷婷五月天成人网| 激情网五月| 国产成人av在线播放| 99热国产这里只有精品| 热久69| 久久人妻久久| 精品久久婷婷| 亚洲在线综合| 色色五月婷婷| 久操操| 激情五月丁香五月| 五月四色婷婷| 亚洲成人AV电影网| 久久婷婷五月综合| 黄色五月婷婷| 日本狠狠干| 婷婷综合欧美| 国产成人AV| 色综合xx| 中文字幕成人版| 天天射夜夜骑| 五月婷婷激情日本| 尔尔AV一区| 99综合| 婷婷免费视频| 五月天小说激情| 婷婷丁香社区| 26uuu国产激情视频| 无毒黄色网址| 另类激情五月| 综合婷婷六月| 黄色高清无码| 久99久精品| 激情床戏| 日产精品一线二线三线芒果| 婷婷五月天天aV| 久久久久久9热不雅视频| 婷婷五月天六点丁香五月| www,com,五月色色| 国产1区2区3区在线观| 精品人妻伦九区久久AAA片| 色必久悠悠影院| 日本欧美成人片AAAA| 久久婷婷五月综合色播| 9久久网| 9l视频自拍九色9l视频在线观看| 久久这里只有精彩| av一区免费看| 五月丁香婷婷六月| 五月丁香花激情综合网| 成人 在线 日韩| 婷婷九月色| 五月色丁香婷婷中文字幕| 九九综合影音先锋| 婷婷色中文字幕| 综合在线网| 日韩99无码| 久色资源| www.夜夜夜| 色情激情五月婷婷| 五月丁香激情综合| jizzdr| 婷综合| 亚洲妇女熟BBW| 性生活久久人妻| 99日精品视频| 欧美亚洲色色色色| 九九操操| 国产五月天欧美色| 99热这只有| 丁香五月婷婷激情蜜桃| 9l视频自拍9l九色成人| 五月天桃色深爱网| 婷婷五月情色| 在线99热| 五月停停色| 蜜桃五月天| 99热精品免费| 激情综合网亚洲色图| 婷婷欧美激情| 六月丁香婷婷爱| 麻豆雪千夏| 五五月五月| 色五月超碰| 久久人人做人人妻人人玩精品va| 日本五月婷婷| 久久99热这里只频精品6学生| 五月激情精品视频| 99人人干| 色哟哟性爱av| 丁香五月婷婷激情蜜桃| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 这里只有精品视频| 婷婷色网站| 五月丁香综合啪啪| 中美日韩成人在线| 欧美成人日韩| 午夜福利成人AV91| 日本性视频| 六月色婷婷| 噜噜狠狠色| 美女激情婷婷| 五月的婷婷六月丁香| 99热大香蕉| 精品国产a| 亚洲激情综合| 亚洲精品成人| 任你爽视频| 在线观看欧美| 午夜九九九九九九九九九九九九九| 五月天婷婷黄色| WWW,激情五月天,COM| 97超级碰碰碰| 中文字幕亚洲-区久久99婷婷| 无遮挡国产高潮视频免费观看| 99九九在线| 天天干天天操天天拍| 婷婷五月综合激情小说| 噜噜噜色噜噜| 婷婷丁香五月天亚洲| 激情丁香久久| 五月开心六月婷婷在线播放网站| 日韩人妻无码一区二区| 久草久青福利| 2020久久婷婷五月| 天堂五月婷婷| 国产精品国产VA片国产| 丁香欧美| 天天激情站| 99色视频免费在线规看| 超碰熟女拍拍| 9九色首页| 亚洲激情另类| 日本一级| 丁香五月社区| 欧美性猛交99久久久久99按摩| 欧美成人精品A片免费一区99| 久热九九| 久操热| 五月丁香六月情| 九九激情综合| 国产亚洲成AV人片在线观黄桃| 激情五月天色色| 久综合网| 《蜘蛛女》梁铮1995| 99视频这里有精品免费观看| 婷婷五月亚洲一本在线丁香| 台湾无码A片一区二区| 91日日日| 丁香五月av| 色婷婷亚洲婷婷| 天天日夜夜爽| 狠狠色综合图片| 9久操| 91日日日| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 五月天啪啪网| 性爱五月丁香| 精品99久久久久成人网站免费| 激情的五月婷婷蜜桃| 色五月丁香总合网| 99热这里只有精品最新| 婷婷五月天综合久久| www.99热在线观看| 天天做天天爱| 中文字幕人妻AV| 欧美日韩国产一区| 欧美激情xxxXX| 伊人久久五月天| 久久99网| 欧美色婷婷| 色呦呦在线| 久久99看免费| 丁香色啪综合| 免费播放片大片| 另类视频五月天| 婷婷色色综合| 黄色三级日本| 97婷婷五月| 久久大香蕉同僚| 色播五月丁香| 九月婷婷色色| 色级婷婷| WWW,色五月| 六月丁香婷婷在线波多 | WWW.激情| 夜色综合网| 日日夜夜狠狠| 婷婷玖玖丁香| tingtingzonghewang| 激情婷婷丁香| 超碰免费人人| 区啪精品| 成人婷婷色五月天| 丰满人妻一区二区三区| 黄色视频网站在线播放| 91蜜桃婷婷狠狠久久综合9色| 亚洲精品久久久久久久久久吃药| 九九综合九九| 婷婷色网址| 九九激情综合| www.夜夜操| 中文字幕乱码亚洲精品一区| www.五月婷婷久久.com| 夜夜夜夜撸夜夜操| 蜜臀久久99精品久久久久久酒店| 日韩成人AV在线| 激情性五月天免费小说视频| 婷婷综合| 丁香五月婷婷激情网| 日日激情网| 亚洲婷婷欧美婷婷| 五月天伊人久久| 色婷婷亚洲精品天天综| 国产婷婷综合在线免费视频| 丁香成人五月天| 婷婷综合网站| www.99热国产| 婷婷五月天久久| 亚洲超级碰| 五月婷婷综合久久| 丁香五月亭亭六月综合激情网| 亚洲久久视频| 操97在线观看| 九九人人精品| 五月天亚洲最大成人| 香蕉AV777XXX色综合一区| 久久伊人日日夜夜| 色色色色色五月| 欧美综合123区| 五月天激日本色情在线| 久久日婷婷| EEUSS鲁片一区二区三区| 欧美精品999| 婷婷九月| 可以免费观看的av| 99久久9| 人人操超碰| 九九热在线视频,| 久久伊人大香蕉| 九九色人| 婷婷色导航| 亚州综合色| 日本va欧美va欧美va| 久操欧美在线观看97| 亚洲精品乱码久久久久99| 色婷婷狠狠| 欧美综合123区| 亚洲操操操| 五月婷婷综合在线| 五月天社区狠狠| 狠狠综合| 亚洲综合网激情五月天| 99精品偷自拍| 婷婷色Av| 婷婷色色丁香| 五月天丁香成人社| 九九热大香蕉| 中文字幕有多少字| 婷婷五月天堂| 激情伊人五月天| 中文网AV| 骚五月婷婷| 成人精品视频99在线观看免费| 久久 天天| 好好日激情五月天| 67194成I人在线观看线路1| 桃色五月婷婷| 性做久久久久久久免费看| 色综合天天| 秋霞电影理论| 99这里的视频都是精品| 一级性感黄色内射视频| 色色五月天com| 9久热精品在线视频| 99九九热在线观看| 五月丁香六月婷婷综合| 久热最新视频| 高清无码一区二区三区四区| 98国产精品综合一区二区三区| 色五月婷婷大| 很很色丁香久久停停| 婷婷色在线播放| 久久之人妻| 欧美性生交XXXXX无码小说| 丁香五月激情婷婷激情| 99热999| 婷婷五月大香蕉| 新久久五月天激情| 亚洲天堂青草| 丁香五月天激情视频| 99热这里只有精品亚洲| 操b视频在线观看一区二区| 一本色道久久综合狠狠躁小说| 色婷婷综合综合网| 9久热精品在线视频| 色婷婷AV久久久久久久| 99热这里有精品| 五月丁香婷婷激情在线| 日本人人干| 九九在线视频| 亚洲第一第二网站| 99热99成人| 99久久超级| 99精品在线观看视频| 婷婷激情五月天综合| 激情五月婷婷视频| 超碰在线人妻| 5月婷婷五月天| 五月丁香啪啪激情| 亚洲成人av中文| 久久婷婷五月综合色奶水99啪| 六月丁香花婷婷| 伊人九热| 91超级碰| 91色吧网| 国精产品一区二区三区| 99视频精品全部免费看| 人人叉久| 淫五月停停| 婷婷99狠狠躁天天| ji'qi'luan'ren'lun| 国精产品一区一区三区免费视频| 色婷久久| 色综合久久8| 大香蕉75线| 五月天天堂久久| 超碰99在线观看| 丁香六月色婷婷欧美| 国产欧美婷婷五月| 色丁香影院| 俺去也婷婷| 99碰超| 午夜少妇在线观看视频| 99热国产免费| www.久久| 91色五月在线观看| 91九色丨国产丨爆乳| 性五月激情| 99热这里有精品2| 《蜘蛛女》梁铮1995| 久久HD| 九月婷婷丁香| 99热这里只有精品手机在线观看| 婷婷精品免费久久| 丁香婷婷色九月| 热日韩欧美| 97综合在线| 天天操无码| 五月婷婷丁香婷婷| 狠狠狠狠狠狠狠狠| 五月丁香婷婷潮喷中文字幕| 婷婷六月激情丁香| 婷婷开心青青草| 婷婷香香五月| 五月丁香美女视频| 亚洲激情av| 操日视频| 久久婷婷五月天激情四射| 狠狠色综合无线观看| 国产精产国品一二三在观看| 色色色五月婷婷| 99欧美| 996er热| 日本天堂爱爱| 狼人狠狠操| 五月丁香婷婷婷激情爱爱| 欧美婷婷五月丁香| 日韩 中文 欧美| 色五月婷婷AV| 99riAv1国产在线观看| 五月丁香六月婷婷的女人| 92久久久| 婷婷丁香91| 色情五月天小说| 国产精品婷婷午夜在线观看| 天天干天天插| 国产九九一区二区三区| ou洲色吧| 97人人爱人人操| 性爱人人网| 看全色黄大色大片| 97碰| 欧美天天爽| 久久婷婷激情五月天一区二区| 综合97五月| 丁香婷婷六月婷婷六月婷婷六月婷婷| 麻豆科斗777| 婷婷国产日本欧美| 丁香六月亚洲综合 | 久久九九99| 狠狠插狠狠操| 伊人在线视频| 男人的天堂在线婷婷| 激情五月瑟瑟| 91ncm视频| 亚洲另类电影| 综合激情五月丁香| 久久婷婷六月综合| 丁香九九九九| 八戒青柠影视剧在线观看| 在线看的免费网站| 99热观看| 色婷婷婷婷| 婷婷五月丁香激情| 色婷婷色综合激情91| 色五月色图| j久久性爱视频| 亚洲综合色丁香婷婷六月| 欧美精品熟女一区二区| 色情五月天丁香社区| 人人爽天天爽| 久操乱| 日本精品干| 亚洲精久久| 激情网狠狠干| 婷婷久月| 久久人人超| 日本在线视频播放91| 亚洲六月色婷婷| 精品久久9| 天天色播| ..真实国产乱子伦对白在线_欧 | 丁香九月色| 婷婷五月天Av| 99热这里只有精品1998| 99男人的天堂| 婷婷色色网站| 伊人碰碰碰| 五月天色导航| 欧美影院婷婷| 香蕉99网| 色综久久AV| 色色亚洲五月天| 久热9| 在线看av| 久久99热 这里有精品| 91se在线观看| 久久久天天啊| 中字幕视频在线永久在线观看免费 | 丁香五月大香蕉在线99| 九九碰九九爱97| 婷婷五月天干干| 五月天综合视频| 亚洲天堂青草| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 色色激情五月天| 91人人看| 五月丁香综合伦理片| 丁香五月色网| 久9热插入| 丁香六月婷婷开心| 婷婷久久久久| 亚洲无码激情| 香蕉久久六月| 精品人妻一区二区| 天堂草在线看www| 99爱爱| 中文字幕中文有码在线| 97久久人人操| 色噜噜婷婷| 97资源欧美日韩大香蕉超碰一区| 色综合激情图区| 五月丁香亭亭操逼| 色噜噜狠噜噜视频| 另类国产欧美视频| 久久婷婷五月激情网站| 午夜色婷婷| 99在线资源| 久久九九免费视频| 饮料下药迷倒漂亮女同事强干| 92久久精品一区二区| 久久激情视频| 久久久.COM| 激情婷| 亚洲色综合性| 久久五月婷综合| 99激| 26uuu欧美| 久久五月婷婷电影| 成人精品在线| 午夜激情综合| 国产操碰| 丁香六月激情| 成人 在线 日韩| 热99精品视频| 9l视频自拍九色9l视频自拍九色9l社区 | 日韩五月天婷婷| 五月婷丁香| 综合激情五月四射婷婷| 夜夜撸夜夜骑| 精a品a视a频| 久久这里只有精品99| 91精品久久久久久| 亚洲这里只有精品| 激情五月天啪啪视频| 色综合色色色| 人妻性爱| 亚洲欧洲中文日韩久久AV乱码| 婷婷五月亚洲激情| 啪啪啪大香蕉| 久久九九99字幕| 大香蕉220| 99热777| 五月婷婷激情啪啪| 99热这里只有精品3| 五月丁香六月婷婷综合| 久色激情| 久热久| 丁香五月偷拍| 无码激情精品色婷婷久久久久| 亚洲日韩操B| 丁香六月视频免费观看| 39视频第二区| 久去色色| 91日本在线观看| 婷婷久久亚洲| 丁香六月婷婷五月天| 激情久久肏屄视频| 色欲丁香| 国产欧美婷婷五月| 五月婷无码| 色五月婷婷五月天| 99re在线视频精品,这里只有精品18,| 97操碰| 无码人妻一区二区三区免费九色| 婷婷成人在线| 色五月在线观看| 婷婷成人在线| 98热精品| 99热手机在线精品| 婷婷五月天亚洲精品| 久久久噜噜噜www成人| 97久久精品| WWW、日本色丁香co m| 人妻激情久久| 色婷婷www| 婷婷六月丁香久| 久色大香蕉| 激情综合五月丁香| 思思色综合网站| 九九综合网色全集 | 激情婷婷在线| 久久香蕉网| 天天摸天天高潮天天爽| 一本色道久久88加勒比—| 激情六月综合| 99亚洲日韩| 亚洲中文字幕网| 97超级啪啪在线观看| 久碰婷婷视频| 婷婷五月丁香五月天| 91在线操| 老妇六区| 亚洲天堂热| 人人摸人人干人人做| 9久精品视频| 校园春色亚洲色| 婷婷六月久久综合导航| 婷婷干五月综合在线播放| 色综合婷婷| 丁香五月 性爱| 免费色婷婷| 大香蕉婷婷色| 天天射色五月天| 五月天色丁香| 99啪在线| www色中色综合| 久久曰曰| 婷婷丁香五月天大香蕉| 精品婷婷五月视| 国产精品电影网| caop视频| 99热这里在线精品| 少妇性按摩无码中文A片| 亚洲激情综合| 日本美女上人| 五月丁香另类图片| 国产成人AV| 亚洲天堂爱爱| 伊人热在线大香蕉| 婷婷色在线| 99热大香蕉| 激情www| 蜜乳国产网站| 美妞av| 97人人干人人操| 天天干,天天操,天天射| 欧美,日韩成人在线| 色色亚洲| 在线99热| 九九精品热| 日本在线视频播放91| 激情五月天色婷婷| 丁香五月激情六月| 婷婷欧美色| 中文字幕在线播放视频| 国产激情在线| 精品99在线观看| 一本九九色| 综合久久十| 成人 在线观看国产| 五月丁香成人网| 激情五月丁香婷婷| 色色色色色色色色网站| 日韩成人av在线| 狼友超碰| 激情丁香九九五月综合网| 婷婷色五月丁香六月欧美啪| 亚洲丁香五月| 99性爱精品| 米奇影视五月天| 激情综合网亚洲色图| 五月婷高清视频| 五月婷婷 欧美| 区区久久妻| 婷婷五月天激情小说| 色婷婷91| 色婷婷综合亚洲| 久久久久婷| 97久久五月丁香婷婷| 午夜福利成人AV91| 日本97久久久精品| 九色无码| 婷婷四色五月| 伊人大香蕉在线视频| 五月色丁香视频精品| 亚洲成人av在线观看| 婷婷五月天另类网站| 丁香五月www| 九九亚洲天堂| 久久性都花花世界成人免费视频| 91无码一起草| 日本在线wwww| 久久久A级视频| 五月婷婷婷综合网| 伊人久久大香线蕉av最新| 啪啪综合| 99综合免费视频| 丁香五月色色色色| 婷婷五月 丁香六月| 深爱五月天 开心网| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 黄网免费观看| 丁香九月综合| 天天噜天天爱| 丁香五月婷婷色| 色亚洲激情| 久久婷丁香五月| 97天堂| 专区无日本视频高清8| 中文字幕丰满孑伦无码专区| 久久久日韩特色特黄AAAA| 五月婷婷综合色啪首页| 久久天堂| 另类激情五月天。| 成 久久| 综合激情站| 性一交一乱一交A片久久四色| 26uuu欧美| ..真实国产乱子伦对白在线_欧| 99在线免费视频播放| 五月丁香久人妻中文| 婷婷她六月天| 5月丁香六月婷婷| 五月天偷拍| 激情综合五月天| 色婷青青| 亚洲、欧美、国产另类笫二区| 色情五月天视频网| 五月婷婷开心亚州在线| 激情 婷婷| 粉嫩AV久久一区二区三区| 99欧美精品99日本精品| 色七七九九| 超碰在线99| 五月婷婷婷婷婷婷艺术| 8区视频在线| 天天插天天插| 天天操五月天| 激情宗合哪里能看| 色婷婷综合视频| 色婷婷成人| 91九色PORNY大屁股| 91日日日| 亚洲综合婷婷五月天| 天天天天天天噜| 99免费热视频在线| 色婷婷无吗| 天天艹天天综合网| 色五月婷婷影院| 婷婷五月综合激情| 91N 一起草| 天天做天天要天天爱| 夜丁香五月婷婷| 9+1视频网址| 超碰99成人在线| 国产超碰在线| 婷婷五月激情六月| 久热在线中文字幕色999舞 | 欧洲色| 欧美韩国日本| 国产9色在线/日韩| 久久机只有这里精品| 婷婷六月色| 色播色丁香五月| 色青青五月| 影音先锋91| 婷婷综合久久综合| 久久99最新| 99亚洲视频| 超级碰碰碰久久网站| 精a品a视a频| 日本狠狠干| 婷婷激情久久| 丁香狠狠| 五月天伊人综合| 天天干人人奸97| 精品国产人人爱人人| 91丨九色丨熟女丰满| 六月丁香AV| 婷婷五月色花丁香社区| 无码区婷婷五月花开| 无码字幕中文| 天天天添天天操| 五月天激情小说网| 国产激情在线| 日韩色色视频| 久久婷婷六月综合国际| 天天做天天爰天天爽天天无遮挡| 996er热| 亚洲天堂无码| 久久这里只有精品8| 国产欧美日韩综合精品一区二区| 天天舔天天插天天爱| 99热99精品| 男人的天堂97| 久草热视频在线观看| www.久99| 丁香综合网| 少妇被下春药玩弄A片| 性色播| 午夜婷婷| 五月婷婷xxx| 亚洲成人网站在线播放| 亚洲成人av在线观看| 五月丁香六月花| 日本不卡一区二区三区| 五月丁香va| 日韩啪啪视频| 日日夜夜狠狠婷婷色| 99热在线精品观看| 丁香五月婷婷基地| 婷婷色网| 97精品综合| 综合网天天| 色婷婷文字幕| 激情九色| 亚洲综合视频在线| 久综合| 亚洲99综合| 色婷婷综合久久久久| 九九RE视频在线精品| 91久热| 丁香六月激情综合| 精品色色| 亚洲热综合| 久久少妇视频| 狠狠干五码| 婷婷丁香一月| 狠狠操天天操天天操| 欧美性生交A片免费看| 五月丁香花伦理电影| 成人做爰A片免费看视频| 艹| 伊人婷婷大香蕉在线| 99国产性感视频| 中文字幕婷婷在线| 色婷婷五月天偷拍| 婷婷久久久久| 99视频内射三四| 五月噜噜噜色综合| 亚洲欧美日韩VIP| 婷婷香五月| 大香AV| 婷婷97碰碰| 26uuu欧美日韩| 六月丁香婷婷网| 九九精品综合| 色色网站免费观看| 狠狠狠狠狠干| 色吊操色妞| 久婷婷五月丁香在线观看| 97人人干| 99热久久这里只有精品2010| 99er热精品视频| 久激情网| 激情宗合哪里能看| 日韩av在线播放综合网| 影音先锋91| 99热6这里只有精品| 丝袜大香蕉| 最近中文字幕2019视频1| 天天综合 99久久婷婷| 丁香五月宝贝激情网| 激情小说婷婷| 色色色99| 99爱免费在线观看| 丁香五月婷婷综合激情哟哟哟| 开心激情站| 开心五月六月婷婷| 黄色AAAA韩国guochansanji| 人人爱摸视频| 久久黄色免费视频| 久婷视频| AV性爱在线| 深情五月天| 99精品视频推荐| 丁香五月性爱| 国产激情婷婷| 人人人操Av| av在线观看网址| 久久婷婷视频| 五月婷婷无码| 色情五月丁香婷婷网| 有码一区二区三区| 丁香婷婷五月| 亚洲99精品欧美一区| 亚洲精品视频在线| 亚洲啪| 六月丁香婷婷综合狠狠爱夜夜爱| 五月激情婷婷色| 九热...av| 91 影音先锋| 婷婷丁香五月欧美人| 色婷婷亚洲| 888久久久| 亚洲欧美另类在线23p| 年轻的妺妺伦理HD中文| 五月色综合网欧美网| 色婷婷97| 激情爱爱网站超大免费| www狠狠com| www.99情趣网| 伊人婷婷99热精品| 深爱五月亚洲| 99re在线播放| 婷婷在线操| 亚洲成av人影院| 激情综合5| 色婷婷狠狠| 亚洲色色香蕉| 色色色视频| 久热久| 热久久这里只有三级视频| 五月丁香六月婷| 99久在线精品| 婷婷丁香色五月| 天天色,天天操,天天射| 色综合网上班开心婷婷久久| 婷婷久久婷婷| 丁香五月欧美婷婷| 99年操人人爽| 狠狠操狠狠操| 色婷操逼| 思思精品视频| 五月天色婷婷成人| 丁香五月在线观看综合| 九九热在线观看6| 五月婷婷综合久久| 我去色色网五雨天| 三日本无码| 国产成人综合亚洲| 丁香五月激情啪啪| 色5月丁香婷婷| 99在热线免费视频| 欧美日本一区二区三区| 99色色最新视频| 免费看片操逼| 色婷婷五月天不卡| 9伊人网| 91精品综合久久久久久五月丁香| 青草青草久热这里只有精品| 精品一区二区三区免费毛片爱| 五月婷婷开心六月激情小说| 91黄色五月天视频| 色婷六月| 色噜噜狠狠色综合网| 久久婷婷热| 五月丁香基地| 97干欧美| 五月激情久久综合| 熟女国产在线一区二区三区四区| 色五月大| 99热精在线九九久久保| 色99xx| 99热综合色图| 五月视频日本免费观看| www.9色色色| 婷婷五月综合色拍| 色久在| 999九九九久久久99HD| 婷婷色在线视频| 久久综合热17c| 激情骚五月| 激情五月天色网站| 丁香5月啪啪| 91九色 婷婷| 色优久久| 亚洲激情另类| 五月色网| 婷婷丁香91综合| 日韩九区| 久热视频A.| 婷婷五月乱交换| 五月婷婷激情网| 国产永久一二一起草| 丁香五月天堂网AV| 色色色999| www.henhengan| 五月天激日本色情在线| 91热久| 三级三久久线久久99久目本WW| 久久小片| 久久久久综合激动五月天| 四川操逼站| 欧美性生交XXXXX无码小说 | 成人龟情网丁香五月| 天堂A∨在线| 婷婷激情鹿城五月天| 丁香久月| 99爱操| 9999久久久久| 日韩五月丁香| 蜜臀九九九九| 天天狠天天狠| 五月天另类图片区99| 日逼影音先锋男人AV资源站| 色婷婷综合网| 九九免费视频| 天天操天天日天天爽| 大香网伊人久久综合| 97人人操人人拍| 久久无码成人| 久99热| 九九色色网| 成人免费在线电影| 婷婷激情社区| 天天粽合合合合| 久久综合婷婷| 色狠狠色综合久久久绯色AⅤ影视| 性欧美大战久久久久久久83| 丁香五月激情网| 激情久久久| 日本欧美国产| 丁香激情六月天婷婷| 99这里的视频都是精品| 五月天无码| 色婷婷19| 亚洲熟女色| 久久艹99| 五月天婷婷久草丁香| 一起操 91N.com| 人妻在线观看视频| AA片在线观看视频在线播放| 97人人超| 五月丁香狠狠爱| 岛国AV网| 九九99久久| 日日杆天天| 五月天激情网图片| 人妻久久人妻久久第一区| 成人精品99| 色导航色婷婷五月天在线观看| 婷婷基地五月色| 先锋男人99资源| 国产一级婬片毛片| 色播五月丁香婷婷| 99色丁香婷婷综合网| 婷婷五月丁香五月天| 99热6这里只有精品6| 丁香婷婷五月激情综合| 久久99热这里| 91se在线观看| 99玖玖在线视频| 色狠狠色综合久久久绯色AⅤ影视| 亚洲黄色精品| 99热新网址| 丁香五月婷婷激情小说| WWW、日本色丁香co m| 久久久精品99亚洲综合| 色婷婷五月天激情在线播放| 少妇口诉沐足视频播放器网址| 男人天堂亚洲综合| 婷婷六月天亚州| 亚洲va欧美va天堂v国产综合| 99ri精品在线| 色色五月天网站| 99色在线视频| 激情操逼婷婷| 蜜乳AV成人| 婷婷五月综激情| 欧韩性爱| 婷婷丁香亚洲五月天| 青青草原99热| 播五月开心婷婷欧美综合| 日韩无码专区| 五月天婷婷色| 四季日韩AV无码综合| 激情99| 91热er| 99热只有这里才是精品| 67194中文字幕| 久久久人妻| 久久久国产精品黄毛片| 国产中文字幕在线视频免费观看| 综合99综合久久久久久久| 五月丁香美女| 婷婷五月天亚洲激情戏精品| 婷婷丁香五月天激情| 伊人五月天在线| 国产99久久久国产精品免费看 | 99爽视频| 八戒青柠影视剧在线观看| 人操91在线| 亚洲精品乱码久久久久久按摩观| 丁香五月激情站| 超碰人人干| 国产亚洲精品AAAAAAA片| 色五月婷婷天堂| 色五月丁香五月| 99er6热在线观看精品6| 精品人人操| 香蕉AV777XXX色综合一区| 婷婷激情五月视频| 色五月无码| 婷婷久久五月天| 天天爽天天操| 色色丁香色五月| 久久五月天合网| 天天狠狠色| 亚洲综合1024| 日操夜操天天操不卡| 欧美婷婷六月丁香综合色| 色婷婷狠狠色| 色色五月婷婷| 激情五月婷婷她| 色小说婷婷五月天天天| 婷婷五月婷婷| αv中文字幕在线观| 婷婷五月天AV| 丁香六月激情综合| 免费看欧美成人A片无码| 久9无码视频| www.开心激情| 亚洲中文字幕在线观看| 91九色超碰正在播放| 狠狠久久婷婷| 色玖玖爱| 欧美天堂婷婷日韩| 婷婷色丁香五月| 久久六月天| 五月天激情色色| 婷婷四月 成人 狠狠干| 五月色综合网| 91色五月在线观看| www.minyis.com【JT】实力收量可预付TG@LXSPSW8 | 婷婷六月天精品| 亚洲色啪| 偷拍91九色| 久久五月婷天天干| 欧美人与性动交CCOO| 色婷婷综合网站| 色婷另类| 五月丁香另类网| 色婷婷六月开心中文字| 九九热超碰| 久久久精品视频79| 五月丁香激情综合网| 岛囯综合激情网| 六月婷婷狠狠做| 亚洲国产精品二二三三区| 国产精品成人AV在线| 天天操天天操天天操天天操天天操| 激情综合丁香六| 精品99网站| 狠狠综合网| 五月丁香激情片| 97av在线视频| 激情综合亚洲| 久久五月天视频| 六月丁香六月婷婷欧美| 99色在线| 婷婷五月丁香花综合| 五月丁香六月婷婷开心网| 日韩丁香涩| 俺去也在线www色官网| 狠狠婷婷色| 五月天激情网址| 天堂成人A片永久免费网站| 五月综合婷婷开心网| 青草视频在线观看视频| 亚洲综合网激情小说| 91精品久久久久久综合五月天| 五月天天丁香婷婷在线中| 久久性爱视频| 天天日天天操天天干|