精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Redis為什么變慢了?常見延遲問題定位與分析

運維 數據庫運維 Redis
這篇文章我們就來分析一下Redis在使用過程中,經常會遇到的延遲問題以及如何定位和分析。

[[343037]]

Redis作為內存數據庫,擁有非常高的性能,單個實例的QPS能夠達到10W左右。但我們在使用Redis時,經常時不時會出現訪問延遲很大的情況,如果你不知道Redis的內部實現原理,在排查問題時就會一頭霧水。

很多時候,Redis出現訪問延遲變大,都與我們的使用不當或運維不合理導致的。

這篇文章我們就來分析一下Redis在使用過程中,經常會遇到的延遲問題以及如何定位和分析。

使用復雜度高的命令

如果在使用Redis時,發現訪問延遲突然增大,如何進行排查?

首先,第一步,建議你去查看一下Redis的慢日志。Redis提供了慢日志命令的統計功能,我們通過以下設置,就可以查看有哪些命令在執行時延遲比較大。

首先設置Redis的慢日志閾值

,只有超過閾值的命令才會被記錄,這里的單位是微秒,例如設置慢日志的閾值為5毫秒,同時設置只保留最近1000條慢日志記錄: 

  1. # 命令執行超過5毫秒記錄慢日志  
  2. CONFIG SET slowlog-log-slower-than 5000  
  3. # 只保留最近1000條慢日志  
  4. CONFIG SET slowlog-max-len 1000 

設置完成之后,所有執行的命令如果延遲大于5毫秒,都會被Redis記錄下來,我們執行SLOWLOG get 5

查詢最近5條慢日志 

  1. 127.0.0.1:6379> SLOWLOG get5  
  2. 1)1)(integer)32693# 慢日志ID  
  3. 2)(integer)1593763337# 執行時間  
  4. 3)(integer)5299# 執行耗時(微秒)  
  5. 4)1)"LRANGE"# 具體執行的命令和參數  
  6. 2)"user_list_2000"  
  7. 3)"0"  
  8. 4)"-1"  
  9. 2)1)(integer)32692  
  10. 2)(integer)1593763337  
  11. 3)(integer)5044  
  12. 4)1)"GET"  
  13. 2)"book_price_1000"  
  14. ... 

通過查看慢日志記錄,我們就可以知道在什么時間執行哪些命令比較耗時,如果你的業務經常使用O(n)

以上復雜度的命令,例如sort、sunion、zunionstore,

或者在執行O(n)命令時操作的數據量比較大,這些情況下Redis處理數據時就會很耗時。

如果你的服務請求量并不大,但Redis實例的CPU使用率很高,很有可能是使用了復雜度高的命令導致的。

解決方案就是,不使用這些復雜度較高的命令,并且一次不要獲取太多的數據,每次盡量操作少量的數據,讓Redis可以及時處理返回。

存儲大key

如果查詢慢日志發現,并不是復雜度較高的命令導致的,例如都是SET、DELETE操作出現在慢日志記錄中,那么你就要懷疑是否存在Redis寫入了大key的情況。

Redis在寫入數據時,需要為新的數據分配內存,當從Redis中刪除數據時,它會釋放對應的內存空間。

如果一個key寫入的數據非常大,Redis在分配內存時也會比較耗時。

同樣的,當刪除這個key的數據時,釋放內存也會耗時比較久。

你需要檢查你的業務代碼,是否存在寫入大key的情況,需要評估寫入數據量的大小,業務層應該避免一個key存入過大的數據量。

那么有沒有什么辦法可以掃描現在Redis中是否存在大key的數據嗎?

Redis也提供了掃描大key的方法:

  1. redis-cli -h $host -p $port --bigkeys -i 0.01 

使用上面的命令就可以掃描出整個實例key大小的分布情況,它是以類型維度來展示的。

