日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis性能问题排查解决手册(值得收藏)

發(fā)布時間:2025/3/20 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis性能问题排查解决手册(值得收藏) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

點擊上方?好好學(xué)java?,選擇?星標(biāo)?公眾號

重磅資訊、干貨,第一時間送達

今日推薦:今天給大家推薦 6 個 Spring Boot 項目,拿來就可以賺錢!

個人原創(chuàng)100W+訪問量博客:點擊前往,查看更多

作者:蘑菇先生

cnblogs.com/mushroom/p/4738170.html

閱讀目錄:

  • 性能相關(guān)的數(shù)據(jù)指標(biāo)

  • 內(nèi)存使用率used_memory

  • 命令處理總數(shù)total_commands_processed

  • 延遲時間

  • 內(nèi)存碎片率

  • 回收key

  • 總結(jié)

  • 性能相關(guān)的數(shù)據(jù)指標(biāo)

    通過Redis-cli命令行界面訪問到Redis服務(wù)器,然后使用info命令獲取所有與Redis服務(wù)相關(guān)的信息。通過這些信息來分析文章后面提到的一些性能指標(biāo)。

    info命令輸出的數(shù)據(jù)可分為10個類別,分別是:

    • server

    • clients

    • memory

    • persistence

    • stats

    • replication

    • cpu

    • commandstats

    • cluster

    • keyspace

    這篇主要介紹比較重要的2部分性能指標(biāo)memory和stats。

    需要注意的是info命令返回的信息,并沒有命令響應(yīng)延遲相關(guān)的數(shù)據(jù)信息,所以后面會詳細(xì)介紹怎么獲取與延遲相關(guān)的數(shù)據(jù)指標(biāo)。

    倘若你覺得info輸出的信息太多并且雜亂無章,可以指定info命令的參數(shù)來獲取單個分類下的數(shù)據(jù)。比如輸入info memory命令,會只返回與內(nèi)存相關(guān)的數(shù)據(jù)。


    為了快速定位并解決性能問題,這里選擇5個關(guān)鍵性的數(shù)據(jù)指標(biāo),它包含了大多數(shù)人在使用Redis上會經(jīng)常碰到的性能問題。

    內(nèi)存使用率used_memory

    上圖中used_memory 字段數(shù)據(jù)表示的是:由Redis分配器分配的內(nèi)存總量,以字節(jié)(byte)為單位。其中used_memory_human上的數(shù)據(jù)和used_memory是一樣的值,它以M為單位顯示,僅為了方便閱讀。

    used_memory是Redis使用的內(nèi)存總量,它包含了實際緩存占用的內(nèi)存和Redis自身運行所占用的內(nèi)存(如元數(shù)據(jù)、lua)。它是由Redis使用內(nèi)存分配器分配的內(nèi)存,所以這個數(shù)據(jù)并沒有把內(nèi)存碎片浪費掉的內(nèi)存給統(tǒng)計進去。

    其他字段代表的含義,都以字節(jié)為單位:

    • used_memory_rss:從操作系統(tǒng)上顯示已經(jīng)分配的內(nèi)存總量。

    • mem_fragmentation_ratio:內(nèi)存碎片率。

    • used_memory_lua:Lua腳本引擎所使用的內(nèi)存大小。

    • mem_allocator:在編譯時指定的Redis使用的內(nèi)存分配器,可以是libc、jemalloc、tcmalloc。

    因內(nèi)存交換引起的性能問題

    內(nèi)存使用率是Redis服務(wù)最關(guān)鍵的一部分。如果一個Redis實例的內(nèi)存使用率超過可用最大內(nèi)存 (used_memory > 可用最大內(nèi)存),那么操作系統(tǒng)開始進行內(nèi)存與swap空間交換,把內(nèi)存中舊的或不再使用的內(nèi)容寫入硬盤上(硬盤上的這塊空間叫Swap分區(qū)),以便騰出新的物理內(nèi)存給新頁或活動頁(page)使用。

    在硬盤上進行讀寫操作要比在內(nèi)存上進行讀寫操作,時間上慢了近5個數(shù)量級,內(nèi)存是0.1μs單位、而硬盤是10ms。如果Redis進程上發(fā)生內(nèi)存交換,那么Redis和依賴Redis上數(shù)據(jù)的應(yīng)用會受到嚴(yán)重的性能影響。

    通過查看used_memory指標(biāo)可知道Redis正在使用的內(nèi)存情況,如果used_memory>可用最大內(nèi)存,那就說明Redis實例正在進行內(nèi)存交換或者已經(jīng)內(nèi)存交換完畢。管理員根據(jù)這個情況,執(zhí)行相對應(yīng)的應(yīng)急措施。

    跟蹤內(nèi)存使用率

    若是在使用Redis期間沒有開啟rdb快照或aof持久化策略,那么緩存數(shù)據(jù)在Redis崩潰時就有丟失的危險。因為當(dāng)Redis內(nèi)存使用率超過可用內(nèi)存的95%時,部分?jǐn)?shù)據(jù)開始在內(nèi)存與swap空間來回交換,這時就可能有丟失數(shù)據(jù)的危險。

    當(dāng)開啟并觸發(fā)快照功能時,Redis會fork一個子進程把當(dāng)前內(nèi)存中的數(shù)據(jù)完全復(fù)制一份寫入到硬盤上。因此若是當(dāng)前使用內(nèi)存超過可用內(nèi)存的45%時觸發(fā)快照功能,那么此時進行的內(nèi)存交換會變的非常危險(可能會丟失數(shù)據(jù))。倘若在這個時候?qū)嵗嫌写罅款l繁的更新操作,問題會變得更加嚴(yán)重。

    通過減少Redis的內(nèi)存占用率,來避免這樣的問題,或者使用下面的技巧來避免內(nèi)存交換發(fā)生:

    「1. ?假如緩存數(shù)據(jù)小于4GB,就使用32位的Redis實例。」

    因為32位實例上的指針大小只有64位的一半,它的內(nèi)存空間占用空間會更少些。這有一個壞處就是,假設(shè)物理內(nèi)存超過4GB,那么32位實例能使用的內(nèi)存仍然會被限制在4GB以下。

    要是實例同時也共享給其他一些應(yīng)用使用的話,那可能需要更高效的64位Redis實例,這種情況下切換到32位是不可取的。不管使用哪種方式,Redis的dump文件在32位和64位之間是互相兼容的, 因此倘若有減少占用內(nèi)存空間的需求,可以嘗試先使用32位,后面再切換到64位上。

    「2. ?盡可能的使用Hash數(shù)據(jù)結(jié)構(gòu)。」

    因為Redis在儲存小于100個字段的Hash結(jié)構(gòu)上,其存儲效率是非常高的。所以在不需要集合(set)操作或list的push/pop操作的時候,盡可能的使用Hash結(jié)構(gòu)。比如,在一個web應(yīng)用程序中,需要存儲一個對象表示用戶信息,使用單個key表示一個用戶,其每個屬性存儲在Hash的字段里,這樣要比給每個屬性單獨設(shè)置一個key-value要高效的多。

    通常情況下倘若有數(shù)據(jù)使用string結(jié)構(gòu),用多個key存儲時,那么應(yīng)該轉(zhuǎn)換成單key多字段的Hash結(jié)構(gòu)。如上述例子中介紹的Hash結(jié)構(gòu)應(yīng)包含,單個對象的屬性或者單個用戶各種各樣的資料。Hash結(jié)構(gòu)的操作命令是HSET(key, fields, value)和HGET(key, field),使用它可以存儲或從Hash中取出指定的字段。

    「3. ?設(shè)置key的過期時間。」

    一個減少內(nèi)存使用率的簡單方法就是,每當(dāng)存儲對象時確保設(shè)置key的過期時間。倘若key在明確的時間周期內(nèi)使用或者舊key不大可能被使用時,就可以用Redis過期時間命令(expire,expireat, pexpire, pexpireat)去設(shè)置過期時間,這樣Redis會在key過期時自動刪除key。

    假如你知道每秒鐘有多少個新key-value被創(chuàng)建,那可以調(diào)整key的存活時間,并指定閥值去限制Redis使用的最大內(nèi)存。

    「4. ?回收key。」

    在Redis配置文件中(一般叫Redis.conf),通過設(shè)置“maxmemory”屬性的值可以限制Redis最大使用的內(nèi)存,修改后重啟實例生效。

    也可以使用客戶端命令config set maxmemory 去修改值,這個命令是立即生效的,但會在重啟后會失效,需要使用config rewrite命令去刷新配置文件。

    若是啟用了Redis快照功能,應(yīng)該設(shè)置“maxmemory”值為系統(tǒng)可使用內(nèi)存的45%,因為快照時需要一倍的內(nèi)存來復(fù)制整個數(shù)據(jù)集,也就是說如果當(dāng)前已使用45%,在快照期間會變成95%(45%+45%+5%),其中5%是預(yù)留給其他的開銷。如果沒開啟快照功能,maxmemory最高能設(shè)置為系統(tǒng)可用內(nèi)存的95%。

    當(dāng)內(nèi)存使用達到設(shè)置的最大閥值時,需要選擇一種key的回收策略,可在Redis.conf配置文件中修改“maxmemory-policy”屬性值。若是Redis數(shù)據(jù)集中的key都設(shè)置了過期時間,那么“volatile-ttl”策略是比較好的選擇。

    但如果key在達到最大內(nèi)存限制時沒能夠迅速過期,或者根本沒有設(shè)置過期時間。那么設(shè)置為“allkeys-lru”值比較合適,它允許Redis從整個數(shù)據(jù)集中挑選最近最少使用的key進行刪除(LRU淘汰算法)。Redis還提供了一些其他淘汰策略,如下:

    • volatile-lru:使用LRU算法從已設(shè)置過期時間的數(shù)據(jù)集合中淘汰數(shù)據(jù)。

    • volatile-ttl:從已設(shè)置過期時間的數(shù)據(jù)集合中挑選即將過期的數(shù)據(jù)淘汰。

    • volatile-random:從已設(shè)置過期時間的數(shù)據(jù)集合中隨機挑選數(shù)據(jù)淘汰。

    • allkeys-lru:使用LRU算法從所有數(shù)據(jù)集合中淘汰數(shù)據(jù)。

    • allkeys-random:從數(shù)據(jù)集合中任意選擇數(shù)據(jù)淘汰

    • no-enviction:禁止淘汰數(shù)據(jù)。

    通過設(shè)置maxmemory為系統(tǒng)可用內(nèi)存的45%或95%(取決于持久化策略)和設(shè)置“maxmemory-policy”為“volatile-ttl”或“allkeys-lru”(取決于過期設(shè)置),可以比較準(zhǔn)確的限制Redis最大內(nèi)存使用率,在絕大多數(shù)場景下使用這2種方式可確保Redis不會進行內(nèi)存交換。倘若你擔(dān)心由于限制了內(nèi)存使用率導(dǎo)致丟失數(shù)據(jù)的話,可以設(shè)置noneviction值禁止淘汰數(shù)據(jù)。

    命令處理數(shù)total_commands_processed

    在info信息里的total_commands_processed字段顯示了Redis服務(wù)處理命令的總數(shù),其命令都是從一個或多個Redis客戶端請求過來的。Redis每時每刻都在處理從客戶端請求過來的命令,它可以是Redis提供的140種命令的任意一個。

    total_commands_processed字段的值是遞增的,比如Redis服務(wù)分別處理了client_x請求過來的2個命令和client_y請求過來的3個命令,那么命令處理總數(shù)(total_commands_processed)就會加上5。

    分析命令處理總數(shù),診斷響應(yīng)延遲。

    在Redis實例中,跟蹤命令處理總數(shù)是解決響應(yīng)延遲問題最關(guān)鍵的部分,因為Redis是個單線程模型,客戶端過來的命令是按照順序執(zhí)行的。比較常見的延遲是帶寬,通過千兆網(wǎng)卡的延遲大約有200μs。倘若明顯看到命令的響應(yīng)時間變慢,延遲高于200μs,那可能是Redis命令隊列里等待處理的命令數(shù)量比較多。

    如上所述,延遲時間增加導(dǎo)致響應(yīng)時間變慢可能是由于一個或多個慢命令引起的,這時可以看到每秒命令處理數(shù)在明顯下降,甚至于后面的命令完全被阻塞,導(dǎo)致Redis性能降低。要分析解決這個性能問題,需要跟蹤命令處理數(shù)的數(shù)量和延遲時間。

    比如可以寫個腳本,定期記錄total_commands_processed的值。當(dāng)客戶端明顯發(fā)現(xiàn)響應(yīng)時間過慢時,可以通過記錄的total_commands_processed歷史數(shù)據(jù)值來判斷命理處理總數(shù)是上升趨勢還是下降趨勢,以便排查問題。

    使用命令處理總數(shù)解決延遲時間增加。

    通過與記錄的歷史數(shù)據(jù)比較得知,命令處理總數(shù)確實是處于上升或下降狀態(tài),那么可能是有2個原因引起的:

    • 命令隊列里的命令數(shù)量過多,后面命令一直在等待中。

    • 幾個慢命令阻塞Redis。

    下面有三個辦法可以解決,因上面2條原因引起的響應(yīng)延遲問題。

    「1. ?使用多參數(shù)命令:」

    若是客戶端在很短的時間內(nèi)發(fā)送大量的命令過來,會發(fā)現(xiàn)響應(yīng)時間明顯變慢,這由于后面命令一直在等待隊列中前面大量命令執(zhí)行完畢。有個方法可以改善延遲問題,就是通過單命令多參數(shù)的形式取代多命令單參數(shù)的形式。

    舉例來說,循環(huán)使用LSET命令去添加1000個元素到list結(jié)構(gòu)中,是性能比較差的一種方式,更好的做法是在客戶端創(chuàng)建一個1000元素的列表,用單個命令LPUSH或RPUSH,通過多參數(shù)構(gòu)造形式一次性把1000個元素發(fā)送的Redis服務(wù)上。下面的表格是Redis的一些操作命令,有單個參數(shù)命令和支持多個參數(shù)的命令,通過這些命令可盡量減少使用多命令的次數(shù)。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    「2. ?管道命令:」

    另一個減少多命令的方法是使用管道(pipeline),把幾個命令合并一起執(zhí)行,從而減少因網(wǎng)絡(luò)開銷引起的延遲問題。因為10個命令單獨發(fā)送到服務(wù)端會引起10次網(wǎng)絡(luò)延遲開銷,使用管道會一次性把執(zhí)行結(jié)果返回,僅需要一次網(wǎng)絡(luò)延遲開銷。Redis本身支持管道命令,大多數(shù)客戶端也支持,倘若當(dāng)前實例延遲很明顯,那么使用管道去降低延遲是非常有效的。

    「3. ?避免操作大集合的慢命令:」

    如果命令處理頻率過低導(dǎo)致延遲時間增加,這可能是因為使用了高時間復(fù)雜度的命令操作導(dǎo)致,這意味著每個命令從集合中獲取數(shù)據(jù)的時間增大。

    所以減少使用高時間復(fù)雜的命令,能顯著的提高的Redis的性能。下面的表格是高時間復(fù)雜度命令的列表,其詳細(xì)描述了命令的屬性,有這助于高效合理的、最優(yōu)化的使用這些命令(如果不得不使用的話),以提高Redis性能。

    延遲時間

    Redis的延遲數(shù)據(jù)是無法從info信息中獲取的。倘若想要查看延遲時間,可以用 Redis-cli工具加--latency參數(shù)運行,如:

    Redis-cli?--latency?-h?127.0.0.1?-p?6379

    其host和port是Redis實例的ip及端口。由于當(dāng)前服務(wù)器不同的運行情況,延遲時間可能有所誤差,通常1G網(wǎng)卡的延遲時間是200μs。

    以毫秒為單位測量Redis的響應(yīng)延遲時間,樓主本機的延遲是300μs:

    跟蹤Redis延遲性能

    Redis之所以這么流行的主要原因之一就是低延遲特性帶來的高性能,所以說解決延遲問題是提高Redis性能最直接的辦法。拿1G帶寬來說,若是延遲時間遠(yuǎn)高于200μs,那明顯是出現(xiàn)了性能問題。

    雖然在服務(wù)器上會有一些慢的IO操作,但Redis是單核接受所有客戶端的請求,所有請求是按良好的順序排隊執(zhí)行。因此若是一個客戶端發(fā)過來的命令是個慢操作,那么其他所有請求必須等待它完成后才能繼續(xù)執(zhí)行。

    性能排查:系統(tǒng)的性能瓶頸,排查該從哪些方面入手,如何定位?

    使用延遲命令提高性能

    一旦確定延遲時間是個性能問題后,這里有幾個辦法可以用來分析解決性能問題。

    「1. 使用slowlog查出引發(fā)延遲的慢命令:」

    Redis中的slowlog命令可以讓我們快速定位到那些超出指定執(zhí)行時間的慢命令,默認(rèn)情況下命令若是執(zhí)行時間超過10ms就會被記錄到日志。slowlog只會記錄其命令執(zhí)行的時間,不包含io往返操作,也不記錄單由網(wǎng)絡(luò)延遲引起的響應(yīng)慢。

    通常1gb帶寬的網(wǎng)絡(luò)延遲,預(yù)期在200μs左右,倘若一個命令僅執(zhí)行時間就超過10ms,那比網(wǎng)絡(luò)延遲慢了近50倍。想要查看所有執(zhí)行時間比較慢的命令,可以通過使用Redis-cli工具,輸入slowlog get命令查看,返回結(jié)果的第三個字段以微妙位單位顯示命令的執(zhí)行時間。

    假如只需要查看最后10個慢命令,輸入slowlog get 10即可。關(guān)于怎么定位到是由慢命令引起的延遲問題,可查看total_commands_processed介紹章節(jié)。

    圖中字段分別意思是:

    • 1=日志的唯一標(biāo)識符

    • 2=被記錄命令的執(zhí)行時間點,以 UNIX 時間戳格式表示

    • 3=查詢執(zhí)行時間,以微秒為單位。例子中命令使用54毫秒。

    • 4= 執(zhí)行的命令,以數(shù)組的形式排列。完整命令是config get *。

    倘若你想自定義慢命令的標(biāo)準(zhǔn),可以調(diào)整觸發(fā)日志記錄慢命令的閥值。若是很少或沒有命令超過10ms,想降低記錄的閥值,比如5毫秒,可在Redis-cli工具中輸入下面的命令配置:

    config?set?slowlog-log-slower-than?5000

    也可以在Redis.config配置文件中設(shè)置,以微妙位單位。

    「2.監(jiān)控客戶端的連接:」

    因為Redis是單線程模型(只能使用單核),來處理所有客戶端的請求, 但由于客戶端連接數(shù)的增長,處理請求的線程資源開始降低分配給單個客戶端連接的處理時間,這時每個客戶端需要花費更多的時間去等待Redis共享服務(wù)的響應(yīng)。

    這種情況下監(jiān)控客戶端連接數(shù)是非常重要的,因為客戶端創(chuàng)建連接數(shù)的數(shù)量可能超出預(yù)期的數(shù)量,也可能是客戶端端沒有有效的釋放連接。在Redis-cli工具中輸入info clients可以查看到當(dāng)前實例的所有客戶端連接信息。

    如下圖,第一個字段(connected_clients)顯示當(dāng)前實例客戶端連接的總數(shù):

    Redis默認(rèn)允許客戶端連接的最大數(shù)量是10000。若是看到連接數(shù)超過5000以上,那可能會影響Redis的性能。倘若一些或大部分客戶端發(fā)送大量的命令過來,這個數(shù)字會低的多。

    「3.限制客戶端連接數(shù):」

    自Redis2.6以后,允許使用者在配置文件(Redis.conf)maxclients屬性上修改客戶端連接的最大數(shù),也可以通過在Redis-cli工具上輸入config set maxclients 去設(shè)置最大連接數(shù)。

    根據(jù)連接數(shù)負(fù)載的情況,這個數(shù)字應(yīng)該設(shè)置為預(yù)期連接數(shù)峰值的110%到150之間,若是連接數(shù)超出這個數(shù)字后,Redis會拒絕并立刻關(guān)閉新來的連接。通過設(shè)置最大連接數(shù)來限制非預(yù)期數(shù)量的連接數(shù)增長,是非常重要的。

    另外,新連接嘗試失敗會返回一個錯誤消息,這可以讓客戶端知道,Redis此時有非預(yù)期數(shù)量的連接數(shù),以便執(zhí)行對應(yīng)的處理措施。上述二種做法對控制連接數(shù)的數(shù)量和持續(xù)保持Redis的性能最優(yōu)是非常重要的,

    「4.加強內(nèi)存管理:」

    較少的內(nèi)存會引起Redis延遲時間增加。如果Redis占用內(nèi)存超出系統(tǒng)可用內(nèi)存,操作系統(tǒng)會把Redis進程的一部分?jǐn)?shù)據(jù),從物理內(nèi)存交換到硬盤上,內(nèi)存交換會明顯的增加延遲時間。關(guān)于怎么監(jiān)控和減少內(nèi)存使用,可查看used_memory介紹章節(jié)。

    「5. 性能數(shù)據(jù)指標(biāo):」

    分析解決Redis性能問題,通常需要把延遲時間的數(shù)據(jù)變化與其他性能指標(biāo)的變化相關(guān)聯(lián)起來。命令處理總數(shù)下降的發(fā)生可能是由慢命令阻塞了整個系統(tǒng),但如果命令處理總數(shù)的增加,同時內(nèi)存使用率也增加,那么就可能是由于內(nèi)存交換引起的性能問題。

    對于這種性能指標(biāo)相關(guān)聯(lián)的分析,需要從歷史數(shù)據(jù)上來觀察到數(shù)據(jù)指標(biāo)的重要變化,此外還可以觀察到單個性能指標(biāo)相關(guān)聯(lián)的所有其他性能指標(biāo)信息。這些數(shù)據(jù)可以在Redis上收集,周期性的調(diào)用內(nèi)容為Redis info的腳本,然后分析輸出的信息,記錄到日志文件中。當(dāng)延遲發(fā)生變化時,用日志文件配合其他數(shù)據(jù)指標(biāo),把數(shù)據(jù)串聯(lián)起來排查定位問題。

    內(nèi)存碎片率

    info信息中的mem_fragmentation_ratio給出了內(nèi)存碎片率的數(shù)據(jù)指標(biāo),它是由操系統(tǒng)分配的內(nèi)存除以Redis分配的內(nèi)存得出:

    used_memory和used_memory_rss數(shù)字都包含的內(nèi)存分配有:

    • 用戶定義的數(shù)據(jù):內(nèi)存被用來存儲key-value值。

    • 內(nèi)部開銷:存儲內(nèi)部Redis信息用來表示不同的數(shù)據(jù)類型。

    used_memory_rss的rss是Resident Set Size的縮寫,表示該進程所占物理內(nèi)存的大小,是操作系統(tǒng)分配給Redis實例的內(nèi)存大小。除了用戶定義的數(shù)據(jù)和內(nèi)部開銷以外,used_memory_rss指標(biāo)還包含了內(nèi)存碎片的開銷,內(nèi)存碎片是由操作系統(tǒng)低效的分配/回收物理內(nèi)存導(dǎo)致的。

    操作系統(tǒng)負(fù)責(zé)分配物理內(nèi)存給各個應(yīng)用進程,Redis使用的內(nèi)存與物理內(nèi)存的映射是由操作系統(tǒng)上虛擬內(nèi)存管理分配器完成的。

    舉個例子來說,Redis需要分配連續(xù)內(nèi)存塊來存儲1G的數(shù)據(jù)集,這樣的話更有利,但可能物理內(nèi)存上沒有超過1G的連續(xù)內(nèi)存塊,那操作系統(tǒng)就不得不使用多個不連續(xù)的小內(nèi)存塊來分配并存儲這1G數(shù)據(jù),也就導(dǎo)致內(nèi)存碎片的產(chǎn)生。

    內(nèi)存分配器另一個復(fù)雜的層面是,它經(jīng)常會預(yù)先分配一些內(nèi)存塊給引用,這樣做會使加快應(yīng)用程序的運行。

    Redis實戰(zhàn)參考:使用 Redis 實現(xiàn)一個輕量級的搜索引擎

    理解資源性能

    跟蹤內(nèi)存碎片率對理解Redis實例的資源性能是非常重要的。內(nèi)存碎片率稍大于1是合理的,這個值表示內(nèi)存碎片率比較低,也說明redis沒有發(fā)生內(nèi)存交換。但如果內(nèi)存碎片率超過1.5,那就說明Redis消耗了實際需要物理內(nèi)存的150%,其中50%是內(nèi)存碎片率。

    若是內(nèi)存碎片率低于1的話,說明Redis內(nèi)存分配超出了物理內(nèi)存,操作系統(tǒng)正在進行內(nèi)存交換。內(nèi)存交換會引起非常明顯的響應(yīng)延遲,可查看used_memory介紹章節(jié)。

    上圖中的0.99即99%。

    用內(nèi)存碎片率預(yù)測性能問題

    倘若內(nèi)存碎片率超過了1.5,那可能是操作系統(tǒng)或Redis實例中內(nèi)存管理變差的表現(xiàn)。下面有3種方法解決內(nèi)存管理變差的問題,并提高Redis性能:

    「1. 重啟Redis服務(wù)器:」

    如果內(nèi)存碎片率超過1.5,重啟Redis服務(wù)器可以讓額外產(chǎn)生的內(nèi)存碎片失效并重新作為新內(nèi)存來使用,使操作系統(tǒng)恢復(fù)高效的內(nèi)存管理。額外碎片的產(chǎn)生是由于Redis釋放了內(nèi)存塊,但內(nèi)存分配器并沒有返回內(nèi)存給操作系統(tǒng),這個內(nèi)存分配器是在編譯時指定的,可以是libc、jemalloc或者tcmalloc。

    通過比較used_memory_peak, used_memory_rss和used_memory_metrics的數(shù)據(jù)指標(biāo)值可以檢查額外內(nèi)存碎片的占用。從名字上可以看出,used_memory_peak是過去Redis內(nèi)存使用的峰值,而不是當(dāng)前使用內(nèi)存的值。

    如果used_memory_peak和used_memory_rss的值大致上相等,而且二者明顯超過了used_memory值,這說明額外的內(nèi)存碎片正在產(chǎn)生。

    在Redis-cli工具上輸入info memory可以查看上面三個指標(biāo)的信息:

    在重啟服務(wù)器之前,需要在Redis-cli工具上輸入shutdown save命令,意思是強制讓Redis數(shù)據(jù)庫執(zhí)行保存操作并關(guān)閉Redis服務(wù),這樣做能保證在執(zhí)行Redis關(guān)閉時不丟失任何數(shù)據(jù)。在重啟后,Redis會從硬盤上加載持久化的文件,以確保數(shù)據(jù)集持續(xù)可用。

    「2.限制內(nèi)存交換:」

    如果內(nèi)存碎片率低于1,Redis實例可能會把部分?jǐn)?shù)據(jù)交換到硬盤上。內(nèi)存交換會嚴(yán)重影響Redis的性能,所以應(yīng)該增加可用物理內(nèi)存或減少實Redis內(nèi)存占用。可查看used_memory章節(jié)的優(yōu)化建議。

    「3.修改內(nèi)存分配器:」

    Redis支持glibc’s malloc、jemalloc11、tcmalloc幾種不同的內(nèi)存分配器,每個分配器在內(nèi)存分配和碎片上都有不同的實現(xiàn)。

    不建議普通管理員修改Redis默認(rèn)內(nèi)存分配器,因為這需要完全理解這幾種內(nèi)存分配器的差異,也要重新編譯Redis。這個方法更多的是讓其了解Redis內(nèi)存分配器所做的工作,當(dāng)然也是改善內(nèi)存碎片問題的一種辦法。

    回收key

    info信息中的evicted_keys字段顯示的是,因為maxmemory限制導(dǎo)致key被回收刪除的數(shù)量。關(guān)于maxmemory的介紹見前面章節(jié),回收key的情況只會發(fā)生在設(shè)置maxmemory值后,不設(shè)置會發(fā)生內(nèi)存交換。當(dāng)Redis由于內(nèi)存壓力需要回收一個key時,Redis首先考慮的不是回收最舊的數(shù)據(jù),而是在最近最少使用的key或即將過期的key中隨機選擇一個key,從數(shù)據(jù)集中刪除。

    這可以在配置文件中設(shè)置maxmemory-policy值為“volatile-lru”或“volatile-ttl”,來確定Redis是使用lru策略還是過期時間策略。倘若所有的key都有明確的過期時間,那過期時間回收策略是比較合適的。若是沒有設(shè)置key的過期時間或者說沒有足夠的過期key,那設(shè)置lru策略是比較合理的,這可以回收key而不用考慮其過期狀態(tài)。

    根據(jù)key回收定位性能問題

    跟蹤key回收是非常重要的,因為通過回收key,可以保證合理分配Redis有限的內(nèi)存資源。如果evicted_keys值經(jīng)常超過0,那應(yīng)該會看到客戶端命令響應(yīng)延遲時間增加,因為Redis不但要處理客戶端過來的命令請求,還要頻繁的回收滿足條件的key。

    需要注意的是,回收key對性能的影響遠(yuǎn)沒有內(nèi)存交換嚴(yán)重,若是在強制內(nèi)存交換和設(shè)置回收策略做一個選擇的話,選擇設(shè)置回收策略是比較合理的,因為把內(nèi)存數(shù)據(jù)交換到硬盤上對性能影響非常大(見前面章節(jié))。

    減少回收key以提升性能

    減少回收key的數(shù)量是提升Redis性能的直接辦法,下面有2種方法可以減少回收key的數(shù)量:

    「1.增加內(nèi)存限制:」

    倘若開啟快照功能,maxmemory需要設(shè)置成物理內(nèi)存的45%,這幾乎不會有引發(fā)內(nèi)存交換的危險。若是沒有開啟快照功能,設(shè)置系統(tǒng)可用內(nèi)存的95%是比較合理的,具體參考前面的快照和maxmemory限制章節(jié)。如果maxmemory的設(shè)置是低于45%或95%(視持久化策略),通過增加maxmemory的值能讓Redis在內(nèi)存中存儲更多的key,這能顯著減少回收key的數(shù)量。

    若是maxmemory已經(jīng)設(shè)置為推薦的閥值后,增加maxmemory限制不但無法提升性能,反而會引發(fā)內(nèi)存交換,導(dǎo)致延遲增加、性能降低。maxmemory的值可以在Redis-cli工具上輸入config set maxmemory命令來設(shè)置。

    需要注意的是,這個設(shè)置是立即生效的,但重啟后丟失,需要永久化保存的話,再輸入config rewrite命令會把內(nèi)存中的新配置刷新到配置文件中。

    「2.對實例進行分片:」

    分片是把數(shù)據(jù)分割成合適大小,分別存放在不同的Redis實例上,每一個實例都包含整個數(shù)據(jù)集的一部分。通過分片可以把很多服務(wù)器聯(lián)合起來存儲數(shù)據(jù),相當(dāng)于增加總的物理內(nèi)存,使其在沒有內(nèi)存交換和回收key的策略下也能存儲更多的key。

    假如有一個非常大的數(shù)據(jù)集,maxmemory已經(jīng)設(shè)置,實際內(nèi)存使用也已經(jīng)超過了推薦設(shè)置的閥值,那通過數(shù)據(jù)分片能明顯減少key的回收,從而提高Redis的性能。分片的實現(xiàn)有很多種方法,下面是Redis實現(xiàn)分片的幾種常見方式:

    a. Hash分片:一個比較簡單的方法實現(xiàn),通過Hash函數(shù)計算出key的Hash值,然后值所在范圍對應(yīng)特定的Redis實例。

    b. 代理分片:客戶端把請求發(fā)送到代理上,代理通過分片配置表選擇對應(yīng)的Redis實例。如Twitter的Twemproxy,豌豆莢的codis。

    c. 一致性Hash分片:參見前面博客

    http://www.cnblogs.com/mushroom/p/4472369.html

    d. 虛擬桶分片:

    http://www.cnblogs.com/mushroom/p/4542772.html

    總結(jié)

    對于開發(fā)者來說,Redis是個速度非常快的key-value內(nèi)存數(shù)據(jù)庫,并提供了方便的API接口。為了最好最優(yōu)的使用Redis,需要理解哪些因素能影響到Redis性能,哪些數(shù)據(jù)指標(biāo)能幫助我們避免性能陷阱。通過本篇,能理解Redis中的重要性能指標(biāo),怎么查看,更重要的是怎么利用這些數(shù)據(jù)排查解決Redis性能問題。

    本篇博客主要翻譯了一電子書的中間15頁,電子書地址是

    https://www.datadoghq.com/wp-content/uploads/2013/09/Understanding-the-Top-5-Redis-Performance-Metrics.pdf。

    樓主翻譯水平有限,如有錯誤之處請多多包涵,也歡迎指出交流,希望本文對大家有所幫助。

    推薦文章
    • 今天給大家推薦 6 個 Spring Boot 項目,拿來就可以賺錢!

    • 交公糧了:我經(jīng)常逛的技術(shù)網(wǎng)站

    • 圈子哥推薦一款基于 Spring Boot 開發(fā) OA 開源產(chǎn)品,學(xué)習(xí)/搞外快都是不二選擇!

    • 硬剛一周,3W字總結(jié),一年的經(jīng)驗告訴你如何準(zhǔn)備校招!

    原創(chuàng)電子書歷時整整一年總結(jié)的?Java 面試 + Java 后端技術(shù)學(xué)習(xí)指南,這是本人這幾年及校招的總結(jié),各種高頻面試題已經(jīng)全部進行總結(jié),按照章節(jié)復(fù)習(xí)即可,已經(jīng)拿到了大廠offer。 原創(chuàng)思維導(dǎo)圖掃碼或者微信搜?程序員的技術(shù)圈子?回復(fù)?面試?領(lǐng)取原創(chuàng)電子書和思維導(dǎo)圖。

    總結(jié)

    以上是生活随笔為你收集整理的Redis性能问题排查解决手册(值得收藏)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    在线观看日韩一区 | 99精品视频99| 五月天激情综合网 | 亚洲一区二区三区四区在线视频 | 在线免费观看黄 | 国产免费专区 | 高清av网站 | 在线免费观看欧美日韩 | 手机在线中文字幕 | 黄色www在线观看 | 毛片www | 99久久精品免费 | 欧美xxxx性xxxxx高清 | 久久久亚洲国产精品麻豆综合天堂 | 久久久精品国产一区二区三区 | 深爱婷婷久久综合 | 亚洲午夜电影网 | 国产精华国产精品 | 91精选在线观看 | 久草视频免费在线播放 | 久久精品一区八戒影视 | 色综合a | 精品国模一区二区三区 | 免费看片网址 | 成人免费一区二区三区在线观看 | www.成人精品| 美女视频久久久 | 精品国内自产拍在线观看视频 | 欧美日韩不卡一区二区 | 欧美a级一区二区 | 亚洲久草网 | 国产一区二区三区免费视频 | 在线观看国产日韩欧美 | 美女黄频免费 | 成人小视频在线免费观看 | 国产精品欧美精品 | 中文字幕资源在线 | 999久久精品| 日韩亚洲在线视频 | 免费看黄电影 | 成人午夜剧场在线观看 | 久草综合在线观看 | 亚洲精品在线观看免费 | 在线99| 波多野结衣视频一区二区三区 | 久久成人人人人精品欧 | 国产尤物在线观看 | 99久久久久国产精品免费 | 久久综合九色99 | 国产精品免费一区二区三区在线观看 | 国产亚洲欧美精品久久久久久 | 成人在线观看日韩 | 超碰人人干人人 | 国产精品电影一区 | 久草久草在线 | 久草av在线播放 | 日韩精品一区二区久久 | 国产成人精品三级 | 久久久久网址 | 欧美另类人妖 | 国产免费观看高清完整版 | 黄网站免费看 | 国内精品久久久久影院一蜜桃 | 日韩免费视频 | 99热最新地址 | 成人在线免费观看视视频 | 天天鲁天天干天天射 | 日本3级在线观看 | 久久www免费视频 | 天天天在线综合网 | 在线一区av | av在线免费播放 | 嫩草伊人久久精品少妇av | 久久久黄色免费网站 | 午夜精品久久久久久久久久久久 | 91九色成人蝌蚪首页 | 亚洲精品天天 | 欧美日韩精品在线观看 | 国产1区在线 | 在线视频a | 成人一级片在线观看 | 天天射综合 | 天天操天天爱天天干 | 午夜性生活片 | 精品欧美一区二区在线观看 | 久久精品久久99精品久久 | 欧美日韩另类视频 | 日本精品午夜 | 国产91大片 | 国产精品麻豆免费版 | 免费国产在线视频 | 免费看一级片 | av电影在线观看 | www.综合网.com| 一区国产精品 | 亚洲成人精品国产 | 精品影院一区二区久久久 | 国产123av | 免费在线观看午夜视频 | 精品亚洲成人 | 国产精品美女999 | 超碰97人人干 | 深爱五月激情五月 | 成人午夜电影在线播放 | 日本资源中文字幕在线 | a黄色 | 久久精视频 | 天天干婷婷 | 美女黄频视频大全 | 最近中文字幕完整视频高清1 | 中文字幕免费 | 久久成人免费电影 | 四虎影院在线观看av | 国产成人久久 | 在线观看av免费 | 国产精品视频永久免费播放 | 国产精品美女久久久久久网站 | 一区二区亚洲精品 | 精品国产一二三四区 | 免费在线观看av的网站 | 97视频免费观看 | 天天操天天操天天操天天操天天操天天操 | 国产精品一区二区免费在线观看 | 国产男女爽爽爽免费视频 | 丁香激情网 | 午夜av不卡 | 久久亚洲成人网 | 在线电影91| 99精品久久99久久久久 | 成人av电影免费观看 | 夜夜爽天天爽 | 国产精品区二区三区日本 | 一区二区三区精品在线 | 中文一区二区三区在线观看 | 国产资源在线播放 | 久久精品视 | 久久国产精品成人免费浪潮 | 久久人人爽爽 | 久草在线官网 | 亚洲欧洲精品一区二区 | 最近的中文字幕大全免费版 | 久久免费国产视频 | 狠狠狠综合 | 中文字幕 成人 | 97精品国产91久久久久久久 | 欧美一区二区精品在线 | 丝袜制服综合网 | 久久日韩精品 | 色资源二区在线视频 | 欧美国产视频在线 | 久久这里有 | 伊人国产女| 亚洲三级黄色 | 91久久精品日日躁夜夜躁国产 | 激情五月婷婷综合网 | 亚洲国产wwwccc36天堂 | 欧美日韩综合在线观看 | 毛片a级片| 又长又大又黑又粗欧美 | 91精品国产高清自在线观看 | 国产99爱 | 精品一二三区视频 | 亚洲区另类春色综合小说 | 久久视精品 | 亚洲激情网站免费观看 | 91麻豆精品国产91久久久久久 | 日韩高清黄色 | 免费黄a大片 | 国内精品亚洲 | 999久久a精品合区久久久 | 久久久www免费电影网 | 久草在线视频精品 | 欧美色图狠狠干 | 日日干视频 | 一本一道久久a久久综合蜜桃 | 在线亚洲小视频 | 国产精品6| 91精品啪 | 亚洲欧美日韩精品一区二区 | 97超碰超碰 | 欧美日韩在线播放一区 | 国产一区二区三区在线免费观看 | 色偷偷人人澡久久超碰69 | 黄色片免费在线 | 国产在线日本 | av福利电影| 久久高视频 | 欧美成人亚洲成人 | 91精品国产综合久久久久久久 | 国产精品九九久久久久久久 | 亚洲一级片 | 2020天天干天天操 | 九色精品在线 | 丝袜+亚洲+另类+欧美+变态 | 中文字幕在线专区 | av大全在线看 | 色久av| 久久黄色小说视频 | 一区中文字幕电影 | 三级av片| 成人av在线看 | 欧美另类xxx | 日韩av中文在线观看 | 久久黄色小说视频 | 99视频国产在线 | 久久国产精品99久久久久久丝袜 | 久久久久成人精品亚洲国产 | 91视频亚洲 | 国产精品18久久久久久久久久久久 | 婷婷色在线观看 | 国产剧情一区 | 精品国产视频在线观看 | 99精品一区 | 美女黄久久 | 日产乱码一二三区别免费 | 五月开心六月婷婷 | 中文在线字幕观看电影 | 日韩精品一区二区在线观看视频 | 久久婷亚洲五月一区天天躁 | 国产精品入口久久 | 亚洲综合成人婷婷小说 | 亚洲最新在线视频 | 国产精品视频地址 | 国产精品免费一区二区三区在线观看 | 免费看在线看www777 | 丁香婷婷综合激情 | 国产精品久久久av久久久 | 嫩草av影院 | 久久成人综合视频 | 福利二区视频 | 天天干天天操天天爱 | 在线观看免费av网 | 国产日产精品一区二区三区四区的观看方式 | 国产一级免费av | 五月天天色 | 天天干天天拍天天操天天拍 | 天天综合久久综合 | 中文字幕在线播放日韩 | 中文字幕电影一区 | 四虎海外影库www4hu | 91亚洲影院 | 69国产成人综合久久精品欧美 | 波多野结衣日韩 | 在线观看播放av | 国产精品美女www爽爽爽视频 | 成人在线观看免费视频 | 中文国产字幕 | 国产精品女 | 久久久久免费电影 | 国产区精品 | 亚洲日本在线一区 | 色多多视频在线观看 | 久久99久久久久 | 99久久精品免费 | 一区二区三区免费在线播放 | 国产一级片直播 | 久久电影中文字幕视频 | 爱情影院aqdy鲁丝片二区 | 视频国产精品 | 久久在线视频在线 | 黄色小说免费在线观看 | 欧美一区二区三区激情视频 | av电影免费在线播放 | 欧美另类交在线观看 | 日韩在线中文字幕视频 | 国产成人黄色片 | 欧美一级裸体视频 | 国产69精品久久久久9999apgf | 亚洲欧洲国产精品 | 色天天中文| 日韩视频1区 | 99久久夜色精品国产亚洲 | 在线视频 精品 | 日韩免费区| 日韩网站一区二区 | 国产精品久久久久一区二区国产 | 2022久久国产露脸精品国产 | 国产理伦在线 | 国产精品毛片久久久久久 | 国内精品久久久久久中文字幕 | 日韩视频中文字幕在线观看 | 国产精品美女久久久 | 国产精品丝袜在线 | 久草在线最新免费 | www久久久久| 超碰免费在线公开 | 91男人影院 | 国产黄色免费在线观看 | 亚洲精品国产自产拍在线观看 | 亚洲成人免费观看 | 婷婷色狠狠| 国产精品丝袜久久久久久久不卡 | 在线免费观看麻豆视频 | 黄色免费大全 | 超碰97在线人人 | 国产成人精品久久二区二区 | 四虎在线视频 | av网站有哪些| 亚洲精品在线观看的 | 免费在线观看一级片 | 免费成人av网站 | 日韩欧美一区二区三区视频 | 五月婷婷在线视频 | 99久久一区 | 日韩在线视 | 国产福利精品在线观看 | 国模视频一区二区三区 | 日本丰满少妇免费一区 | 国产精品午夜久久久久久99热 | av电影中文字幕 | 二区精品视频 | 日韩av免费在线电影 | zzijzzij日本成熟少妇 | 成人黄色大片在线免费观看 | 丁香六月在线观看 | 中文字幕资源站 | 91九色蝌蚪国产 | 久久国产精品99久久久久久进口 | 91成人小视频 | 亚洲国产成人精品在线观看 | 亚洲免费精品视频 | 久久久久久久久网站 | 久久久午夜精品福利内容 | 中文国产在线观看 | 亚洲精品国产拍在线 | 国产麻豆视频 | 久久蜜臀一区二区三区av | 日韩精品国产一区 | 日本精品久久久久中文字幕5 | 国产高清免费视频 | 韩国精品一区二区三区六区色诱 | 在线观看视频在线观看 | 日韩免费不卡av | 国产一区二区在线观看免费 | 91高清在线 | 97视频网址 | 国产高清免费视频 | 人人爽人人爱 | 国产一区二区三区四区大秀 | 久久久久久久久久伊人 | 亚洲综合激情网 | 91视频午夜 | 免费又黄又爽 | 欧美成人xxxxxxxx| 天堂在线视频免费观看 | 亚洲美女精品区人人人人 | 综合色伊人 | 午夜精品一区二区三区免费 | 国产最新福利 | 狠狠干狠狠操 | 中文字幕色婷婷在线视频 | 精品国产一区二区三区在线观看 | 黄色av影视| 国产免费资源 | 麻豆国产在线播放 | 91视视频在线直接观看在线看网页在线看 | 欧美天天射 | 久久国产精品免费观看 | 一级片视频免费观看 | 黄色小网站在线观看 | 中文一区在线观看 | 午夜精品福利一区二区三区蜜桃 | 亚洲涩涩涩 | 九九热只有这里有精品 | 久久精品国产精品亚洲精品 | 成年人黄色免费视频 | 最新一区二区三区 | www.香蕉| 91黄色在线观看 | 97在线免费视频观看 | 最近中文字幕视频完整版 | 国产精品 日本 | 国产精品av在线免费观看 | 精品国产亚洲一区二区麻豆 | 久久久久久免费毛片精品 | h视频日本| 国产精品久久久久久电影 | 久久视频这里有久久精品视频11 | 亚洲视频网站在线观看 | 免费在线中文字幕 | 色视频在线免费观看 | 日韩系列在线 | 日韩欧美一区二区在线观看 | 天天射天天射天天 | 免费看三级黄色片 | 日本aa在线| 亚洲男男gⅴgay双龙 | 午夜在线资源 | 91高清免费观看 | 久久字幕网 | 伊人久操| 欧美日韩国产一区二区在线观看 | 黄色精品一区二区 | 免费观看国产精品视频 | 亚洲综合激情五月 | 中文字幕.av.在线 | 97超碰在线免费 | 色视频在线看 | 久久精品亚洲一区二区三区观看模式 | 香蕉一区 | 国产精品美女 | a黄色片在线观看 | 成 人 黄 色 视频播放1 | 亚洲精品国产麻豆 | 成人网页在线免费观看 | 天天操网址 | 亚洲人久久 | 色五月成人 | 国产精品久久久久久久免费观看 | 国产精品毛片久久久 | 黄色电影网站在线观看 | 久久一精品 | 国产精品区一区 | 色亚洲网 | 久久久久久久久福利 | 国产一区欧美二区 | 麻豆免费视频网站 | 欧美精品中文 | 久久综合九色综合久久久精品综合 | 91视频在线免费观看 | 草久热| 欧美激情在线网站 | 亚洲精品久久视频 | 亚洲免费观看在线视频 | 超碰在线天天 | 亚洲视频1| 国产一级二级在线 | 国产视频在线播放 | 色插综合 | 激情丁香婷婷 | 国产精品理论片在线观看 | 99re中文字幕 | 国产日韩欧美在线播放 | 狠狠操导航 | 免费在线观看毛片网站 | 国产久草在线观看 | 亚洲九九九在线观看 | 欧美精品久久天天躁 | 欧美日韩精| 黄色免费在线看 | 18国产精品白浆在线观看免费 | 久久精品视频免费 | 五月天视频网站 | 国产中文字幕亚洲 | 亚洲永久字幕 | 欧美国产日韩一区二区 | 国产精品人成电影在线观看 | 久久网站av| 黄色小说视频网站 | 亚洲国内精品视频 | 国产精品久久久久999 | 在线观看日韩国产 | 国产高清亚洲 | 久久69av| 亚洲永久精品视频 | 九九免费在线视频 | 亚洲精品五月天 | 91丨九色丨国产在线观看 | 国产精品原创在线 | 国产成人久久77777精品 | 久久无码av一区二区三区电影网 | 干综合网| 中文字幕在线网址 | 精品国产免费人成在线观看 | 日韩专区中文字幕 | 久久网址 | 中文字幕日韩精品有码视频 | 国产精品 中文在线 | 久久永久视频 | 久久蜜桃av| 国产.精品.日韩.另类.中文.在线.播放 | av成人免费在线看 | 伊人资源视频在线 | 最近日本中文字幕 | 91麻豆高清视频 | 日韩精品一卡 | 免费观看黄色12片一级视频 | 色综合天天色 | 亚洲欧洲日韩 | 9999国产| 97精品国产97久久久久久 | 久久综合在线 | 91日韩精品一区 | 九色自拍视频 | 在线观看日韩 | 日本精品一区二区三区在线播放视频 | 精品黄色在线 | 黄色av一区 | 91精品久久久久久 | 在线免费国产 | 最近久乱中文字幕 | 天天弄天天干 | 精品一区在线看 | 亚洲精品在线视频网站 | 国产三级午夜理伦三级 | 成人高清在线观看 | 在线观看福利网站 | 91色九色| 美女久久 | 日韩精选在线观看 | www.色午夜 | 免费的国产精品 | 亚洲午夜精品一区 | 97视频在线免费观看 | 国产精品99久久久精品 | 人人爽人人乐 | 干干夜夜 | 国产小视频在线免费观看 | 精品av网站| 国产一区影院 | 青青河边草免费观看完整版高清 | 日韩久久精品一区二区 | 一本一道久久a久久综合蜜桃 | 婷婷网站天天婷婷网站 | 99精品免费网 | 国产尤物在线观看 | av在线色 | 最近高清中文字幕在线国语5 | 日韩欧美精品在线观看视频 | 黄色av三级在线 | 国产又粗又长又硬免费视频 | 美女视频黄在线 | 国产精品永久在线观看 | 中文字幕第一 | 国产一级二级视频 | 黄色福利网 | 亚洲一区美女视频在线观看免费 | 国产亚洲精品综合一区91 | 天天鲁一鲁摸一摸爽一爽 | 免费看的毛片 | 一区二区 精品 | 人人爱人人舔 | 天天色宗合 | 日韩av一卡二卡三卡 | 六月丁香色婷婷 | 九九视频热 | 在线看v片 | 天天综合网 天天 | 亚洲欧美日本一区二区三区 | 99精品视频在线免费观看 | 日韩在线三级 | 深夜福利视频在线观看 | 蜜桃av综合网 | 成人免费视频免费观看 | 久久综合亚洲鲁鲁五月久久 | 国产精品精品视频 | 色干综合 | 久久高清国产视频 | 99在线热播精品免费99热 | 国产在线观看国语版免费 | 亚洲无毛专区 | 成人作爱视频 | 国产福利一区二区三区在线观看 | 精品久久久国产 | 欧美精品国产综合久久 | www国产亚洲精品久久麻豆 | 国内精品久久久久久久久久久 | 欧美日性视频 | 91亚洲视频在线观看 | 国产精品欧美日韩在线观看 | 国产精品美女久久久久久2018 | 日本精品一区二区三区在线播放视频 | 国产一区视频在线播放 | 久草免费色站 | 激情五月激情综合网 | 蜜桃传媒一区二区 | 日韩av一区二区三区在线观看 | 亚洲欧美日韩精品久久久 | 激情综合网婷婷 | 91亚洲网 | 久久精品二区 | 日本久久成人 | 国产99久久久久 | www色网站| 在线国产专区 | 日韩精品一区二区免费 | 在线观看国产v片 | 午夜影视剧场 | 成人在线你懂得 | 久久久久久久久综合 | 久久精品电影院 | a成人v在线| 国产亚洲va综合人人澡精品 | 九九久久久久久久久激情 | 欧美影片| 成年人免费在线看 | 久久a国产 | 国产精品手机在线观看 | 欧美日韩精品电影 | 99免费精品视频 | av日韩不卡 | www.夜色321.com | 最近中文字幕在线 | 国产黄色免费观看 | 天天操操操操操操 | 亚洲a在线观看 | 精品麻豆入口免费 | 日韩高清在线不卡 | 国产 日韩 欧美 中文 在线播放 | 六月丁香在线观看 | 久草视频在线免费看 | 日韩中文字幕视频在线 | 麻豆91精品视频 | 久草网视频在线观看 | 九九九热精品 | 日韩理论片 | 亚洲视频在线观看免费 | 精品视频在线免费观看 | 99久久精品免费视频 | 久久大香线蕉app | 婷婷综合网 | 免费在线观看不卡av | 国产精品一区二区三区99 | 国产精品国产三级国产aⅴ入口 | 亚洲一区二区91 | 97人人添人澡人人爽超碰动图 | a久久久久久 | 欧美在线久久 | 日韩字幕在线观看 | 久久综合偷偷噜噜噜色 | 日本不卡久久 | 97天天干 | 精品亚洲成a人在线观看 | 高清不卡一区二区在线 | 精品国产99 | 四虎影视国产精品免费久久 | 国产精品综合久久 | 伊人激情综合 | 国产中文字幕第一页 | 夜色资源站国产www在线视频 | 97精品国产一二三产区 | 国产91精品久久久久久 | 在线性视频日韩欧美 | 日韩在线视频免费看 | 国内精品99| 国产美腿白丝袜足在线av | 青青色影院 | 午夜免费福利片 | 六月婷婷网 | 亚洲人天堂 | 国产黄av| 午夜精品视频一区二区三区在线看 | 美女网站在线观看 | 国产欧美在线一区二区三区 | 国产一级不卡视频 | 在线天堂8√ | 日韩电影精品一区 | 日本性生活一级片 | 视频一区二区免费 | 免费久久视频 | 精品久久精品 | 久久人人爽视频 | 日韩欧美不卡 | 99在线视频免费观看 | 日韩av一区二区三区 | 中文乱幕日产无线码1区 | av丝袜美腿 | 91视频 - v11av | 激情网站免费观看 | 美女福利视频网 | 国产日韩中文字幕 | 一区二区三区四区不卡 | 久99久精品视频免费观看 | 91在线视频精品 | 国产亚洲欧洲 | 午夜视频在线观看欧美 | 亚洲乱码在线观看 | 99热手机在线 | 久久99精品久久久久婷婷 | 黄色com| 中文字幕亚洲精品在线观看 | 亚洲欧洲av | 91tv国产成人福利 | 国产在线观看一 | 国产视频精品免费播放 | 亚洲国产剧情av | 国产区第一页 | 中文伊人| 99久久精品免费 | 国产精品久久久久久久久久久久冷 | 日本99干网 | 精品久久久国产 | 久久久999精品视频 国产美女免费观看 | 精品一区二区三区久久久 | 免费在线成人 | 午夜视频久久久 | 精品视频中文字幕 | 成人午夜影院 | 91成版人在线观看入口 | 狠狠干狠狠操 | 日韩视频在线观看视频 | 有码中文字幕在线观看 | 国产成人精品999在线观看 | 色五月成人 | 国产亚洲成人精品 | 国产成人三级在线播放 | 国产不卡视频 | 久草在线视频看看 | 国产女人免费看a级丨片 | 午夜精品成人一区二区三区 | 四虎永久免费网站 | 亚洲精品国产品国语在线 | 久草视频免费观 | 中文字幕亚洲国产 | 色是在线视频 | 最近免费中文字幕大全高清10 | av三级在线看 | 超碰官网 | 夜夜嗨av色一区二区不卡 | 成人va天堂 | 在线观看中文字幕第一页 | 色噜噜色噜噜 | 99视频精品全部免费 在线 | 欧美一级片免费在线观看 | 久久久久久草 | 成人网页在线免费观看 | 成人久久国产 | 久久免费精品视频 | 国产精品1000 | 成人国产精品免费观看 | 亚洲国产成人久久 | 91av视频在线播放 | 亚洲最新av | 97在线观 | 成人免费视频观看 | 99久久婷婷国产一区二区三区 | 久久无码精品一区二区三区 | 亚洲春色综合另类校园电影 | 亚州精品天堂中文字幕 | 免费看色的网站 | aaa日本高清在线播放免费观看 | 中文字幕 国产视频 | 久久久久久国产精品999 | 在线视频观看成人 | 中文字幕免费中文 | 欧美精品久久久久久久亚洲调教 | 国产精彩视频一区 | 四虎在线视频 | 精品极品在线 | 色先锋资源网 | 久久人人爽人人爽人人片av免费 | 久久99国产精品视频 | 在线观看av黄色 | 天天操天天操天天操天天 | 国产精品va视频 | 人人插人人草 | 久久天天躁 | 成人欧美一区二区三区在线观看 | 国产999精品久久久影片官网 | 成人一级 | 伊人一级 | 日韩av电影中文字幕 | 天天操天天射天天爽 | 玖玖在线看 | 精品久久久免费视频 | 国内精品国产三级国产aⅴ久 | 国产一区私人高清影院 | 久久久精品国产免费观看同学 | 久久久精品一区二区 | 亚洲最大av | 精品久久久久久亚洲综合网 | 麻豆视频免费 | 久热只有精品 | 91精品国产99久久久久 | 亚洲视频电影在线 | 视频 天天草 | 色噜噜在线观看视频 | 国产精品女人网站 | 国产精品免费久久 | 91日韩精品 | 亚洲黄色片一级 | av电影在线不卡 | 欧美性生交大片免网 | 91在线看 | 中文字幕在线一区二区三区 | 色婷婷综合久色 | 五月天激情视频 | 日韩午夜av | 成人av电影在线观看 | 亚洲国产精品久久 | av成人免费在线看 | 中文字幕欧美日韩va免费视频 | 丰满少妇对白在线偷拍 | 欧美激情精品久久久久久 | 色欧美88888久久久久久影院 | 激情综合国产 | www.色午夜 | 香蕉视频在线观看免费 | 亚洲黄色精品 | 激情丁香 | 中文字幕在线免费看线人 | 国产精品热视频 | 国产日本在线 | 人人爱人人射 | 久草视频中文 | 国产精品久久久久婷婷二区次 | 中文字幕日韩一区二区三区不卡 | 婷婷午夜天 | 国产高清视频免费 | 久久激情电影 | 青青河边草免费直播 | 香蕉久久久久久久 | 国产精品一区二区久久精品爱微奶 | 免费av影视| 久久久免费观看视频 | 欧美成人免费在线 | 久久久久久久久爱 | 五月婷婷丁香在线观看 | 色视频在线观看 | 精品专区一区二区 | 五月婷婷六月丁香 | 久久免费视频1 | 国产日产精品久久久久快鸭 | 亚洲综合在线发布 | 免费网站在线 | 高清中文字幕 | 免费亚洲黄色 | 91亚洲国产 | 日本精品二区 | 999久久久 | 久久玖| 天天在线视频色 | 亚洲天堂va | 四虎影视精品永久在线观看 | 日本黄色免费观看 | 99精品热视频 | 嫩草av在线| 精品国产a | 欧美另类高清 videos | 成年人av在线播放 | 97色涩 | 综合网欧美 | av丝袜在线 | 日韩高清不卡在线 | 夜夜夜| 少妇做爰k8经典 | 99久免费精品视频在线观看 | 色妞久久福利网 | 亚洲最大av在线播放 | 狠狠色噜噜狠狠狠狠2021天天 | 天天玩天天操天天射 | 99久久久久成人国产免费 | 欧美在线aa| 2019av在线视频 | 欧美在线视频精品 | 亚洲国产精品va在线看黑人动漫 | 97超碰伊人| 天天艹日日干 | 精品欧美乱码久久久久久 | 91成人精品一区在线播放69 | 亚洲日本欧美 | 午夜丁香网 | 国产精品女人网站 | 91久久精品日日躁夜夜躁国产 | 国内精品在线观看视频 | 天天曰夜夜爽 | 综合视频在线 | 亚洲综合色婷婷 | 91av视频导航 | 国产一级三级 | 欧美成人黄色片 | 成人久久 | 日本韩国在线不卡 | 国产精品涩涩屋www在线观看 | 亚洲精品美女在线观看 | 色com| 亚洲精品视频二区 | 日本黄色免费看 | 在线免费观看国产黄色 | 高潮毛片无遮挡高清免费 | 国产97碰免费视频 | 日韩最新中文字幕 | 国产91电影在线观看 | 日韩高清一二区 | 天天色天天综合 | 免费看毛片在线 | 中文字幕一区二区三区在线观看 | 色妞色视频一区二区三区四区 | 精品国模一区二区三区 | 亚洲 欧洲av | 欧美综合国产 | 91麻豆国产 | 久久视频这里有精品 | 亚洲成人精品在线 | av理论电影 | 深爱激情开心 | 久久久av电影 | 伊人久久av| 综合伊人av | 免费精品视频在线观看 | 最新精品国产 | 欧美日韩国产色综合一二三四 | 91亚洲精品久久久中文字幕 | 在线视频免费观看 | 69精品 | 国产精品成人在线观看 | 99中文字幕视频 | 国产91精品高清一区二区三区 | 国产视频一二区 | 粉嫩aⅴ一区二区三区 | 久久手机精品视频 | 欧美激情精品久久久久久 | 九九九热| 欧美污在线观看 | 国产传媒中文字幕 | 在线99热 | 欧美日韩视频精品 | a级片网站 | 日韩有码网站 | 成 人 黄 色 片 在线播放 | 亚洲人成人在线 | 国产精品久久网站 | 日韩av黄 | 日本精品一 | av成人在线播放 | 91精品久久香蕉国产线看观看 | 国产手机视频在线播放 | 最近中文字幕免费 | 亚洲精品在线二区 | 国产天天综合 | 97超碰免费在线观看 | 日韩一级片观看 | 色婷婷综合久久久久中文字幕1 | 2021国产精品视频 | 国产精品免费久久久久久久久久中文 | 亚洲视频精品 | 日韩成人av在线 | 最新av网址在线观看 | 国产一区二区高清不卡 | 一区二区欧美在线观看 | 超碰夜夜 | 久久理论片 | 欧美亚洲一区二区在线 | 久草国产在线观看 | 亚洲综合成人婷婷小说 | 91成年视频 | 99久久精品无免国产免费 | 97人人模人人爽人人少妇 | 香蕉在线影院 | 欧美成人按摩 | 久久精品电影 | 国产精品色视频 | 国产免费观看高清完整版 | 久久久成人精品 | 97超碰人人 | 插综合网| 成年人app网址 | 在线播放日韩av | 91热在线 | 337p日本欧洲亚洲大胆裸体艺术 | 久久综合久久综合九色 | 四虎影视成人精品 | 亚洲a免费 | 免费久久网 | 久久99这里只有精品 | 国产亚洲欧美日韩高清 | 97碰碰精品嫩模在线播放 | 中文字幕乱码视频 | 亚洲欧美日韩中文在线 | 天天干,天天射,天天操,天天摸 | 99精品视频一区二区 | 亚洲h色精品 | av黄色影院 | 操碰av| 91禁在线观看 | 国产福利91精品一区二区三区 | 91九色蝌蚪在线 | 久久伊人操| 日韩午夜电影院 | 香蕉视频在线观看免费 | 在线国产91| 欧美激情视频一区二区三区免费 | 国内久久 | 亚洲精品乱码久久久久久写真 | aaa亚洲精品一二三区 | 国产99一区视频免费 | 久久免费电影网 | 成人免费观看大片 | 最新精品视频在线 | 婷婷综合视频 | 国产香蕉97碰碰久久人人 | 国产成人精品一区二区在线观看 | 久久精品中文字幕免费mv | 欧美aa在线观看 | 波多野结衣在线播放视频 | 五月婷婷av在线 | 91麻豆福利 | 中文字幕一区二区三区久久蜜桃 | 黄色毛片视频 | 精品久久久久一区二区国产 | 亚洲国产精品成人精品 | 91精品视频在线播放 | 日日草夜夜操 | 日本在线观看中文字幕无线观看 | 色播五月婷婷 | 精一区二区 | 99 视频 高清 | 日韩一区二区免费播放 |