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

揭露 FileSystem 引起的線上 JVM 內存溢出問題

開發
本文主要介紹了由FileSystem類引起的一次線上內存泄漏導致內存溢出的問題分析解決全過程。

內存泄漏定義(memory leak):一個不再被程序使用的對象或變量還在內存中占有存儲空間,JVM不能正常回收改對象或者變量。一次內存泄漏似乎不會有大的影響,但內存泄漏堆積后的后果就是內存溢出。

內存溢出(out of memory):是指在程序運行過程中,由于分配的內存空間不足或使用不當等原因,導致程序無法繼續執行的一種錯誤,此時就會報錯OOM,即所謂的內存溢出。 

一、背景

周末小葉正在王者峽谷亂殺,手機突然收到大量機器CPU告警,CPU使用率超過80%就會告警,同時也收到該服務的Full GC告警。該服務是小葉項目組非常重要的服務,小葉趕緊放下手中的王者榮耀打開電腦查看問題。

圖片

圖片

圖1.1 CPU告警   Full GC告警

二、問題發現

2.1 監控查看

因為服務CPU和Full GC告警了,打開服務監控查看CPU監控和Full GC監控,可以看到兩個監控在同一時間點都有一個異常凸起,可以看到在CPU告警的時候,Full GC特別頻繁,猜測可能是Full GC導致的CPU使用率上升告警。

圖片

圖2.1 CPU使用率

圖片

圖2.2 Full GC次數  

2.2 內存泄漏

從Full Gc頻繁可以知道服務的內存回收肯定存在問題,故查看服務的堆內存、老年代內存、年輕代內存的監控,從老年代的常駐內存圖可以看到,老年代的常駐內存越來越多,老年代對象無法回收,最后常駐內存全部被占滿,可以看出明顯的內存泄漏。

圖片

圖2.3 老年代內存

圖片

圖2.4 JVM內存


2.3 內存溢出

從線上的錯誤日志也可以明確知道服務最后是OOM了,所以問題的根本原因是內存泄漏導致內存溢出OOM,最后導致服務不可用

圖片


圖2.5 OOM日志    

三、問題排查

3.1 堆內存分析

在明確問題原因為內存泄漏之后,我們第一時間就是dump服務內存快照,將dump文件導入至MAT(Eclipse Memory Analyzer)進行分析。Leak Suspects 進入疑似泄露點視圖。

圖片

圖3.1 內存對象分析

圖片


圖3.2 對象鏈路圖

打開的dump文件如圖3.1所示,2.3G的堆內存   其中 org.apache.hadoop.conf.Configuration對象占了1.8G,占了整個堆內存的78.63%

展開該對象的關聯對象和路徑,可以看到主要占用的對象為HashMap,該HashMap由FileSystem.Cache對象持有,再上層就是FileSystem。可以猜想內存泄漏大概率跟FileSystem有關。

3.2 源碼分析

找到內存泄漏的對象,那么接下來一步就是找到內存泄漏的代碼。

在圖3.3我們的代碼里面可以發現這么一段代碼,在每次與hdfs交互時,都會與hdfs建立一次連接,并創建一個FileSystem對象。但在使用完FileSystem對象之后并未調用close()方法釋放連接。

但是此處的Configuration實例和FileSystem實例都是局部變量,在該方法執行完成之后,這兩個對象都應該是可以被JVM回收的,怎么會導致內存泄漏呢?

圖片

圖3.3

(1)猜想一:FileSystem是不是有常量對象?

接下里我們就查看FileSystem類的源碼,FileSystem的init和get方法如下:

圖片

圖片

圖片

圖3.4

從圖3.4最后一行代碼可以看到,FileSystem類存在一個CACHE,通過disableCacheName控制是否從該緩存拿對象。該參數默認值為false。也就是默認情況下會通過CACHE對象返回FileSystem。

圖片

圖3.5

