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

案例 | 一次 Java 內存泄漏調試的有趣經歷

存儲 存儲軟件
人人都會犯錯,但一些錯誤是如此的荒謬,我想不通怎么會有人犯這種錯誤。更沒想到的是,這種事竟發生在了我們身上。

 人人都會犯錯,但一些錯誤是如此的荒謬,我想不通怎么會有人犯這種錯誤。更沒想到的是,這種事竟發生在了我們身上。

當然,這種東西只有事后才能發現真相。

接下來,我將講述一系列最近在我們一個應用上犯過的這種錯誤。最有意思的是,一開始的跡象揭示的問題,與實際發生的問題完全不同。

[[243675]]

在一個凄涼的午夜

午夜剛過,我就被一條來自監控系統的警報吵醒了。

Adventory,我們的 PPC (以點擊次數收費)廣告系統中一個負責索引廣告的應用,很明顯連續重啟了好幾次。

在云端的環境里,實例的重啟是很正常的,也不會觸發報警,但這次實例重啟的次數在短時間內超過了閾值。我打開了筆記本電腦,一頭扎進項目的日志里。

一定是網絡的問題

我看到服務在連接 ZooKeeper 時發生了數次超時。

我們使用 ZooKeeper(ZK)協調多個實例間的索引操作,并依賴它實現魯棒性。

很顯然,一次 Zookeeper 失敗會阻止索引操作的繼續運行,不過它應該不會導致整個系統掛掉。

而且,這種情況非常罕見(這是我***次遇到 ZK 在生產環境掛掉),我覺得這個問題可能不太容易搞定。于是我把 ZooKeeper 的值班人員喊醒了,讓他們看看發生了什么。

同時,我檢查了我們的配置,發現 ZooKeeper 連接的超時時間是秒級的。

很明顯,ZooKeeper 全掛了,由于其他服務也在使用它,這意味著問題非常嚴重。我給其他幾個團隊發了消息,他們顯然還不知道這事兒。

ZooKeeper 團隊的同事回復我了,在他看來,系統運行一切正常。

由于其他用戶看起來沒有受到影響,我慢慢意識到不是 ZooKeeper 的問題。日志里明顯是網絡超時,于是我把負責網絡的同事叫醒了。

負責網絡的團隊檢查了他們的監控,沒有發現任何異常。

由于單個網段,甚至單個節點,都有可能和剩余的其他節點斷開連接,他們檢查了我們系統實例所在的幾臺機器,沒有發現異常。

其間,我嘗試了其他幾種思路,不過都行不通,我也到了自己智力的極限。

時間已經很晚了(或者說很早了),同時,跟我的嘗試沒有任何關系,重啟變得不那么頻繁了。

由于這個服務僅僅負責數據的刷新,并不會影響到數據的可用性,我們決定把問題放到上午再說。

一定是 GC 的問題

有時候把難題放一放,睡一覺,等腦子清醒了再去解決是一個好主意。

沒人知道當時發生了什么,服務表現的非常怪異。

突然間,我想到了什么。

Java 服務表現怪異的主要根源是什么?

當然是垃圾回收。

為了應對目前這種情況的發生,我們一直打印著 GC 的日志。

我馬上把 GC 日志下載了下來,然后打開 Censum開始分析日志。

我還沒仔細看,就發現了一個恐怖的情況:

每15分鐘發生一次 full GC,每次 GC 引發長達 20 秒的服務停頓。

怪不得連接 ZooKeeper 超時了,即使 ZooKeeper 和網絡都沒有問題。

這些停頓也解釋了為什么整個服務一直是死掉的,而不是超時之后只打一條錯誤日志。

我們的服務運行在 Marathon 上,它定時檢查每個實例的健康狀態,如果某個端點在一段時間內沒有響應,Marathon 就重啟那個服務。

 

知道原因之后,問題就解決一半了,因此我相信這個問題很快就能解決。

為了解釋后面的推理,我需要說明一下 Adventory 是如何工作的,它不像你們那種標準的微服務。

Adventory 是用來把我們的廣告索引到 ElasticSearch (ES) 的。

這需要兩個步驟。