需要注意的是當我們在線上實例進行大key掃描時,Redis的QPS會突增,為了降低掃描過程中對Redis的影響,我們需要控制掃描的頻率,使用-i參數控制即可,它表示掃描過程中每次掃描的時間間隔,單位是秒。

使用這個命令的原理,其實就是Redis在內部執行scan命令,遍歷所有key,然后針對不同類型的key執行strlen、llen、hlen、scard、zcard來獲取字符串的長度以及容器類型(list/dict/set/zset)的元素個數。

而對于容器類型的key,只能掃描出元素最多的key,但元素最多的key不一定占用內存最多,這一點需要我們注意下。不過使用這個命令一般我們是可以對整個實例中key的分布情況有比較清晰的了解。

針對大key的問題,Redis官方在4.0版本推出了lazy-free的機制,用于異步釋放大key的內存,降低對Redis性能的影響。即使這樣,我們也不建議使用大key,大key在集群的遷移過程中,也會影響到遷移的性能,這個后面在介紹集群相關的文章時,會再詳細介紹到。

集中過期

有時你會發現,平時在使用Redis時沒有延時比較大的情況,但在某個時間點突然出現一波延時,而且報慢的時間點很有規律,例如某個整點,或者間隔多久就會發生一次。

如果出現這種情況,就需要考慮是否存在大量key集中過期的情況。

如果有大量的key在某個固定時間點集中過期,在這個時間點訪問Redis時,就有可能導致延遲增加。

Redis的過期策略采用主動過期+懶惰過期

兩種策略:

•主動過期:Redis內部維護一個定時任務,默認每隔100毫秒會從過期字典中隨機取出20個key,刪除過期的key,如果過期key的比例超過了25%,則繼續獲取20個key,刪除過期的key,循環往復,直到過期key的比例下降到25%或者這次任務的執行耗時超過了25毫秒,才會退出循環

•懶惰過期:只有當訪問某個key時,才判斷這個key是否已過期,如果已經過期,則從實例中刪除

注意,Redis的主動過期的定時任務,也是在Redis主線程中執行的,

也就是說如果在執行主動過期的過程中,出現了需要大量刪除過期key的情況,那么在業務訪問時,必須等這個過期任務執行結束,才可以處理業務請求。此時就會出現,業務訪問延時增大的問題,最大延遲為25毫秒。

而且這個訪問延遲的情況,不會記錄在慢日志里。慢日志中只記錄真正執行某個命令的耗時,Redis主動過期策略執行在操作命令之前,如果操作命令耗時達不到慢日志閾值,它是不會計算在慢日志統計中的,但我們的業務卻感到了延遲增大。

此時你需要檢查你的業務,是否真的存在集中過期的代碼,一般集中過期使用的命令是expireat或pexpireat命令,在代碼中搜索這個關鍵字就可以了。

如果你的業務確實需要集中過期掉某些key,又不想導致Redis發生抖動,有什么優化方案?

解決方案是,在集中過期時增加一個隨機時間,把這些需要過期的key的時間打散即可。

偽代碼可以這么寫: 

  1. # 在過期時間點之后的5分鐘內隨機過期掉  
  2. redis.expireat(key, expire_time + random(300)) 

這樣Redis在處理過期時,不會因為集中刪除key導致壓力過大,阻塞主線程。

另外,除了業務使用需要注意此問題之外,還可以通過運維手段來及時發現這種情況。

做法是我們需要把Redis的各項運行數據監控起來,執行info可以拿到所有的運行數據,在這里我們需要重點關注expired_keys這一項,它代表整個實例到目前為止,累計刪除過期key的數量。

我們需要對這個指標監控,當在很短時間內這個指標出現突增時,需要及時報警出來,然后與業務報慢的時間點對比分析,確認時間是否一致,如果一致,則可以認為確實是因為這個原因導致的延遲增大。

實例內存達到上限

有時我們把Redis當做純緩存使用,就會給實例設置一個內存上限maxmemory,然后開啟LRU淘汰策略。

當實例的內存達到了maxmemory后,你會發現之后的每次寫入新的數據,有可能變慢了。