從圖3.5可以看到CACHE為FileSystem類的靜態對象,也就是說,該CACHE對象會一直存在不會被回收,確實存在常量對象CACHE,猜想一得到驗證。

那接下來看一下CACHE.get方法:

圖片

從這段代碼中可以看出:

  1. 在Cache類內部維護了一個Map,該Map用于緩存已經連接好的FileSystem對象,Map的Key為Cache.Key對象。每次都會通過Cache.Key獲取FileSystem,如果未獲取到,才會繼續創建的流程。
  2. 在Cache類內部維護了一個Set(toAutoClose),該Set用于存放需自動關閉的連接。在客戶端關閉時會自動關閉該集合中的連接。
  3. 每次創建的FileSystem都會以Cache.Key為key,FileSystem為Value存儲在Cache類中的Map中。那至于在緩存時候是否對于相同hdfs URI是否會存在多次緩存,就需要查看一下Cache.Key的hashCode方法了。

Cache.Key的hashCode方法如下:

圖片

schema和authority變量為String類型,如果在相同的URI情況下,其hashCode是一致。而unique該參數的值每次都是0。那么Cache.Key的hashCode就由ugi.hashCode()決定。

由以上代碼分析可以梳理得到:

  1. 業務代碼與hdfs交互過程中,每次交互都會新建一個FileSystem連接,結束時并未關閉FileSystem連接。
  2. FileSystem內置了一個static的Cache,該Cache內部有一個Map,用于緩存已經創建連接的FileSystem。
  3. 參數fs.hdfs.impl.disable.cache,用于控制FileSystem是否需要緩存,默認情況下是false,即緩存。
  4. Cache中的Map,Key為Cache.Key類,該類通過schem,authority,ugi,unique 4個參數來確定一個Key,如上Cache.Key的hashCode方法。

(2)猜想二:FileSystem同樣hdfs URI是不是多次緩存?

FileSystem.Cache.Key構造函數如下所示:ugi由UserGroupInformation的getCurrentUser()決定。

圖片

繼續看UserGroupInformation的getCurrentUser()方法,如下:

圖片

其中比較關鍵的就是是否能通過AccessControlContext獲取到Subject對象。在本例中通過get(final URI uri, final Configuration conf,final String user)獲取時候,在debug調試時,發現此處每次都能獲取到一個新的Subject對象。也就是說相同的hdfs路徑每次都會緩存一個FileSystem對象

猜想二得到驗證:同一個hdfs URI會進行多次緩存,導致緩存快速膨脹,并且緩存沒有設置過期時間和淘汰策略,最終導致內存溢出。

(3)FileSystem為什么會重復緩存?

那為什么會每次都獲取到一個新的Subject對象呢,我們接著往下看一下獲取AccessControlContext的代碼,如下:

圖片

其中比較關鍵的是getStackAccessControlContext方法,該方法調用了Native方法,如下:

圖片

該方法會返回當前堆棧的保護域權限的AccessControlContext對象。

我們通過圖3.6 get(final URI uri, final Configuration conf,final String user) 方法可以看到,如下:

  • 先通過UserGroupInformation.getBestUGI方法獲取了一個UserGroupInformation對象。
  • 然后在通過UserGroupInformation的doAs方法去調用了get(URI uri, Configuration conf)方法
  • 圖3.7 UserGroupInformation.getBestUGI方法的實現,此處關注一下傳入的兩個參數ticketCachePath,user。ticketCachePath是獲取配置hadoop.security.kerberos.ticket.cache.path的值,在本例中該參數未配置,因此ticketCachePath為空。user參數是本例中傳入的用戶名。
  • ticketCachePath為空,user不為空,因此最終會執行圖3.7的createRemoteUser方法

圖片

圖3.6

圖片

圖3.7

圖片

圖3.8