***步是獲取所需的數據。

到目前為止,這個服務從其他幾個系統中接收通過 Hermes 發來的事件。數據保存到 MongoDB 集群中。

數據量最多每秒幾百個請求,每個操作都特別輕量,因此即便觸發一些內存的回收,也耗費不了多少資源。

第二步就是數據的索引。

這個操作定時執行(大概兩分鐘執行一次),把所有 MongoDB 集群存儲的數據通過 RxJava 收集到一個流中,組合為非范式的記錄,發送給 ElasticSearch。這部分操作類似離線的批處理任務,而不是一個服務。

由于經常需要對數據做大量的更新,維護索引就不太值得,所以每執行一次定時任務,整個索引都會重建一次。

這意味著一整塊數據都要經過這個系統,從而引發大量的內存回收。

盡管使用了流的方式,我們也被迫把堆加到了 12 GB 這么大。由于堆是如此巨大(而且目前被全力支持),我們的 GC 選擇了 G1。

我以前處理過的服務中,也會回收大量生命周期很短的對象。

有了那些經驗,我同時增加了 -XX:G1NewSizePercent 和 -XX:G1MaxNewSizePercent 的默認值,這樣新生代會變得更大,young GC 就可以處理更多的數據,而不用把它們送到老年代。

Censum 也顯示有很多過早提升。這和一段時間之后發生的 full GC 也是一致的。不幸的是,這些設置沒有起到任何作用。

接下來我想,或許生產者制造數據太快了,消費者來不及消費,導致這些記錄在它們被處理前就被回收了。

我嘗試減小生產數據的線程數量,降低數據產生的速度,同時保持消費者發送給 ES 的數據池大小不變。

這主要是使用背壓(backpressure)機制,不過它也沒有起到作用。

一定是內存泄漏

這時,一個當時頭腦還保持冷靜的同事,建議我們應該做一開始就做的事情:檢查堆中的數據。

我們準備了一個開發環境的實例,擁有和線上實例相同的數據量,堆的大小也大致相同。

把它連接到 jnisualvm ,分析內存的樣本,我們可以看到堆中對象的大致數量和大小。

打眼一看,可以發現我們域中Ad對象的數量高的不正常,并且在索引的過程中一直在增長,一直增長到我們處理的廣告的數量級別。

但是……這不應該啊。畢竟,我們通過 RX 把這些數據整理成流,就是為了防止把所有的數據都加載到內存里。

 

隨著懷疑越來越強,我檢查了這部分代碼。

它們是兩年前寫的,之后就沒有再被仔細的檢查過。

果不其然,我們實際上把所有的數據都加載到了內存里。

這當然不是故意的。由于當時對 RxJava 的理解不夠全面,我們想讓代碼以一種特殊的方式并行運行。為了從 RX 的主工作流中剝離出來一些工作,我們決定用一個單獨的 executor 跑 CompetableFuture。

但是,我們因此就需要等待所有的 CompetableFuture 都工作完……通過存儲他們的引用,然后調用 join()。

這導致一直到索引完成,所有的 future 的引用,以及它們引用到的數據,都保持著生存的狀態。這阻止了垃圾收集器及時的把它們清理掉。

真有這么糟糕嗎?

當然這是一個很愚蠢的錯誤,對于發現得這么晚,我們也很惡心。我甚至想起很久之前,關于這個應用需要 12 GB 的堆的問題,曾有個簡短的討論。12 GB 的堆,確實有點大了。

但是另一方面,這些代碼已經運行了將近兩年了,沒有發生過任何問題。

我們可以在當時相對容易的修復它,然而如果是兩年前,這可能需要我們花費更多的時間,而且相對于節省幾個 G 的內存,當時我們有很多更重要的工作。

因此,雖然從純技術的角度來說,這個問題如此長時間沒解決確實很丟人,然而從戰略性的角度來看,或許留著這個浪費內存的問題不管,是更務實的選擇。

當然,另一個考慮就是這個問題一旦發生,會造成什么影響。

我們幾乎沒有對用戶造成任何影響,不過結果有可能更糟糕。軟件工程就是權衡利弊,決定不同任務的優先級也不例外。