導致變慢的原因是,當Redis內存達到maxmemory后,每次寫入新的數據之前,必須先踢出一部分數據,讓內存維持在maxmemory之下。

這個踢出舊數據的邏輯也是需要消耗時間的,而具體耗時的長短,要取決于配置的淘汰策略:

•allkeys-lru:不管key是否設置了過期,淘汰最近最少訪問的key

•volatile-lru:只淘汰最近最少訪問并設置過期的key

•allkeys-random:不管key是否設置了過期,隨機淘汰

•volatile-random:只隨機淘汰有設置過期的key

•allkeys-ttl:不管key是否設置了過期,淘汰即將過期的key

•noeviction:不淘汰任何key,滿容后再寫入直接報錯

•allkeys-lfu:不管key是否設置了過期,淘汰訪問頻率最低的key(4.0+支持)

•volatile-lfu:只淘汰訪問頻率最低的過期key(4.0+支持)

備注:allkeys-xxx表示從所有的鍵值中淘汰數據,而volatile-xxx表示從設置了過期鍵的鍵值中淘汰數據。

具體使用哪種策略,需要根據業務場景來決定。

我們最常使用的一般是allkeys-lru或volatile-lru策略,它們的處理邏輯是,每次從實例中隨機取出一批key(可配置),然后淘汰一個最少訪問的key,之后把剩下的key暫存到一個池子中,繼續隨機取出一批key,并與之前池子中的key比較,再淘汰一個最少訪問的key。以此循環,直到內存降到maxmemory之下。

如果使用的是allkeys-random或volatile-random策略,那么就會快很多,因為是隨機淘汰,那么就少了比較key訪問頻率時間的消耗了,隨機拿出一批key后直接淘汰即可,因此這個策略要比上面的LRU策略執行快一些。

但以上這些邏輯都是在訪問Redis時,真正命令執行之前執行的,也就是它會影響我們訪問Redis時執行的命令。

另外,如果此時Redis實例中有存儲大key,那么在淘汰大key釋放內存時,這個耗時會更加久,延遲更大,這需要我們格外注意。

如果你的業務訪問量非常大,并且必須設置maxmemory限制實例的內存上限,同時面臨淘汰key導致延遲增大的的情況,要想緩解這種情況,除了上面說的避免存儲大key、使用隨機淘汰策略之外,也可以考慮拆分實例的方法來緩解,拆分實例可以把一個實例淘汰key的壓力分攤到多個實例上,可以在一定程度降低延遲。

fork耗時嚴重

如果你的Redis開啟了自動生成RDB和AOF重寫功能,那么有可能在后臺生成RDB和AOF重寫時導致Redis的訪問延遲增大,而等這些任務執行完畢后,延遲情況消失。

遇到這種情況,一般就是執行生成RDB和AOF重寫任務導致的。

生成RDB和AOF都需要父進程fork出一個子進程進行數據的持久化,在fork執行過程中,父進程需要拷貝內存頁表給子進程,如果整個實例內存占用很大,那么需要拷貝的內存頁表會比較耗時,此過程會消耗大量的CPU資源,在完成fork之前,整個實例會被阻塞住,無法處理任何請求,如果此時CPU資源緊張,那么fork的時間會更長,甚至達到秒級。這會嚴重影響Redis的性能。

我們可以執行info命令,查看最后一次fork執行的耗時latest_fork_usec,單位微秒。這個時間就是整個實例阻塞無法處理請求的時間。

除了因為備份的原因生成RDB之外,在主從節點第一次建立數據同步時,主節點也會生成RDB文件給從節點進行一次全量同步,這時也會對Redis產生性能影響。

要想避免這種情況,我們需要規劃好數據備份的周期,建議在從節點上執行備份,而且最好放在低峰期執行。如果對于丟失數據不敏感的業務,那么不建議開啟AOF和AOF重寫功能。