從圖3.8標紅的代碼可以看到在createRemoteUser方法中,創建了一個新的Subject對象,并通過該對象創建了UserGroupInformation對象。至此,UserGroupInformation.getBestUGI方法執行完成。

接下來看一下UserGroupInformation.doAs方法(FileSystem.get(final URI uri, final Configuration conf, final String user)執行的最后一個方法),如下:

圖片

然后在調用Subject.doAs方法,如下:

圖片

最后在調用AccessController.doPrivileged方法,如下:

圖片

該方法為Native方法,該方法會使用指定的AccessControlContext來執行

PrivilegedExceptionAction,也就是調用該實現的run方法。即FileSystem.get(uri, conf)方法。

至此,就能夠解釋在本例中,通過get(final URI uri, final Configuration conf,final String user) 方法創建FileSystem時,每次存入FileSystem的Cache中的Cache.key的hashCode都不一致的情況了。

小結一下:

  1. 在通過get(final URI uri, final Configuration conf,final String user)方法創建FileSystem時,由于每次都會創建新的UserGroupInformationSubject對象。
  2.  在Cache.Key對象計算hashCode時,影響計算結果的是調用了UserGroupInformation.hashCode方法。
  3. UserGroupInformation.hashCode方法,計算為:System.identityHashCode(subject)。即如果Subject是同一個對象則返回相同的hashCode,由于在本例中每次都不一樣,因此計算的hashCode不一致。
  4. 綜上,就導致每次計算Cache.key的hashCode不一致,便會重復寫入FileSystem的Cache。

(4)FileSystem的正確用法

從上述分析,既然FileSystem.Cache都沒有起到應起的作用,那為什么要設計這個Cache呢。其實只是我們的用法沒用對而已。

在FileSystem中,有兩個重載的get方法:

public static FileSystem get(final URI uri, final Configuration conf, final String user)
public static FileSystem get(URI uri, Configuration conf)

圖片

我們可以看到 FileSystem get(final URI uri, final Configuration conf, final String user)方法最后是調用FileSystem get(URI uri, Configuration conf)方法的,區別在于FileSystem get(URI uri, Configuration conf)方法于缺少也就是缺少每次新建Subject的的操作。

圖片

圖3.9

沒有新建Subject的的操作,那么圖3.9 中Subject為null,會走最后的getLoginUser方法獲取loginUser。而loginUser是靜態變量,所以一旦該loginUser對象初始化成功,那么后續會一直使用該對象。UserGroupInformation.hashCode方法將會返回一樣的hashCode值。也就是能成功的使用到緩存在FileSystem的Cache。

圖片

圖片

圖3.10

四、解決方案

經過前面的介紹,如果要解決FileSystem 存在的內存泄露問題,我們有以下兩種方式:

(1)使用public static FileSystem get(URI uri, Configuration conf):

  • 該方法是能夠使用到FileSystem的Cache的,也就是說對于同一個hdfs URI是只會有一個FileSystem連接對象的。
  • 通過System.setProperty("HADOOP_USER_NAME", "hive")方式設置訪問用戶。
  • 默認情況下fs.automatic.close=true,即所有的連接都會通過ShutdownHook關閉。

(2)使用public static FileSystem get(final URI uri, final Configuration conf, final String user):

  • 該方法如上分析,會導致FileSystem的Cache失效,且每次都會添加至Cache的Map中,導致不能被回收。
  • 在使用時,一種方案是:保證對于同一個hdfs URI只會存在一個FileSystem連接對象。
  • 另一種方案是:在每次使用完FileSystem之后,調用close方法,該方法會將Cache中的FileSystem刪除。

圖片

圖片

圖片

基于我們已有的歷史代碼最小改動的前提下,我們選擇了第二種修改方式。在我們每次使用完FileSystem之后都關閉FileSystem對象。

五、優化結果

對代碼進行修復發布上線之后,如下圖一所示,可以看到修復之后老年代的內存可以正常回收了,至此問題終于全部解決。

圖片