還是不行

有了更多使用 RX 的經驗之后,我們可以很簡單的解決 ComplerableFurue 的問題。

重寫代碼,只使用 RX;

在重寫的過程中,升級到 RX2;

真正的流式處理數據,而不是在內存里收集它們。

這些改動通過 code review 之后,部署到開發環境進行測試。讓我們吃驚的是,應用所需的內存絲毫沒有減少。

內存抽樣顯示,相較之前,內存中廣告對象的數量有所減少。

而且對象的數量現在不會一直增長,有時也會下降,因此他們不是全部在內存里收集的。還是老問題,看起來這些數據仍然沒有真正的被歸集成流。

那現在是怎么回事?

相關的關鍵詞剛才已經提到了:背壓。

當數據被流式處理,生產者和消費者的速度不同是很正常的。

如果生產者比消費者快,并且不能把速度降下來,它就會一直生產越來越多的數據,消費者無法以同樣的速度處理掉他們。

現象就是未處理數據的緩存不斷增長,而這就是我們應用中真正發生的。背壓就是一套機制,它允許一個較慢的消費者告訴較快的生產者去降速。

我們的索引系統沒有背壓的概念,這在之前沒什么問題,反正我們把整個索引都保存到內存里了。

一旦我們解決了之前的問題,開始真正的流式處理數據,缺少背壓的問題就變得很明顯了。

這個模式我在解決性能問題時見過很多次了:解決一個問題時會浮現另一個你甚至沒有聽說過的問題,因為其他問題把它隱藏起來了。

如果你的房子經常被淹,你不會注意到它有火災隱患。

修復由修復引起的問題

在 RxJava 2 里,原來的 Observable 類被拆成了不支持背壓的 Observable 和支持背壓的 Flowable。

幸運的是,有一些簡單的辦法,可以開箱即用的把不支持背壓的 Observable 改造成支持背壓的 Flowable。

其中包含從非響應式的資源比如 Iterable 創建 Flowable。把這些 Flowable 融合起來可以生成同樣支持背壓的 Flowable,因此只要快速解決一個點,整個系統就有了背壓的支持。

有了這個改動之后,我們把堆從 12 GB 減少到了 3 GB ,同時讓系統保持和之前同樣的速度。我們仍然每隔數小時就會有一次暫停長達 2 秒的 full GC,不過這比我們之前見到的 20 秒的暫停(還有系統崩潰)要好多了。

再次優化 GC

但是,故事到此還沒有結束。檢查 GC 的日志,我們注意到大量的過早提升,占到 70%。

盡管性能已經可以接受了,我們也嘗試去解決這個問題,希望也許可以同時解決 full GC 的問題。

 

如果一個對象的生命周期很短,但是它仍然晉升到了老年代,我們就把這種現象叫做過早提升(premature tenuring)(或者叫過早升級)。

老年代里的對象通常都比較大,使用與新生代不同的 GC 算法,而這些過早提升的對象占據了老年代的空間,所以它們會影響 GC 的性能。因此,我們想竭力避免過早提升。

我們的應用在索引的過程中會產生大量短生命周期的對象,因此一些過早提升是正常的,但是不應該如此嚴重。

當應用產生大量短生命周期的對象時,能想到的***件事就是簡單的增加新生代的空間。

默認情況下,G1 的 GC 可以自動的調整新生代的空間,允許新生代使用堆內存的 5% 至 60%。

我注意到運行的應用里,新生代和老年代的比例一直在一個很寬的幅度里變化,不過我依然動手修改了兩個參數:-XX:G1NewSizePercent=40 和 -XX:G1MaxNewSizePercent=90看看會發生什么。

這沒起作用,甚至讓事情變得更糟糕了,應用一啟動就觸發了 full GC。我也嘗試了其他的比例,不過***的情況就是只增加 G1MaxNewSizePercent而不修改最小值。

這起了作用,大概和默認值的表現差不多,也沒有變好。

嘗試了很多辦法后,也沒有取得什么成就,我就放棄了,然后給 Kirk Pepperdine 發了封郵件。