另外,fork的耗時也與系統有關,如果把Redis部署在虛擬機上,那么這個時間也會增大。所以使用Redis時建議部署在物理機上,降低fork的影響。

綁定CPU

很多時候,我們在部署服務時,為了提高性能,降低程序在使用多個CPU時上下文切換的性能損耗,一般會采用進程綁定CPU的操作。

但在使用Redis時,我們不建議這么干,原因如下:

綁定CPU的Redis,在進行數據持久化時,fork出的子進程,子進程會繼承父進程的CPU使用偏好,而此時子進程會消耗大量的CPU資源進行數據持久化,子進程會與主進程發生CPU爭搶,這也會導致主進程的CPU資源不足訪問延遲增大。

所以在部署Redis進程時,如果需要開啟RDB和AOF重寫機制,一定不能進行CPU綁定操作!

開啟AOF

上面提到了,當執行AOF文件重寫時會因為fork執行耗時導致Redis延遲增大,除了這個之外,如果開啟AOF機制,設置的策略不合理,也會導致性能問題。

開啟AOF后,Redis會把寫入的命令實時寫入到文件中,但寫入文件的過程是先寫入內存,等內存中的數據超過一定閾值或達到一定時間后,內存中的內容才會被真正寫入到磁盤中。

AOF為了保證文件寫入磁盤的安全性,提供了3種刷盤機制:

•appendfsync always:每次寫入都刷盤,對性能影響最大,占用磁盤IO比較高,數據安全性最高

•appendfsync everysec:1秒刷一次盤,對性能影響相對較小,節點宕機時最多丟失1秒的數據

•appendfsync no:按照操作系統的機制刷盤,對性能影響最小,數據安全性低,節點宕機丟失數據取決于操作系統刷盤機制

當使用第一種機制appendfsync always時,Redis每處理一次寫命令,都會把這個命令寫入磁盤,而且這個操作是在主線程中執行的。

內存中的的數據寫入磁盤,這個會加重磁盤的IO負擔,操作磁盤成本要比操作內存的代價大得多。如果寫入量很大,那么每次更新都會寫入磁盤,此時機器的磁盤IO就會非常高,拖慢Redis的性能,因此我們不建議使用這種機制。

與第一種機制對比,appendfsync everysec會每隔1秒刷盤,而appendfsync no取決于操作系統的刷盤時間,安全性不高。因此我們推薦使用appendfsync everysec這種方式,在最壞的情況下,只會丟失1秒的數據,但它能保持較好的訪問性能。

當然,對于有些業務場景,對丟失數據并不敏感,也可以不開啟AOF。

使用Swap

如果你發現Redis突然變得非常慢,每次訪問的耗時都達到了幾百毫秒甚至秒級,那此時就檢查Redis是否使用到了Swap,這種情況下Redis基本上已經無法提供高性能的服務。

我們知道,操作系統提供了Swap機制,目的是為了當內存不足時,可以把一部分內存中的數據換到磁盤上,以達到對內存使用的緩沖。

但當內存中的數據被換到磁盤上后,訪問這些數據就需要從磁盤中讀取,這個速度要比內存慢太多!

尤其是針對Redis這種高性能的內存數據庫來說,如果Redis中的內存被換到磁盤上,對于Redis這種性能極其敏感的數據庫,這個操作時間是無法接受的。

我們需要檢查機器的內存使用情況,確認是否確實是因為內存不足導致使用到了Swap。

如果確實使用到了Swap,要及時整理內存空間,釋放出足夠的內存供Redis使用,然后釋放Redis的Swap,讓Redis重新使用內存。

釋放Redis的Swap過程通常要重啟實例,為了避免重啟實例對業務的影響,一般先進行主從切換,然后釋放舊主節點的Swap,重新啟動服務,待數據同步完成后,再切換回主節點即可。

可見,當Redis使用到Swap后,此時的Redis的高性能基本被廢掉,所以我們需要提前預防這種情況。

