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

緩存穿透問題導致Facebook史上嚴重事故之一

存儲 存儲軟件
ache stampede是指很多線程嘗試并行訪問緩存,如果緩存中不存在要訪問的數據,那么這時候,線程一般會請求數據庫獲取它們需要的數據(所以cache stampede可以翻譯成緩存踩踏。和緩存穿透有點不一樣,Cache Stampede的重點是很多的線程穿透緩存)。

[[392414]]

2010年9月23,這個世界上最大的社交平臺項目facebook,遭遇了最嚴重宕機故障之一,以至于facebook網站4個小時后才恢復運行。而且這次事故非常極端,工程師不得不先讓facebook下線,才能恢復。雖然10年前的facebook遠沒有現在這么大,不過仍然有超過10億用戶,人們去twitter上抱怨或者取笑這次故障。

那么,導致是什么原因導致這次facebook宕機呢?

Today we made a change to the persistent copy of a configuration value that was interpreted as invalid. This meant that every single client saw the invalid value and attempted to fix it. Because the fix involves making a query to a cluster of databases, that cluster was quickly overwhelmed by hundreds of thousands of queries a second.

一個錯誤的配置變更,導致大量的請求擊穿緩存,直達數據庫。我們把這種現象稱之為cache stampede,wiki地址:https://en.wikipedia.org/wiki/Cache_stampede。這在技術行業是一個非常普遍的問題,很多公司都出現過類似的事故,無數工程師為了不讓自己的項目遭遇這樣的問題做了大量的工作。

1、什么是緩存踩踏

cache stampede是指很多線程嘗試并行訪問緩存,如果緩存中不存在要訪問的數據,那么這時候,線程一般會請求數據庫獲取它們需要的數據(所以cache stampede可以翻譯成緩存踩踏。和緩存穿透有點不一樣,Cache Stampede的重點是很多的線程穿透緩存)。

緩存踩踏破壞性這么大的主要原因是,它可能會導致故障雪崩,也就是說一個故障接著一個故障:

  1. 大量線程并發請求沒有從緩存中獲取到數據,導致這些請求都會落到數據庫上。
  2. 數據庫由于恐怖的CPU毛刺而宕機,從而導致大量的超時錯誤。
  3. 請求線程接收到超時后,又不斷重試請求,從而又導致新一輪的災難。
  4. 反反復復,無窮無盡。

需要說明的是,即使你沒有 Facebook 那樣的規模,也會遇到這個問題,因為它與規模無關。這個問題一直困擾著初創公司和科技巨頭。

2、如何阻止緩存踩踏

這是個很好的問題,在這篇文章中,我們將探索不同的策略來緩解甚至阻止緩存踩踏的出現。畢竟,你也不想等到你自己的服務出現問題后,才想到要學習如何預防。

2.1 增加更多的緩存

一個很簡單的方法就是增加更多的緩存,它的原理有點類似操作系統的多級緩存。操作系統使用了一個緩存層次結構(L1、L2、L3),為了更快速的訪問。參考操作系統,你也能在你的應用中引入多級緩存。比如本地內存緩存叫做L1緩存(例如Guava Cache,Caffeine),遠程緩存叫做L2緩存(例如Redis,memcached):

這個策略對那些頻繁訪問的數據來說是非常有用的。即使L2緩存中的Key失效了,L1緩存中仍然有值,能夠擋住大量請求不會打到數據庫上。

然后,這種方法需要做一些取舍,在應用服務器本地緩存中緩存數據可能會導致OOM。在使用本地緩存的時候要非常小心,尤其當你會緩存一些大量數據的時候。

另外,這個策略在接下來我要說的這種情況下仍然沒有作用。例如,當一個有很多粉絲的大V上傳了一個新的照片或者視頻到他們的社交賬號上,這時候大量粉絲被提醒大V有新的內容發布,這時候粉絲會集中在相同的時間點上登陸社交平臺查看新的內容。但是可能大V發送的新內容數據還沒有加載到緩存中,這就會導致可怕的緩存踩踏。那么,我們還能做什么呢?

2.2 鎖和Promise

緩存踩踏的核心問題是競態條件(race condition),即很多的線程爭奪共享資源。只不過這里爭奪的共享資源是緩存。