他是位很知名的 Java 性能專家,我碰巧在 Allegro 舉辦的 Devoxx 會議的訓練課程里認識了他。

通過查看 GC 的日志以及幾封郵件的交流,Kirk 建議試試設置 -XX:G1MixedGCLiveThresholdPercent=100。

這個設置應該會強制 G1 GC 在 mixed GC 時不去考慮它們被填充了多少,而是強制清理所有的老年代,因此也同時清理了從新生代過早提升的對象。這應該會阻止老年代被填滿從而產生一次 full GC。

然而,在運行一段時間以后,我們再次驚訝的發現了一次 full GC。

Kirk 推斷說他在其他應用里也見到過這種情況,它是 G1 GC 的一個 bug:mixed GC 顯然沒有清理所有的垃圾,讓它們一直堆積直到產生 full GC。

他說他已經把這個問題通知了 Oracle,不過他們堅稱我們觀察到的這個現象不是一個 bug,而是正常的。

結論

我們***做的就是把應用的內存調大了一點點(從 3 GB 到 4 GB),然后 full GC 就消失了。

我們仍然觀察到大量的過早提升,不過既然性能是沒問題的,我們就不在乎這些了。

一個我們可以嘗試的選項是轉換到 GMS(Concurrent Mark Sweep)GC,不過由于它已經被廢棄了,我們還是盡量不去使用它。

 

那么這個故事的寓意是什么呢?

首先,性能問題很容易讓你誤入歧途。一開始看起來是 ZooKeeper 或者 網絡的問題,***發現是我們代碼的問題。

即使意識到了這一點,我首先采取的措施也沒有考慮周全。為了防止 full GC,我在檢查到底發生了什么之前就開始調優 GC。

這是一個常見的陷阱,因此記住:即使你有一個直覺去做什么,先檢查一下到底發生了什么,再檢查一遍,防止浪費時間去錯誤的問題。

第二條,性能問題太難解決了。我們的代碼有良好的測試覆蓋率,而且運行的特別好,但是它也沒有滿足性能的要求,它在開始的時候就沒有清晰的定義好。

性能問題直到部署之后很久才浮現出來。由于通常很難真實的再現你的生產環境,你經常被迫在生產環境測試性能,即使那聽起來非常糟糕。

第三條,解決一個問題有可能引發另一個潛在問題的浮現,強迫你不斷挖的比你預想的更深。

我們沒有背壓的事實足以中斷這個系統,但是直到我們解決了內存泄漏的問題后,它才浮現。

責任編輯:武曉燕 來源: java大牛愛好者
相關推薦

2012-07-12 14:35:31

面試經歷

2021-08-19 09:50:53

Java內存泄漏

2022-07-13 08:31:18

React問題排查

2019-04-04 15:00:40

SQL索引數據庫

2020-11-02 09:48:35

C++泄漏代碼

2012-08-28 09:21:59

Ajax查錯經歷Web

2025-03-17 10:01:07

2023-03-29 09:36:32

2021-12-06 19:29:17

LRU內存算法

2019-02-20 09:29:44

Java內存郵件

2020-08-27 21:36:50

JVM內存泄漏

2022-02-08 17:17:27

內存泄漏排查

2016-12-06 09:34:33

線程框架經歷

2013-04-01 10:27:37

程序員失業

2011-04-13 09:21:30

死鎖SQL Server

2013-01-17 10:31:13

JavaScriptWeb開發firebug

2021-04-13 18:17:48

Hbase集群配置

2021-11-02 07:54:41

內存.NET 系統

2022-09-13 17:46:19

STA模式內存

2021-02-11 14:06:38

Linux內核內存
點贊
收藏

51CTO技術棧公眾號