我們需要對Redis機器的內存和Swap使用情況進行監控,在內存不足和使用到Swap時及時報警出來,及時進行相應的處理。

網卡負載過高

如果以上產生性能問題的場景,你都規避掉了,而且Redis也穩定運行了很長時間,但在某個時間點之后開始,訪問Redis開始變慢了,而且一直持續到現在,這種情況是什么原因導致的?

之前我們就遇到這種問題,特點就是從某個時間點之后就開始變慢,并且一直持續。這時你需要檢查一下機器的網卡流量,是否存在網卡流量被跑滿的情況。

網卡負載過高,在網絡層和TCP層就會出現數據發送延遲、數據丟包等情況。Redis的高性能除了內存之外,就在于網絡IO,請求量突增會導致網卡負載變高。

如果出現這種情況,你需要排查這個機器上的哪個Redis實例的流量過大占滿了網絡帶寬,然后確認流量突增是否屬于業務正常情況,如果屬于那就需要及時擴容或遷移實例,避免這個機器的其他實例受到影響。

運維層面,我們需要對機器的各項指標增加監控,包括網絡流量,在達到閾值時提前報警,及時與業務確認并擴容。

總結

以上我們總結了Redis中常見的可能導致延遲增大甚至阻塞的場景,這其中既涉及到了業務的使用問題,也涉及到Redis的運維問題。

可見,要想保證Redis高性能的運行,其中涉及到CPU、內存、網絡,甚至磁盤的方方面面,其中還包括操作系統的相關特性的使用。

作為開發人員,我們需要了解Redis的運行機制,例如各個命令的執行時間復雜度、數據過期策略、數據淘汰策略等,使用合理的命令,并結合業務場景進行優化。

作為DBA運維人員,需要了解數據持久化、操作系統fork原理、Swap機制等,并對Redis的容量進行合理規劃,預留足夠的機器資源,對機器做好完善的監控,才能保證Redis的穩定運行。 

 

責任編輯:龐桂玉 來源: 數據庫開發
相關推薦

2021-04-01 11:13:12

Redis分布式優化

2022-02-21 08:41:50

Redis

2023-11-27 18:09:46

Redis內存數據庫

2020-06-29 19:11:47

4G網速工信部

2020-06-10 14:10:53

服務開發 架構

2012-08-07 09:27:40

JavaScript

2022-03-22 10:52:02

Redis變慢服務器

2011-04-25 09:37:03

2024-01-08 13:28:00

5G低延遲

2015-10-20 14:30:47

2020-08-20 08:23:48

MySQL數據庫技術

2020-10-27 08:58:47

設計NUMA內存

2012-08-08 14:33:32

IBMdW

2023-03-21 08:02:36

Redis6.0IO多線程

2023-09-10 07:15:08

網絡延遲CDN

2011-03-29 13:23:54

CACTI

2015-03-17 21:01:12

2012-06-25 11:51:31

ibmdw

2022-07-03 16:33:38

網絡安全漏洞微軟

2021-01-05 22:36:32

5G低延遲網絡
點贊
收藏

51CTO技術棧公眾號