通常在高并發的系統中,一種阻止共享資源競態的方法是加鎖。一般來講,鎖是用在相同機器上的不同線程,不過也可以使用分布式鎖來應對不同機器對共享資源的競爭(參考redis分布式鎖:http://redis.cn/topics/distlock.html)。

通過給緩存KEY加鎖,就會在同一時間只有一個調用者能訪問爭奪的緩存。如果KEY不存在或者已經過期,調用者就會拿到鎖。這時候其他爭奪的處理線程必須等待直到這個鎖被釋放。

用鎖來解決這個問題,它也會引入另一個問題:系統如何處理所有正在等待鎖釋放的那些線程?

你想嘗試自旋鎖(spinlock),讓這些線程持續不斷的輪詢去獲取鎖?這就會導致出現非常busy的場景,消耗大量的CPU。或者讓線程在檢查鎖是否可用之前隨機等待一段時間?這樣的話,你又會碰到驚群效應問題(thundering herd problem)。

引入退避和抖動機制來防止驚群效應?這可能行得通,但還有另外一個問題。持有鎖的線程必須重新計算值,并在釋放鎖之前更新緩存鍵。這個過程可能需要耗費一點時間,特別是當計算成本很高或存在網絡問題時,如果因為計算緩存而耗盡了可用的連接池,仍然可能導致宕機。

  1. backoff-and-jitter 

幸運的是,一些大公司也碰到過這樣的問題,他們使用promises來解決這樣的問題。

2.3 Promises如何防止自旋

引用instagram工程師博客(Thundering Herds & Promises)中的內容:

在instagram, 當我們啟用一個新的集群,并且因為集群中的緩存是空的,我們就會碰到緩存stampede問題。這時候,我們就會用promises來解決這個問題。它的核心思想是:不緩存實際的值,而是緩存一個promise,這個promise最終會提供我們需要的值。當我們使用緩存時,如果碰到一個不存在的KEY,我們不立即去數據庫中查詢,而是創建一個promise然后放到緩存中,這個緩存中的promise會去查詢數據庫,其他的并發請求發現這個promise就不會把請求打到數據庫上,它們都會等待第一個線程放進去的promise去數據庫中查詢結果。

通過緩存promise而不是實際的值,就不會自旋鎖了。第一個線程發現緩存中沒有數據,就會用原子性的操作創建并緩存一個異步的promise,所有后續的請求都能立即返回這個promise:

你仍然需要使用鎖來防止多個線程訪問緩存KEY,假設創建 Promise 是一個近乎即時的操作,那么線程停留在自旋鎖中的時間長度就可以忽略不計了。但是,如果重新計算緩存數據需要相當長的時間,那該怎么辦?即使線程能夠立即獲取到緩存的 Promise,它們仍然需要等待異步進程完成后才能將數據返回。雖然這種場景不一定會導致宕機,但仍然會導致尾部延遲和影響整體用戶體驗。如果保持較低的尾部延遲對于應用程序來說很重要,那么就需要考慮另外一種策略。

2.4 預先重新計算

預先重新計算(也被稱為提前過期)原理很簡單:在緩存KEY失效發生前,重新計算緩存的值然后延長失效時間,這就能確保緩存總是最新的,緩存缺失的問題也永遠不會發生。

最簡單的實現方式就是開啟一個后臺處理線程,或者一個定時任務。例如。假設緩存KEY過期時間時一個小時,它需要花兩分鐘來計算值。那么,定時任務可以在過期時間到來之前的5分鐘運行,更新緩存的值并延長失效時間一個小時。

雖然原理非常簡單,但是有一個明顯的缺點,除非你很清楚哪個緩存KEY會被使用,否則你需要重新計算緩存中每個KEY的值,這將是一個非常耗時的過程。而且如果考慮到高可用,某個節點上計算任務失敗了,還需要轉移到另一個可用的節點上繼續計算。

基于這個原因,生產環境上很少有這么做的。當然,也有一個例外。

2.5 概率性重新計算

在2015年,一組研究員發布了一份白皮書 Optimal Probabilistic Cache Stampede Prevention,即最優概率性預防緩存踩踏。在這份白皮書中,他們描述了一個算法來預測在緩存失效之前,什么時候需要重新計算緩存的值。這里涉及到很多數學理論,但是可以做一個簡單的總結:

currentTime - ( timeToCompute * beta * log(rand()) ) > expiry

這個公式中各變量的含義如下所示:

  • currentTime 表示當前時間;
  • timeToCompute 表示重新計算緩存值需要的時間;
  • beta是一個大于0的非負數,默認為1,可配置;
  • rand() 一個返回0~1之間隨機數的方法;
  • expiry 下一次需要設置的失效時間戳;

它的思想是,每次線程從緩存中獲取數據時,它都需要運行這個算法,如果返回true,那么這個線程將主動去重新計算緩存值。而且離失效時間越近,這個算法返回true的概率就越大。

這個策略不是很好理解,但是實現非常簡單,不需要考慮失敗轉移,也不需要到重新計算緩存中每一個KEY的值。當然,預先重計算假設有一個值需要重新計算,它本身并不能防止其他線程引起緩存踩踏問題。為此,你需要將其與鎖和 Promise 結合起來使用。

3、如何停止正在發生的緩存踩踏

facebook緩存踩踏之所以如此嚴重的原因之一是,即使當工程師找到了解決方案,他們并不能通過部署來解決。因為踩踏仍在繼續。事后診斷報告提到:

更糟糕的是,每次客戶端接收到數據庫查詢錯誤時,都會把它當作一個無效的值,然后就會刪除緩存中相關的KEY,這就意味著即使原來的問題被修復了,但是查詢還在繼續。一旦數據庫無法正確響應某一部分請求,那么就會導致緩存KEY被刪除,從而引起更多的請求打到數據庫上。

所幸的是,有一種已知的模型能處理這個問題。

熔斷器

這個想法不是很新的事情,2007年Michael Nygard發布了 Release It!后就慢慢流行了。熔斷器(Circuit breaking)的原理非常簡單,我們會在熔斷器中封裝一個方法,當監測到失敗時進行計數,并且一旦失敗達到一定閾值時,調用就會收到熔斷器直接返回的錯誤碼,而不會調用到受到熔斷器保護的地方,例如數據庫等。如下圖所示,第一次supplier能正常服務,但是第二次、第三次訪問都是超時。達到熔斷器閾值后,第四次直接返回錯誤碼,而不會將請求直接打給supplier:

熔斷器是響應式的,所以它不能阻止宕機。不過它可以防止連鎖故障的發生。而且它提供了一個終止開關,當事態已經徹底失控時可以開啟。如果 Facebook 使用了熔斷機制,就可以避免讓整個網站癱瘓下線。2010年的時候熔斷器還不是很流行,不過今天已經有很多熔斷的開源組件,例如:Resilience4j, Istio和 Envoy。

4、學到了什么

這篇文章中談論了很多應對緩存踩踏問題的策略,以及其他的科技公司是如何使用這些策略的。那么facebook呢?他們從這次事故中學到了什么?以及他們采取了什么措施來防止事故再次發生?他們的工程師寫了一篇文章:Under the hood: Broadcasting live video to millions,討論了他們對架構所做的改進。和本文我們提到的一樣,比如二級緩存。當然,也提到了一些新的方法,比如 HTTP請求合并。總之,這篇文章非常值得一讀

5、寫在最后

我相信理解緩存踩踏對系統的破壞性是非常有必要的,當然,并不是說每個團隊必須馬上把這些策略用到他們的系統中。因為,選擇何種策略要應對緩存踩踏并不是一件容易的事情,它依賴你的實際用戶場景,架構,以及流量負載情況。但是了解緩存踩踏以及對可能的解決方案對您將來有所幫助,當你以后面對類型問題時,能從容應對。

原文地址:https://betterprogramming.pub/how-a-cache-stampede-caused-one-of-facebooks-biggest-outages-dbb964ffc8ed

本文轉載自微信公眾號「阿飛的博客」,可以通過以下二維碼關注。轉載本文請聯系阿飛的博客公眾號。  

 

 

責任編輯:武曉燕 來源: 阿飛的博客
相關推薦

2019-01-23 11:19:10

運維架構技術

2023-01-31 08:37:11

緩存穿透擊穿

2015-02-12 16:39:56

服務器宕機

2022-05-27 07:57:20

緩存穿透緩存雪崩緩存擊穿

2019-03-27 13:56:39

緩存雪崩穿透

2010-02-22 10:16:39

獨立服務器問題訪問故障

2021-04-21 21:09:36

緩存系統高可用

2019-10-12 14:19:05

Redis數據庫緩存

2023-03-10 13:33:00

緩存穿透緩存擊穿緩存雪崩

2019-01-09 08:00:30

數據中心配置物理服務器

2018-08-07 10:44:50

緩存技術瀏覽器

2023-04-14 07:34:19

2021-10-08 08:55:23

FacebookBGP工具

2019-11-05 14:24:31

緩存雪崩框架

2019-02-13 11:04:42

系統緩存軟件

2013-04-06 20:49:33

GoogleFacebookFacebook Ho

2017-12-27 12:01:39

2013-03-15 09:59:34

2021-06-05 09:01:01

Redis緩存雪崩緩存穿透

2022-06-06 11:31:31

MySQL數據查詢
點贊
收藏

51CTO技術棧公眾號

国产日韩精品一区二区三区| 日韩视频二区| 91精品国产品国语在线不卡| 国产高清不卡无码视频| 天天射,天天干| 首页亚洲欧美制服丝腿| 播播国产欧美激情| 国产视频精品视频| 久久av影院| 亚洲成人av一区二区三区| 欧洲久久久久久| 亚洲av永久纯肉无码精品动漫| 美女久久一区| 欧美激情中文字幕乱码免费| 欧美成人另类视频| 牛牛影视一区二区三区免费看| 欧美体内she精视频| 国产乱人伦精品一区二区三区| 欧美巨乳在线| 粉嫩av一区二区三区| 日本视频久久久| 久久艹精品视频| 日韩一区二区在线| 亚洲深夜福利视频| 色哟哟无码精品一区二区三区| jizz久久久久久| 欧美日韩免费一区| 99re6这里有精品热视频| 国产视频福利在线| 99riav一区二区三区| 亚洲自拍在线观看| 一区二区三区在线免费观看视频| 国产亚洲在线观看| 欧美激情精品久久久久久黑人| 黄色激情小视频| 精品在线99| 亚洲高清一二三区| 日韩精品――色哟哟| 永久免费观看精品视频| 在线亚洲人成电影网站色www| 男人日女人视频网站| 中文在线观看免费| 中文字幕日韩av资源站| 亚洲欧美国产精品桃花| 蜜桃视频在线免费| 久久免费视频一区| 欧美激情视频一区二区三区| 天天干天天色天天| 不卡的av电影| 国产一区二区免费在线观看| 懂色av一区二区三区四区 | 久久精品国产精品亚洲色婷婷| 在线h片观看| 亚洲日韩欧美一区二区在线| 一区二区视频在线观看| 日本免费在线视频| 亚洲欧美偷拍卡通变态| 三级在线免费观看| 手机电影在线观看| 亚洲午夜视频在线观看| 国产真人做爰毛片视频直播| 黄页网站在线| 五月天中文字幕一区二区| aa视频在线播放| 一区一区三区| 欧美综合亚洲图片综合区| 无码内射中文字幕岛国片| 精品网站在线| 欧美精品一二三四| 日本人dh亚洲人ⅹxx| 超碰精品在线观看| 亚洲精品视频网上网址在线观看| 野花社区视频在线观看| 国产伦精品一区二区三区千人斩| 一区二区欧美激情| 在线观看黄网址| 亚洲视屏一区| 国产不卡在线观看| 一区二区国产欧美| 成人久久久精品乱码一区二区三区| 不卡一区二区三区四区五区| 色婷婷综合视频| 欧美激情综合网| 欧美少妇在线观看| 蜜桃视频动漫在线播放| 欧美视频中文字幕| 能看毛片的网站| 亚州精品视频| 按摩亚洲人久久| 久久精品国产亚洲AV无码男同| 亚洲欧美卡通另类91av| 国产欧美一区二区三区久久人妖| 精品久久久久中文慕人妻| 久久综合久久鬼色中文字| 亚洲一区二区三区午夜| 99热99re6国产在线播放| 欧美亚洲尤物久久| 9.1在线观看免费| 精品国产123区| 九色91av视频| 自拍偷拍福利视频| 不卡的av电影| 艳母动漫在线观看| 欧美一区久久久| 日韩视频中午一区| 亚洲a v网站| 精品91在线| 国产精品视频久久久久| 天天操天天干天天插| 中文字幕一区二区三区不卡| 人人干视频在线| 疯狂欧洲av久久成人av电影| 亚洲女人天堂成人av在线| 国产精品夜夜夜爽阿娇| 午夜一级在线看亚洲| 91日韩久久| a天堂中文在线| 欧美性生活大片免费观看网址| 岛国大片在线免费观看| 日本久久一二三四| 欧美性做爰毛片| 国产 日韩 欧美 精品| 国产精品久久综合| 精品久久久久久久免费人妻| jizzjizzjizz欧美| 久久天天躁狠狠躁夜夜躁| 奴色虐av一区二区三区| 99久久精品国产导航| 久久久天堂国产精品| а天堂中文最新一区二区三区| 国产亚洲欧美日韩美女| 97免费在线观看视频| 成人小视频免费观看| 亚洲啊啊啊啊啊| 成人激情久久| 久久精品国产欧美激情| 91精品人妻一区二区三区果冻| 国产日韩欧美制服另类| 无码精品a∨在线观看中文| 超碰精品在线| 国内精品久久久久久影视8| h狠狠躁死你h高h| 亚洲毛片av在线| 欧美又黄又嫩大片a级| 大胆日韩av| 国产精品久久久久aaaa九色| 国产污视频在线| 欧美在线免费视屏| 国产精品久久久视频| 蜜臂av日日欢夜夜爽一区| 亚洲成人自拍| 123成人网| 色阁综合伊人av| 国产露脸国语对白在线| 亚洲欧美日韩国产综合在线| 91视频福利网| 欧美日韩少妇| 国产亚洲情侣一区二区无| 国产高潮在线| 亚洲欧美日韩精品久久| 九九热最新视频| 1区2区3区精品视频| 欧美污在线观看| 国产精品v欧美精品v日本精品动漫| 91久久极品少妇xxxxⅹ软件 | 激情五月婷婷基地| 午夜欧美在线| 国产一区二区三区四区hd| 美女搞黄视频在线观看| 亚洲网站视频福利| 97人妻一区二区精品免费视频| 一区二区视频在线看| 成年人小视频在线观看| 免费精品视频| 一区二区三区四区| 97se亚洲国产一区二区三区| 欧美一区二区.| www.中文字幕久久久| 欧美一卡二卡三卡| 99精品视频99| 国产精品免费久久| 韩国三级视频在线观看| 久久亚洲国产精品一区二区| 亚洲一二三区精品| 福利片一区二区| 国产精品综合网站| а_天堂中文在线| 在线观看欧美日韩| www.桃色av嫩草.com| 一本到一区二区三区| 黄色录像免费观看| av中文字幕亚洲| 最新国产黄色网址| 亚洲毛片一区| 亚洲三区视频| 欧美性生活一级片| 国产日韩欧美成人| 中文在线а√在线8| 久久久国产精品x99av| 欧美日韩国产综合视频| 日韩一区二区精品在线观看| 日本一区二区免费电影| 亚洲日本成人在线观看| 日本aaa视频| 成人午夜在线播放| 特黄视频免费观看| 日日摸夜夜添夜夜添亚洲女人| 成人午夜视频免费观看| 成人a'v在线播放| 精品1区2区| 日本精品视频| 国产一区二区色| 高潮一区二区| 97激碰免费视频| 天天色天天射天天综合网| 中文亚洲视频在线| 玖玖综合伊人| 亚洲精品成人久久久| 99精品免费观看| 欧美日韩在线播| 精品免费囯产一区二区三区| 亚洲国产欧美在线| 九九视频在线观看| 亚洲欧洲综合另类在线| 国产白丝一区二区三区| 国产欧美日本一区视频| 老牛影视av老牛影视av| www.亚洲在线| 欧美大喷水吹潮合集在线观看| 国产伦精品一区二区三区免费迷| 国产 porn| 日韩黄色免费网站| 成年人免费在线播放| 国产亚洲精品bv在线观看| 僵尸世界大战2 在线播放| 国产精品v一区二区三区| 欧美少妇在线观看| 这里只有精品在线| 欧美xxxx吸乳| 一区二区三区网站| 懂色av粉嫩av蜜臀av| 久久影院100000精品| 亚洲一区二区精品在线观看| 成人高清电影网站| 日韩片电影在线免费观看| 久久av中文| 四虎影院一区二区三区| 日韩中文首页| 曰韩不卡视频| 中文字幕亚洲综合久久五月天色无吗''| 色视频一区二区三区| 欧美日韩伦理在线免费| 亚洲国产成人不卡| 99久久99视频只有精品| 国产大尺度在线观看| 欧美网站在线| 水蜜桃色314在线观看| 亚洲欧美卡通另类91av| 波多野结衣天堂| 精一区二区三区| 亚洲熟妇一区二区| 97久久久精品综合88久久| 97人妻精品一区二区三区免| 久久久久99精品一区| 91无套直看片红桃在线观看| 自拍偷拍欧美激情| 久久网中文字幕| 欧美日韩国产丝袜另类| 天堂免费在线视频| 欧美一区二区三区视频在线| 亚洲精品一区二区口爆| 亚洲精品一区二区网址| 免费理论片在线观看播放老| 日韩在线免费视频| 后进极品白嫩翘臀在线播放| 91成人性视频| 日韩一级视频| 国产无套精品一区二区| 不卡日本视频| 国产91沈先生在线播放| 午夜在线一区| 奇米777在线| 91视频www| 中文字幕av播放| 精品久久久视频| 国产精品熟女久久久久久 | 蜜芽tv福利在线视频| 久久精品91久久久久久再现| 久久影院午夜精品| 国产免费观看久久黄| 国产一区在线电影| 亚洲欧洲精品一区| 一本色道88久久加勒比精品| 久久黄色片网站| 91在线看国产| 欧美日韩国产精品综合| 在线精品视频免费播放| 囯产精品久久久久久| 日韩在线观看网址| 欧美三级网站| 97免费高清电视剧观看| 欧美一区电影| 人妻熟妇乱又伦精品视频| 国产曰批免费观看久久久| 插吧插吧综合网| 亚洲一二三专区| 国产一区二区在线不卡| 亚洲欧美日韩精品久久亚洲区| 国产极品人妖在线观看| 国产自摸综合网| 国产一区二区三区日韩精品| 免费人成自慰网站| 精品亚洲免费视频| 成人无码av片在线观看| 欧美视频在线视频| 成人午夜免费在线观看| 欧美xxxx18性欧美| 久久精品国产精品亚洲毛片| 欧美成人蜜桃| 99热在线精品观看| 性活交片大全免费看| 中文字幕在线不卡一区| 国产第一页在线观看| 日韩精品免费观看| 俺来俺也去www色在线观看| 99re视频在线播放| 综合av在线| 欧美日韩精品区别| 一区视频在线播放| 亚洲一卡二卡在线观看| 国产亚洲精品美女久久久| 深夜成人影院| 日韩av电影免费播放| 久久久久国产精品午夜一区| 男男做爰猛烈叫床爽爽小说| 亚洲电影一级黄| 亚洲精品成av人片天堂无码| 欧美人在线视频| 911亚洲精品| 成人免费播放器| 99精品国产视频| 天堂网一区二区三区| 日韩黄色在线免费观看| 国产传媒av在线| 欧美二区在线| 日韩国产精品久久久久久亚洲| 法国空姐电影在线观看| 色婷婷国产精品综合在线观看| 欧美色图另类| 国产精品久久久久久久久久久久久| 国产区精品区| 国产精品视频分类| 中文字幕一区三区| 国产免费黄色片| 欧美激情综合色| 欧美精品中文字幕亚洲专区| 男人揉女人奶房视频60分| 国产亚洲一二三区| 91theporn国产在线观看| 久久亚洲影音av资源网 | 日本欧洲一区二区| 天天色天天综合| 欧美va亚洲va香蕉在线| 不卡专区在线| 日本高清不卡一区二区三| 美女一区二区视频| 欧美精品乱码视频一二专区| 亚洲第一视频网站| 性欧美18一19sex性欧美| 亚洲视频sss| av在线播放成人| 日韩不卡高清视频| 欧美大秀在线观看| 伊人精品一区| 日本在线一二三区| 亚洲永久免费视频| 国产一二在线观看| 亚洲一区亚洲二区亚洲三区| 亚洲高清激情| 国产探花视频在线播放| 日韩精品在线网站| 欧美日韩成人影院| 欧美日韩中文字幕在线播放| 99精品视频在线免费观看| 中文字幕日韩第一页| 欧美黑人性猛交| 欧美日韩亚洲在线观看| 性折磨bdsm欧美激情另类| 一本色道久久加勒比精品| 日本电影在线观看网站| 激情视频在线观看一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 久草视频免费在线| 中文字幕日韩精品有码视频| 久久精品色综合| 日本高清免费观看| 欧美午夜精品久久久久久孕妇 | 午夜亚洲国产au精品一区二区| 福利在线播放| 久久99九九|