圖片

六、總結

內存溢出是 Java 開發中最常見的問題之一,其原因通常是由于內存泄漏導致內存無法正常回收引起的。在我們這篇文章中,詳細介紹一次完整的線上內存溢出的處理過程。

總結一下我們在碰到內存溢出時候的常用解決思路:

(1)生成堆內存文件

在服務啟動命令添加

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/base

讓服務在發生oom時自動dump內存文件,或者使用 jamp 命令dump內存文件。

(2)堆內存分析:使用內存分析工具幫助我們更深入地分析內存溢出問題,并找到導致內存溢出的原因。以下是幾個常用的內存分析工具:

  • Eclipse Memory Analyzer:一款開源的 Java 內存分析工具,可以幫助我們快速定位內存泄漏問題。
  • VisualVM Memory Analyzer:一個基于圖形化界面的工具,可以幫助我們分析java應用程序的內存使用情況。

(3)根據堆內存分析定位到具體的內存泄漏代碼。

(4)修改內存泄漏代碼,重新發布驗證。

內存泄漏是內存溢出的常見原因,但不是唯一原因。常見導致內存溢出問題的原因還是有:超大對象、堆內存分配太小、死循環調用等等都會導致內存溢出問題。

在遇到內存溢出問題時,我們需要多方面思考,從不同角度分析問題。通過我們上述提到的方法和工具以及各種監控幫助我們快速定位和解決問題,提高我們系統的穩定性和可用性。

責任編輯:龐桂玉 來源: vivo互聯網技術
相關推薦

2010-09-26 15:53:25

JVM內存溢出

2021-03-06 10:25:19

內存Java代碼

2021-02-03 15:12:08

java內存溢出

2012-05-15 02:04:22

JVMJava

2010-09-27 11:12:46

MyEclipseJVM內存

2023-08-29 11:38:27

Java內存

2025-06-16 07:40:00

2018-05-15 08:44:44

TensorFlowKeras內存

2022-03-25 09:01:16

CSS溢出屬性

2022-08-05 11:55:13

FlutteriOS

2015-12-28 11:41:57

JVM內存區域內存溢出

2024-01-31 10:11:41

Redis內存

2021-04-21 07:37:19

JVM復盤 日志

2011-08-25 10:50:32

SQL Server數Performance

2023-03-03 12:37:50

JavaJVM內存溢出

2025-01-08 08:47:44

Node.js內存泄露定時器

2020-08-10 17:49:25

JVM內存溢出

2011-11-28 10:50:56

JavaJVM優化

2009-07-06 14:35:26

JVM可用內存JSP

2024-10-10 15:32:51

點贊
收藏

51CTO技術棧公眾號