亚洲国产免费看| 91精品久久久久久综合五月天| 国产亚洲精品精华液| 国产精品视频26uuu| 欧美黄色aaa| 老司机精品视频在线播放| 欧美亚洲一区二区三区四区| 欧美日韩午夜爽爽| 青青草视频在线免费观看| 久久国产精品色婷婷| 久久久久久久久久久网站| 男人操女人动态图| 国产人与zoxxxx另类91| 欧美日韩国产中字| 玖玖精品在线视频| 国产乱理伦片a级在线观看| 国产一区二三区好的| 日韩av电影手机在线| 高h视频免费观看| 欧美男gay| 精品久久国产97色综合| 艹b视频在线观看| 性欧美18~19sex高清播放| 亚洲欧美二区三区| 四虎影视永久免费在线观看一区二区三区| www香蕉视频| 蜜桃视频第一区免费观看| 97精品视频在线| 紧身裙女教师波多野结衣| 国产成人三级| 精品性高朝久久久久久久| 日本一二三四区视频| 亚洲播播91| 黄色一区二区在线| 在线观看污视频| 一本一道波多野毛片中文在线| 94色蜜桃网一区二区三区| 亚洲一区美女视频在线观看免费| 亚洲熟女综合色一区二区三区| 狠狠入ady亚洲精品| 久久久久99精品久久久久| 99久久久无码国产精品衣服| 日韩大片在线免费观看| 亚洲成年人在线播放| 四虎1515hh.com| 国内自拍亚洲| 欧美在线一二三| 日本精品久久久久中文字幕| 麻豆蜜桃在线观看| 亚洲不卡一区二区三区| 蜜桃传媒一区二区三区| 国产色婷婷在线| 亚洲午夜激情网页| 成人免费看片'免费看| 国内外激情在线| 亚洲视频在线一区观看| 水蜜桃亚洲一二三四在线| 国产日本在线观看| 国产精品系列在线| 亚洲欧美99| 蜜芽在线免费观看| 自拍偷拍亚洲欧美日韩| 免费成人进口网站| 2024最新电影免费在线观看| 亚洲精品菠萝久久久久久久| 亚洲一区 在线播放| 国产探花在线观看| 精品久久久久人成| 日韩视频免费在线播放| 成人久久网站| 欧美精品v日韩精品v韩国精品v| 一区二区免费av| 日韩精品一区二区三区免费视频| 日韩女同互慰一区二区| 亚洲av成人片无码| 九九久久电影| 久久精品国产清自在天天线| 久久精品视频免费在线观看| 亚洲国产高清一区| 国产盗摄xxxx视频xxx69| 中文字幕日韩经典| 国产一区中文字幕| 国产乱码一区| av在线二区| 亚洲黄色免费电影| 777久久久精品一区二区三区 | 亚洲视频 欧洲视频| 久久av高潮av| 亚洲天堂导航| 欧美日本视频在线| 性高潮免费视频| 欧美男gay| 久久精品国产一区二区电影| 久久在线视频精品| 久热re这里精品视频在线6| 国产美女久久精品香蕉69| 亚洲精品久久久久久久久久久久久久 | 黄色录像a级片| 成人黄色av| 欧美激情一区二区三区在线视频观看| 手机在线看片1024| 国产精品影视网| 欧美亚州在线观看| 天堂av最新在线| 色av成人天堂桃色av| 国产老头和老头xxxx×| 国产一区二区精品福利地址| 久99久在线视频| 天天天天天天天干| 成人一区二区三区| 亚洲三级一区| 樱花草涩涩www在线播放| 7777女厕盗摄久久久| asian性开放少妇pics| 中文av一区| 国产精品久久久久久中文字| 亚洲国产精品久久人人爱潘金莲| 日本一区二区三级电影在线观看 | 日本高清一区| 国产v日韩v欧美v| 日韩一区二区中文字幕| av永久免费观看| 亚洲一区二区成人| 国产精品久久亚洲| 97超碰在线公开在线看免费| 欧美亚洲国产一区在线观看网站| jizz日本免费| 亚洲电影av| 91精品成人久久| 国内精品久久久久久久久久| 国产精品国模大尺度视频| 18岁视频在线观看| 网友自拍一区| 国内偷自视频区视频综合| 国产又爽又黄又嫩又猛又粗| 国产欧美精品区一区二区三区| 久久久久免费看黄a片app| 亚洲综合欧美在线| 日本在线视频中文有码| 欧美日韩国产另类不卡| 国产精品扒开腿做爽爽| 在线亚洲免费| 激情小说综合区| 91超碰在线| 亚洲国产精品va在线看黑人动漫| 欧美日韩在线观看成人| 国产一区视频在线看| 伊人久久大香线蕉成人综合网| 日韩视频网站在线观看| 亚洲视频免费一区| 国产精品欧美综合| 久久九九国产精品| 精品免费国产一区二区| 九九久久婷婷| 国产精品流白浆视频| 国产爆初菊在线观看免费视频网站| 欧美色欧美亚洲高清在线视频| 欧美成人三级伦在线观看| 18成人免费观看视频| 国产精品一区二区三区不卡| 欧洲一区二区三区| 亚洲成人精品视频在线观看| 日本一区二区三区免费视频| 不卡视频免费播放| 播放灌醉水嫩大学生国内精品| 亚洲v天堂v手机在线| 国产精品成人国产乱一区| 在线激情免费视频| 欧美一级日韩一级| 99视频在线看| 国产日产欧美精品一区二区三区| 午夜国产一区二区三区| 亚洲成av人电影| 国产精品区一区二区三在线播放| 3344国产永久在线观看视频| 亚洲免费视频一区二区| 一级一级黄色片| 亚洲欧美一区二区三区孕妇| 精品人妻一区二区免费| 亚洲在线观看| 亚洲精品免费在线看| 久久亚洲精精品中文字幕| 久久久久久成人| 青青操视频在线| 欧美乱妇23p| 国产无码精品在线观看| 国产视频视频一区| 成人性生交视频免费观看| 精品999网站| 日本一区二区在线| 精品国产伦一区二区三区观看说明 | 亚洲欧美一区在线| 精品在线一区| 四虎影视国产精品| 91精品91久久久久久| 一级毛片视频在线| 日韩成人xxxx| 国产一区二区三区黄片| 亚洲一区二区三区四区中文字幕| 成人乱码一区二区三区av| 精品一区二区久久| 成人免费在线小视频| 欧美岛国激情| 乱一区二区三区在线播放| 色婷婷成人网| 欧美在线视频一二三| wwwav在线| 在线视频精品一| 头脑特工队2免费完整版在线观看| 欧美日韩国产精选| 亚洲欧美偷拍一区| 亚州成人在线电影| 久久精品黄色片| 国产精品水嫩水嫩| 少妇精品一区二区三区| 国产精品18久久久久久久久久久久 | 91高清免费观看| 国产无人区一区二区三区| 午夜不卡久久精品无码免费| 精品中文av资源站在线观看| 噼里啪啦国语在线观看免费版高清版| 亚洲国产精品第一区二区三区| 91看片淫黄大片91| 68国产成人综合久久精品| 色大师av一区二区三区| 蜜桃a∨噜噜一区二区三区| 国产伦理久久久| 中文字幕日韩高清在线| 91牛牛免费视频| 久久亚洲国产精品尤物| 国产精品88a∨| 欧美电影网站| 琪琪第一精品导航| 51漫画成人app入口| 国产69精品久久久久99| 里番在线播放| 久久久久久91| 成人免费高清观看| 久久久久久国产精品久久| 在线观看av免费| 欧美成人黄色小视频| 八戒八戒神马在线电影| 超薄丝袜一区二区| 91麻豆国产福利在线观看宅福利| 久久精品国产精品| 在线免费观看污| 久久国产精品视频| 新版中文在线官网| 欧美大片网站在线观看| 国精产品一区一区三区mba下载| 久久国产精品久久精品| 尤物yw193can在线观看| 欧美精品中文字幕一区| 牛牛精品在线视频| 午夜精品福利视频| xxxxxx欧美| 国产精品视频不卡| a一区二区三区亚洲| 亚洲自拍av在线| 成人在线tv视频| 久久精品女人的天堂av| 台湾佬综合网| 欧美性大战久久久久| 久久国产精品亚洲人一区二区三区| 伊人av成人| 欧美三区不卡| 无码人妻h动漫| 蜜桃视频第一区免费观看| 亚洲在线观看网站| 成人不卡免费av| 美女爆乳18禁www久久久久久| 国产亚洲成av人在线观看导航| 三级网站在线免费观看| 中文字幕一区av| 国产一级片免费观看| 欧美日韩黄色大片| 无码人妻久久一区二区三区| 欧美精品少妇一区二区三区| 精品国产av一区二区| 日韩av在线免费播放| 97最新国自产拍视频在线完整在线看| 久久精品91久久香蕉加勒比| 密臀av在线| 国产精品欧美日韩| 国产精品2023| 亚洲欧美日韩综合一区| 国内精品久久久久久久97牛牛| 日本在线观看a| 黄色精品一二区| 中文在线永久免费观看| 国产精品美女一区二区三区 | 久久bbxx| 7m第一福利500精品视频| 日韩欧国产精品一区综合无码| 国产精品一区二区欧美| 欧美高清在线| 亚洲午夜精品久久久久久人妖| 麻豆精品新av中文字幕| 五月天激情小说| 1024亚洲合集| 麻豆成人免费视频| 日韩精品中文字幕在线不卡尤物| 国产在线91| 国内精品美女av在线播放| 欧美成a人片免费观看久久五月天| 国产成人精品日本亚洲11| 成人同人动漫免费观看| 少妇无码av无码专区在线观看| 久久精品国产亚洲高清剧情介绍 | www.久久综合| 中文字幕在线成人| 在线视频超级| 国产精品乱码视频| 1024精品久久久久久久久| 啊啊啊国产视频| 91啦中文在线观看| 国产亚洲精品女人久久久久久| 欧美日韩免费视频| 精品福利视频导航大全| 97婷婷涩涩精品一区| 日韩高清一区| 尤物一区二区三区| 日本成人中文字幕在线视频 | 中文字幕一区二区在线播放| 99久久精品国产亚洲| 精品国产不卡一区二区三区| 黄色网页在线播放| 国产精品自拍偷拍| 不卡日本视频| 免费看a级黄色片| 国产视频在线观看一区二区三区| 久久夜色精品国产噜噜亚洲av| 欧美精品一区二区久久久| 国模雨婷捆绑高清在线| 97中文在线观看| 欧美三级免费| 亚洲av无一区二区三区久久| 亚洲免费av高清| av在线亚洲天堂| 久久69精品久久久久久久电影好| 999精品视频在线观看| 一区二区精品在线观看| 美日韩一区二区| 九九热久久免费视频| 欧美日韩第一区日日骚| 精品176二区| 亚洲专区中文字幕| 亚洲国产精品一区| 欧美性xxxx图片| 一本色道久久综合亚洲精品按摩| 欧美一区二区三区少妇| 日本免费一区二区三区视频观看| 色综合www| 999香蕉视频| 欧美国产精品v| 91福利免费视频| 九九热这里只有精品免费看| 成人动漫视频| 国产精品丝袜久久久久久消防器材| 97成人超碰视| 天天综合久久综合| 日韩少妇与小伙激情| 日韩精品成人| 99精品在线免费视频| 久久精品免费在线观看| 一区二区不卡视频在线观看| 久热精品在线视频| 国产精品传媒| 波多野结衣天堂| 亚洲欧洲国产日本综合| 丰满肥臀噗嗤啊x99av| 欧美性视频网站| 久久在线免费| 麻豆短视频在线观看| 日韩欧美在线视频日韩欧美在线视频| 91精品专区| 99re国产在线播放| 麻豆9191精品国产| 久久精品亚洲a| 精品电影一区二区三区| 日日av拍夜夜添久久免费| 最新欧美日韩亚洲| 9l国产精品久久久久麻豆| 中文字幕第2页| 国产+成+人+亚洲欧洲| 99成人超碰| 国产高清成人久久| 欧美巨大另类极品videosbest | 在线播放国产精品二区一二区四区| 日本无删减在线| 日韩高清国产一区在线观看| 国产精品系列在线播放| 97在线视频免费| 最新精品在线| 天天色综合天天色| 亚洲狠狠爱一区二区三区| 91电影在线播放| 久久99九九| 国产精品911| 一级特黄aaa大片在线观看|