日本亚洲不卡| 天天摸夜夜添狠狠添婷婷| 久久一区二区三区喷水| 欧美一卡二卡在线观看| 免费毛片网站在线观看| 欧美视频综合| 精品在线亚洲视频| 国产精品高潮在线| 日韩人妻无码精品综合区| 韩国理伦片久久电影网| 亚洲一卡二卡三卡四卡| 欧洲高清一区二区| 成人黄色免费视频| 肉肉av福利一精品导航| 九九久久久久久久久激情| 30一40一50老女人毛片| 免费精品一区| 欧美在线不卡视频| 国产一区二区视频播放| 欧美天天影院| 久久网这里都是精品| 91影院在线免费观看视频| 东京热一区二区三区四区| 一区二区三区午夜探花| 亚洲日韩欧美视频一区| 91精品又粗又猛又爽| 成人亚洲视频| 欧美视频二区36p| 男人天堂av片| www红色一片_亚洲成a人片在线观看_| 久久久五月婷婷| 成人在线视频网址| 99国产在线播放| 美女www一区二区| 欧美专区在线观看| 久久99精品波多结衣一区| 亚洲欧美综合| 久久久成人的性感天堂| 黄大色黄女片18免费| 夜夜春成人影院| 国产视频精品va久久久久久| youjizz.com日本| 51精品国产| 日韩一级片在线播放| 亚洲精品中文字幕乱码无线| 久久久国产精品网站| 欧美专区日韩专区| 欧美一级黄色影院| 国产日韩电影| 欧美日韩亚洲精品一区二区三区| 青青青在线视频播放| 天堂8中文在线| 亚洲午夜激情网站| 欧美一级免费播放| 蜜臀久久精品| 欧美丝袜一区二区三区| 久久精品免费一区二区| 一区二区三区电影大全| 日韩欧美在线看| 国产精品一区二区三区四区在线观看 | 日本熟妇人妻xxxxx| 91超碰国产在线| 亚洲国产日韩综合久久精品| 免费毛片网站在线观看| 男人久久天堂| 色综合久久久久综合体桃花网| 久久九九全国免费| 欧美高清电影在线看| 黄色aaa视频| 欧美xx视频| 黑人巨大精品欧美一区二区一视频 | 欧美xxxx做受欧美.88| 成人免费毛片东京热| 一区二区国产在线| 欧美激情xxxxx| 91蜜桃视频在线观看| 一区二区三区四区五区精品视频| 91精品国产91久久久久久最新 | 欧美顶级毛片在线播放| 日韩午夜在线播放| 日韩一区二区三区免费| 色88888久久久久久影院按摩| 无码人妻丰满熟妇区五十路百度| 日韩不卡免费高清视频| 欧美群妇大交群的观看方式| 天天av天天操| 加勒比久久高清| 亚洲精品网站在线播放gif| 一区二区精品免费| 影音先锋日韩精品| 97超碰色婷婷| 中文字幕无线码一区| 国产精品一区二区x88av| 国产伦精品一区二区三| 成人在线观看免费| 亚洲美女偷拍久久| 农村妇女精品一二区| 国产美女亚洲精品7777| 日韩美女av在线| 国产第一页浮力| 久久国产高清| 91久久伊人青青碰碰婷婷| 婷婷亚洲一区二区三区| 亚洲欧美一区二区在线观看| 欧美综合在线播放| 先锋影音一区二区| 国产婷婷色综合av蜜臀av| 日日噜噜夜夜狠狠久久波多野| 在线看片一区| 成人激情综合网| 色视频免费在线观看| 尤物av一区二区| 国产精品igao| 久久99国产精品久久99大师| 久久精品在线播放| 丰满少妇xoxoxo视频| 丁香亚洲综合激情啪啪综合| 午夜精品视频在线观看一区二区| segui88久久综合9999| 91精品国产综合久久福利软件| 亚洲熟妇无码av| 国产精品a久久久久| 国产欧美日韩精品专区| 视频在线观看你懂的| 一区二区三区在线观看国产 | 男人的j进女人的j一区| 久精品国产欧美| 免费影视亚洲| 欧美一区三区二区| 三级黄色录像视频| 三级一区在线视频先锋| 国产一区二区久久久| 在线播放免费av| 欧美日本韩国一区二区三区视频| 国产综合精品在线| 欧美亚洲专区| 久久99欧美| 欧美a级在线观看| 日韩精品一区二区三区视频在线观看| 国产aaaaaaaaa| 日韩精品一级中文字幕精品视频免费观看 | 欧美变态挠脚心| 久久久久中文字幕| 亚洲精品国产精品国| 一个色在线综合| 麻豆传媒在线看| 午夜精品电影| 亚洲一区中文字幕| 亚洲精品少妇一区二区| 1024在线看片你懂得| 日韩欧美亚洲国产另类| 成人免费精品动漫网站| 狠狠色综合日日| 日韩视频在线观看视频| 99久久久国产| 色与欲影视天天看综合网| 午夜精品一二三区| 亚洲影视在线播放| 中文字幕 日本| 久久精品麻豆| 亚洲黄色一区二区三区| 欧美视频免费看| 久久视频国产精品免费视频在线 | 麻豆专区一区二区三区四区五区| 日韩免费毛片| 韩国理伦片久久电影网| 久久国产精品网站| 殴美一级特黄aaaaaa| 婷婷成人激情在线网| 国产精品密蕾丝袜| 久久av中文字幕片| www.18av.com| 女人抽搐喷水高潮国产精品| 国产午夜精品久久| 免费黄色福利视频| 精品无人区麻豆乱码久久久| 国产精品欧美一区二区三区奶水| shkd中文字幕久久在线观看| 精品视频在线免费看| 成人影视在线播放| 国产婷婷色一区二区三区四区| 日韩视频免费在线播放| 成人一区二区| 99re在线观看| 亚洲私拍视频| www.日韩av.com| 亚洲国产欧美另类| 韩曰欧美视频免费观看| 激情无码人妻又粗又大| 成人黄色小视频在线观看| 粉嫩虎白女毛片人体| 欧美精品成人久久| 香蕉国产成人午夜av影院| 国产999精品视频| a级影片在线| 欧美777四色影| 91人人爽人人爽人人精88v| 国语对白在线刺激| 在线观看日韩av| 亚洲国产综合网| 欧美影片第一页| 久久精品国产亚洲AV无码男同| 国产无遮挡一区二区三区毛片日本| 成人性生交视频免费观看| 亚洲欧美网站| 9色porny| 天天综合久久| 日本精品一区二区三区不卡无字幕| www一区二区三区| 日韩av色在线| 岛国片av在线| 久久视频中文字幕| 国产黄在线观看| 亚洲精品99久久久久中文字幕| 一级特黄aa大片| 国产97在线视频| 久久精品国产亚洲av无码娇色| 久久久久久久久久美女| 亚洲av无码久久精品色欲| 久热精品在线| 日韩av在线播放不卡| 久久五月天小说| 欧美一二三四五区| 欧美三级午夜理伦三级小说| 国产精品欧美极品| 国产精品久久久久久9999| 视频一区在线视频| 成年人网站免费视频| 欧美一区视频| 日本特级黄色大片| 成人激情视频| 欧美在线激情| 美女毛片一区二区三区四区| 国产精品一区二区三区在线观| av在线播放一区二区| 国产精品欧美一区二区| 日韩av大片站长工具| 555www成人网| 僵尸再翻生在线观看免费国语| 欧美激情精品久久久久久黑人 | 亚洲国产美女视频| 中文成人av在线| 我想看黄色大片| 亚洲国产精品精华液2区45| 日本二区在线观看| 国产色婷婷亚洲99精品小说| 西西444www无码大胆| 久久久久国产成人精品亚洲午夜| 性色av蜜臀av色欲av| 91在线免费播放| 成人免费无遮挡无码黄漫视频| 久久众筹精品私拍模特| 五月天综合视频| 亚洲国产高清不卡| 欧美黄色高清视频| 18欧美乱大交hd1984| 中文字幕另类日韩欧美亚洲嫩草| 一级特黄大欧美久久久| 亚洲国产综合久久| 色综合色狠狠综合色| 波多野结衣家庭主妇| 欧美三级中文字| av在线免费在线观看| 精品免费日韩av| 深夜福利免费在线观看| 亚洲最新在线视频| 久草中文在线| 久久全球大尺度高清视频| 性感女国产在线| 国产精品入口福利| 久久久久毛片免费观看| 成人h视频在线观看| 亚洲精品推荐| 国产精品无码乱伦| 亚洲国产裸拍裸体视频在线观看乱了中文 | gogo在线高清视频| 国模精品系列视频| 国产一区二区主播在线| 91亚洲国产成人久久精品网站| 高清欧美性猛交xxxx黑人猛| 欧美极品一区二区| 天天做天天爱天天爽综合网| www.av蜜桃| 日韩av在线播放中文字幕| 午夜激情视频网| 91蜜桃在线观看| 欧美性x x x| 动漫精品一区二区| 97精品人妻一区二区三区香蕉 | 99re热久久这里只有精品34| 美女少妇精品视频| 视频二区不卡| 波多野结衣精品久久| 国产亚洲一卡2卡3卡4卡新区| 国产奶头好大揉着好爽视频| 欧美亚洲免费| 一级黄色大片免费看| 国产清纯美女被跳蛋高潮一区二区久久w | 影音先锋成人在线电影| 国产精品99久久免费黑人人妻| 国产一区二区三区久久悠悠色av| 三上悠亚ssⅰn939无码播放 | 国产又大又粗又爽| 日韩一级片网站| 一本一道波多野毛片中文在线| 久久久久免费视频| 久久爱.com| 蜜桃日韩视频| 亚洲国产网站| 中文字幕av一区二区三区人妻少妇| 国产午夜久久久久| 日本视频www| 日韩一级免费一区| 在线观看黄av| 国产极品精品在线观看| 麻豆视频一区| 91视频 - 88av| 久久av资源站| 麻豆视频免费在线播放| 色婷婷久久一区二区三区麻豆| 欧洲精品久久一区二区| 久久69精品久久久久久久电影好| yiren22亚洲综合| 欧美日本国产精品| 一本久道久久综合狠狠爱| 欧美69精品久久久久久不卡| 国产精品乱子久久久久| 无码人妻精品一区二区50| 日韩电影免费观看在线观看| 成年网站在线视频网站| 99久久精品免费看国产一区二区三区 | 日韩国产高清视频在线| h片精品在线观看| 波多野结衣精品久久| 国产精品videosex极品| 手机在线播放av| 亚洲精品精品亚洲| 99riav国产| 欧美大尺度激情区在线播放| 国产精品777777在线播放| 国产又爽又黄ai换脸| 精品在线观看视频| 国产探花在线视频| 欧美一区二区三区白人| 啪啪免费视频一区| yellow视频在线观看一区二区| 午夜欧美精品久久久久久久| 青青草精品在线| 伊人开心综合网| www.五月婷婷| 久久久久久尹人网香蕉| 久久九九热re6这里有精品 | 国产一级视频在线观看| 精品国产亚洲在线| sm在线播放| 日本欧洲国产一区二区| 麻豆精品精品国产自在97香蕉 | 欧美日韩国产精品专区| 欧美色18zzzzxxxxx| 国产成人精品视频在线观看| 欧美呦呦网站| 在线播放av中文字幕| 一区二区成人在线视频| 五月婷婷六月丁香| 国产成人久久久| 亚欧美无遮挡hd高清在线视频| 成人免费黄色av| 亚洲v日本v欧美v久久精品| 青青草免费观看免费视频在线| 国产成人鲁鲁免费视频a| 久久在线视频免费观看| 久久人妻少妇嫩草av蜜桃| 精品二区三区线观看| 自拍视频在线网| 国产精品swag| 日韩电影在线观看一区| 欧美三级黄色大片| 日韩av有码在线| 狠狠久久伊人中文字幕| 日韩小视频网站| 久久精品一区四区| 国产视频手机在线| 4438全国亚洲精品在线观看视频| 日韩在线理论| 色婷婷免费视频| 欧美日韩国产在线观看| h片精品在线观看| 亚洲欧洲中文| 不卡在线观看av| 一二三区中文字幕| 97视频色精品| 99精品在线| 免费在线观看成年人视频| 51精品视频一区二区三区| 国产夫妻在线| 国产香蕉一区二区三区| 久久久三级国产网站| 精品久久久无码中文字幕| 国产成人精品网站| 日韩午夜av|