精品久久久久久中文字幕| 国产一区二区精品久久| 亚洲色图35p| 一本久道综合色婷婷五月| 高清在线观看av| 国内精品伊人久久久久av一坑| 欧美激情影音先锋| 偷拍夫妻性生活| 一区二区三区| 色呦呦在线视频| 激情欧美丁香| 亚洲香蕉成人av网站在线观看| 日韩va在线观看| h片在线观看视频免费| 欧美激情一区二区三区四区| 91成人免费视频| 久久精品视频2| 国产精品chinese| 亚洲欧美日韩中文视频| 三级网站免费看| 97精品国产综合久久久动漫日韩 | 欧美日韩一区二区三区在线 | av手机在线播放| 亚洲精品在线a| 国产精品 欧美精品| 亚洲美女视频一区| 国产日韩欧美亚洲一区| 一区二区三区精彩视频| 乱人伦精品视频在线观看| 欧美成人午夜影院| 成人午夜免费影院| 亚洲日本三级| 亚洲国产精品久久久久秋霞蜜臀| 日韩大片一区二区| 最新日韩精品| 亚洲国产日日夜夜| 日本在线视频www色| 九色视频在线观看免费播放| 成人久久久精品乱码一区二区三区| 国产免费一区二区三区在线能观看| 亚洲伊人成人网| 亚洲经典自拍| 国模精品视频一区二区三区| 波多野结衣家庭教师| 日韩欧美视频| 中文字幕自拍vr一区二区三区| 少妇精品一区二区三区| 欧美电影在线观看完整版| 日韩欧美亚洲国产另类| 一级片免费在线观看视频| 精品女同一区二区三区在线观看| 91久久精品一区二区| 国产一区二区视频免费在线观看| 超碰成人av| 亚洲www啪成人一区二区麻豆 | 一本色道久久综合| 欧美激情在线一区| 精品肉丝脚一区二区三区| 欧美ab在线视频| 久久99亚洲热视| 国产精彩视频在线观看| 亚洲成人资源| 97精品一区二区三区| 黄色一级片免费看| 亚洲欧美日韩国产一区二区| 欧美有码在线观看| 极品国产91在线网站| 视频一区在线播放| 国产精品自拍偷拍视频| 国产免费黄色录像| 国产一区二区精品久久91| 国产高清在线一区| 亚洲欧美日韩综合在线| 成a人片国产精品| 久久国产精品久久精品国产| 久久久久久青草| 欧美激情综合在线| 中文字幕制服丝袜在线| 丁香花高清在线观看完整版| 欧美日韩国内自拍| 美女网站色免费| 电影一区中文字幕| 337p日本欧洲亚洲大胆精品| 素人fc2av清纯18岁| 欧美日韩中文字幕一区二区三区| 久久精品99久久香蕉国产色戒| 中文字幕另类日韩欧美亚洲嫩草| 激情欧美丁香| 国产精品欧美激情在线播放| av一级黄色片| 99久久综合色| 一区二区三区偷拍| 7777kkk亚洲综合欧美网站| 一本色道亚洲精品aⅴ| 在线观看国产福利| 国产精品午夜av| 一区二区在线免费视频| a级片在线观看免费| 国产精品探花在线观看| 欧美插天视频在线播放| www.国产一区二区| 国产精品亚洲成人| 免费久久99精品国产自| av中文字幕在线播放| 欧美日韩午夜激情| 污污视频在线免费| 精品久久久久久久久久久下田| 欧美大尺度在线观看| 国语对白永久免费| 国产suv精品一区二区三区| 日本不卡一区| 草莓视频丝瓜在线观看丝瓜18| 91福利精品视频| 国产伦理在线观看| 四虎成人精品永久免费av九九| 羞羞色国产精品| 国产精品嫩草影院精东| 久久久99精品免费观看| av网站手机在线观看| 成人噜噜噜噜| 在线观看精品自拍私拍| 久久久久久久极品| 国产成人精品一区二区三区四区| 亚洲国产精品123| 一区一区三区| 亚洲а∨天堂久久精品喷水| 永久免费看片直接| 日韩在线一二三区| 久久99精品久久久久久久青青日本| av免费在线观| 欧美日韩精品一区二区在线播放| 蜜桃精品成人影片| 亚洲第一精品影视| 999热视频| 午夜伦全在线观看| 欧美中文字幕一二三区视频| 波多野结衣福利| 亚洲精选国产| 精品视频免费观看| 成人福利影视| 精品免费一区二区三区| 欧美三级免费看| 国产在线播精品第三| 亚洲午夜在线观看| 欧美××××黑人××性爽| 亚洲精品国产综合区久久久久久久| 久草视频免费在线播放| 精品综合久久久久久8888| 亚洲狠狠婷婷综合久久久| av在线不卡精品| 在线日韩av观看| 中文字幕 人妻熟女| 国产情人综合久久777777| 国产精彩免费视频| 精品国产精品久久一区免费式| 日本成人免费在线| 黄色在线观看网| 日本韩国欧美三级| 四虎成人免费影院| 免费观看在线色综合| 一级特黄录像免费播放全99| 亚洲成人精品综合在线| 欧美xxxx做受欧美| 黑人精品一区二区| 精品久久久久久久久久ntr影视| www.日本高清| 久久一日本道色综合久久| 日韩在线导航| 未满十八勿进黄网站一区不卡| 日韩小视频在线观看| 国产孕妇孕交大片孕| 亚洲综合在线视频| 国产毛片毛片毛片毛片毛片毛片| 国产精品毛片在线| 日日骚一区二区网站| 成人免费观看49www在线观看| 欧美国产日产韩国视频| 天堂av资源网| 欧美在线观看18| 精品自拍偷拍视频| 成人毛片视频在线观看| 爆乳熟妇一区二区三区霸乳| 亚洲精品91| 九九九久久久| 日韩电影免费观看高清完整版在线观看| 久久精品视频播放| 色婷婷av一区二区三区之e本道| 一本大道久久a久久综合| 女人裸体性做爰全过| 国产精品亚洲а∨天堂免在线| ww国产内射精品后入国产| 精品国产一区探花在线观看| 亚洲一区二区中文字幕| 在线观看v片| 久久精品99久久久香蕉| 神马亚洲视频| 91精品国产综合久久精品图片| 国产午夜福利一区二区| 日本一区二区三区久久久久久久久不 | 亚洲第一会所001| 日韩中文字幕视频在线| 性生交大片免费看女人按摩| 色综合视频在线观看| 国产一二三四区| 国产午夜精品一区二区三区嫩草| 亚洲av无日韩毛片久久| 免费看的黄色欧美网站| 成人手机在线播放| 欧洲杯半决赛直播| 国产精品入口免费| 久久亚洲精精品中文字幕| 国产不卡av在线免费观看| 欧美女同一区| 精品国产拍在线观看| 男男电影完整版在线观看| 日韩欧美成人午夜| 91精品视频免费在线观看 | 色婷婷av一区二区三区在线观看 | 亚洲系列中文字幕| 天堂在线资源8| 欧美一区二区三区四区五区| 最新国产中文字幕| 欧美日韩一区二区在线播放| 激情五月少妇a| 国产精品国产三级国产普通话蜜臀| 99久久国产精| www.日本不卡| av在线网站免费观看| 久久99精品久久久久久| 少妇高清精品毛片在线视频| 亚洲毛片av| 日韩欧美精品免费| 欧美日韩午夜| 在线观看18视频网站| 99久久精品国产亚洲精品 | 欧美日韩黄色大片| 国产午夜福利片| 亚洲电影激情视频网站| 国产又黄又爽又无遮挡| 国产精品久久99| 久久精品三级视频| 国产精品视频第一区| 国产又粗又黄又猛| 欧美经典一区二区| 麻豆一区在线观看| 国产精品视频九色porn| 91香蕉视频污在线观看| 中国色在线观看另类| xxxx日本黄色| 国产精品天干天干在线综合| 久久久久久久久福利| 国产亚洲福利社区一区| 免费看污片的网站| 亚洲国产精品成人综合色在线婷婷| 国产又粗又猛又爽视频| 久久天天做天天爱综合色| a级大片在线观看| 久久久久99精品一区| 女女互磨互喷水高潮les呻吟| 国产三级精品三级| 中文字幕91视频| 有坂深雪av一区二区精品| 久久久久久久久久久久久女过产乱| 亚洲欧美另类久久久精品2019| www.99re7| 亚洲午夜久久久久中文字幕久| 日本少妇激情视频| 日韩欧美国产黄色| 日韩久久久久久久久久| 9191国产精品| 亚洲精品一区二区三区四区| 日韩第一页在线| av大全在线免费看| 久久亚洲精品网站| av免费不卡| 国产精品美女主播| 国产精品xnxxcom| 国产青春久久久国产毛片| 香蕉视频一区| 香蕉精品视频在线| 国内久久视频| 99视频精品免费| 国产米奇在线777精品观看| 亚洲女则毛耸耸bbw| 久久久三级国产网站| 久久一级免费视频| 午夜久久福利影院| 国产天堂第一区| 欧美α欧美αv大片| 日韩在线免费看| 日韩中文字幕网址| 高清精品在线| 成人在线观看视频网站| 久久人人爽人人爽人人片av不| 视频一区亚洲| 伊人激情综合| 久久国产激情视频| 97精品视频在线观看自产线路二| 青青草自拍偷拍| 久久狠狠一本精品综合网| 国产日韩欧美在线视频观看| 精品国产亚洲一区二区三区在线| 久久精品综合一区| 91精品国偷自产在线电影 | a√中文在线观看| 国产一区深夜福利| 伊人久久大香线蕉av不卡| 91传媒免费视频| 免费人成网站在线观看欧美高清| 黑人玩弄人妻一区二区三区| 欧美国产1区2区| 激情五月色婷婷| 欧美一区二区网站| yw在线观看| 97久久久久久| 亚洲第一二区| 中文字幕在线亚洲三区| 亚洲欧美清纯在线制服| 国产一级免费片| 亚洲男女毛片无遮挡| 性色av一区二区三区四区| 亚洲国产精品va在线看黑人 | 亚洲欧美另类久久久精品2019| 亚洲图片欧美日韩| 日韩成人黄色av| 欧美1—12sexvideos| 91精品视频在线看| 日韩不卡一区| 久久久久免费精品| 久久久亚洲精品一区二区三区 | 91久久人澡人人添人人爽欧美| 日本免费网站在线观看| 欧美日韩电影在线观看| 视频欧美精品| 亚洲在线观看一区| 麻豆精品视频在线观看视频| 中文字幕欧美激情极品| 色哟哟国产精品| 天堂av在线播放| 69**夜色精品国产69乱| 国产劲爆久久| 国产女主播自拍| 成人动漫一区二区在线| 国产精品二区一区二区aⅴ| 精品国内二区三区| 欧洲黄色一区| 肥熟一91porny丨九色丨| 亚洲天堂久久| 国产xxxxxxxxx| 欧美性感美女h网站在线观看免费| 人妻精品一区二区三区| 亚洲97在线观看| 偷窥自拍亚洲色图精选| 欧美三级午夜理伦三级| 久久久午夜精品理论片中文字幕| 天堂av免费在线观看| 中日韩美女免费视频网站在线观看| 韩国精品主播一区二区在线观看| 性欧美大战久久久久久久免费观看| 热久久久久久久| 五月婷婷综合激情网| 日韩一级片网站| gogo高清在线播放免费| 久久99精品久久久久久三级 | 亚洲成国产人片在线观看| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 亚洲香蕉伊综合在人在线视看| 国产精品亚洲一区二区三区在线观看| 神马一区二区影院| 精品一区二区三区免费观看| 国产97免费视频| 亚洲电影在线看| 日韩精品99| 老司机av福利| 成人免费视频视频| 国产一卡二卡三卡| zzijzzij亚洲日本成熟少妇| 97久久综合区小说区图片区| 黄页网站大全在线观看| 久久久国产精品午夜一区ai换脸| 一级全黄少妇性色生活片| 欧美日韩国产成人在线| 欧美丝袜足交| 亚洲色图 在线视频| 一级日本不卡的影视| 日本成人一区| 成人黄色网免费| 一区二区高清| 国产馆在线观看| 精品国产三级电影在线观看| 国产精品扒开腿做爽爽爽视频软件| 欧美日韩视频免费在线观看| 成人av在线播放网址| 精品国产www| 97精品久久久| 99热精品久久| 法国伦理少妇愉情| 日韩亚洲电影在线| 成人激情视屏| 亚洲人成无码网站久久99热国产|