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

記一次 Java 應用內存泄漏的定位過程

開發 后端
最近,筆者負責測試的某個算法模塊機器出現大量報警,報警表現為機器CPU持續高占用。

 [[418418]]

問題現象

最近,筆者負責測試的某個算法模塊機器出現大量報警,報警表現為機器CPU持續高占用。該算法模塊是一個優化算法,本身就是CPU密集型應用,一開始懷疑可能是算法在正常運算,但很快這種猜測就被推翻:同算法同學確認后,該算法應用只使用了一個核心,而報警時,一個算法進程占用了服務機器的全部8個核心,這顯然不是正常計算造成的。

定位步驟

首先按照CPU問題的定位思路進行定位,對 Java 調用堆棧進行分析:

    1.  使用top -c 查看 CPU 占用高的進程:   

,從 top 命令的結果看,19272 號進程 CPU 占用率最高,基本確定問題是該進程引起,可以從 Command 欄看到這正是算法模塊程序,注意圖是線下4C機器上復現時的截圖。

    2.  使用ps -mp pid -o THREAD,tid,time命令定位問題線程。 

  1. ps -mp 19272 -o THREAD,tid,time  
  2.   USER     %CPU PRI SCNT WCHAN  USER SYSTEM   TID     TIME  
  3.   USER    191   -    - -         -      -     - 00:36:54  
  4.   USER    0.0  19    - futex_    -      - 19272 00:00:00  
  5.   USER   68.8  19    - futex_    -      - 19273 00:13:18  
  6.   USER   30.2  19    - -         -      - 19274 00:05:50  
  7.   USER   30.2  19    - -         -      - 19275 00:05:50  
  8.   USER   30.2  19    - -         -      - 19276 00:05:50  
  9.   USER   30.1  19    - -         -      - 19277 00:05:49  
  10.   USER    0.4  19    - futex_    -      - 19278 00:00:05  
  11.   USER    0.0  19    - futex_    -      - 19279 00:00:00  
  12.   USER    0.0  19    - futex_    -      - 19280 00:00:00  
  13.   USER    0.0  19    - futex_    -      - 19281 00:00:00  
  14.   USER    0.4  19    - futex_    -      - 19282 00:00:04  
  15.   USER    0.3  19    - futex_    -      - 19283 00:00:03  
  16.   USER    0.0  19    - futex_    -      - 19284 00:00:00  
  17.   USER    0.0  19    - futex_    -      - 19285 00:00:00  
  18.   USER    0.0  19    - futex_    -      - 19286 00:00:00  
  19.   USER    0.0  19    - skb_wa    -      - 19362 00:00:00 

從結果可以看到,出現問題的線程主要是 19273-19277。

    3.  使用jstack查看出現問題的線程堆棧信息。

由于 jstack 使用的線程號是十六進制,因此需要先把線程號從十進制轉換為十六進制。 

  1. $ printf "%x\n" 19273  
  2. 4b49 
  3. $ jstack 12262 |grep -A 15 4b49  
  4. "main" #1 prio=5 os_prio=0 tid=0x00007f98c404c000 nid=0x4b49 runnable [0x00007f98cbc58000]  
  5. java.lang.Thread.State: RUNNABLE  
  6.     at java.util.ArrayList.iterator(ArrayList.java:840)  
  7.     at optional.score.MultiSkuDcAssignmentEasyScoreCalculator.updateSolution(MultiSkuDcAssignmentEasyScoreCalculator.java:794)  
  8.     at optional.score.MultiSkuDcAssignmentEasyScoreCalculator.calculateScore(MultiSkuDcAssignmentEasyScoreCalculator.java:80)  
  9.     at optional.score.MultiSkuDcAssignmentEasyScoreCalculator.calculateScore(MultiSkuDcAssignmentEasyScoreCalculator.java:17)  
  10.     at org.optaplanner.core.impl.score.director.easy.EasyScoreDirector.calculateScore(EasyScoreDirector.java:60)  
  11.     at org.optaplanner.core.impl.score.director.AbstractScoreDirector.doAndProcessMove(AbstractScoreDirector.java:188)  
  12.     at org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.doMove(LocalSearchDecider.java:132)  
  13.     at org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.decideNextStep(LocalSearchDecider.java:116)  
  14.     at org.optaplanner.core.impl.localsearch.DefaultLocalSearchPhase.solve(DefaultLocalSearchPhase.java:70)  
  15.     at org.optaplanner.core.impl.solver.AbstractSolver.runPhases(AbstractSolver.java:88)  
  16.     at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:191)  
  17.     at app.DistributionCenterAssignmentApp.main(DistributionCenterAssignmentApp.java:61)  
  18. "VM Thread" os_prio=0 tid=0x00007f98c419d000 nid=0x4b4e runnable 
  19. "GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f98c405e800 nid=0x4b4a runnable  
  20. "GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f98c4060800 nid=0x4b4b runnable  
  21. "GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f98c4062800 nid=0x4b4c runnable  
  22. "GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f98c4064000 nid=0x4b4d runnable  
  23. "VM Periodic Task Thread" os_prio=0 tid=0x00007f98c4240800 nid=0x4b56 waiting on condition 

可以看到,除了 0x4b49 線程是正常工作線程,其它都是 gc 線程。

此時懷疑:是頻繁 GC 導致的 CPU 被占滿。

我們可以使用 jstat 命令查看 GC 統計: 

  1. $ jstat -gcutil 19272 2000 10  
  2. S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT  
  3. 0.00   0.00  22.71 100.00  97.16  91.53   2122   19.406   282  809.282  828.688  
  4. 0.00   0.00 100.00 100.00  97.16  91.53   2122   19.406   283  809.282  828.688  
  5. 0.00   0.00  92.46 100.00  97.16  91.53   2122   19.406   283  812.730  832.135  
  6. 0.00   0.00 100.00 100.00  97.16  91.53   2122   19.406   284  812.730  832.135  
  7. 0.00   0.00 100.00 100.00  97.16  91.53   2122   19.406   285  815.965  835.371  
  8. 0.00   0.00 100.00 100.00  97.16  91.53   2122   19.406   285  815.965  835.371  
  9. 0.00   0.00 100.00 100.00  97.16  91.53   2122   19.406   286  819.492  838.898  
  10. 0.00   0.00 100.00 100.00  97.16  91.53   2122   19.406   286  819.492  838.898  
  11. 0.00   0.00 100.00 100.00  97.16  91.53   2122   19.406   287  822.751  842.157  
  12. 0.00   0.00  30.78 100.00  97.16  91.53   2122   19.406   287  825.835  845.240 

重點關注一下幾列:

YGC:年輕代垃圾回收次數

YGCT:年輕代垃圾回收消耗時間

FGC:老年代垃圾回收次數

FGCT:老年代垃圾回收消耗時間

GCT:垃圾回收消耗總時間

可以看到,20s 的時間中進行了 5 次 full GC,僅僅耗費在 GC 的時間已經到了 17s。

    1.  增加啟動參數,展示詳細 GC 過程。通過增加 jvm 參數,更快暴露 GC 問題,并展示 GC 詳細過程java -Xmx1024m -verbose:gc。 

  1. [Full GC (Ergonomics)  1046527K->705881K(1047552K), 1.8974837 secs]  
  2. [Full GC (Ergonomics)  1046527K->706191K(1047552K), 2.5837756 secs]  
  3. [Full GC (Ergonomics)  1046527K->706506K(1047552K), 2.6142270 secs]  
  4. [Full GC (Ergonomics)  1046527K->706821K(1047552K), 1.9044987 secs]  
  5. [Full GC (Ergonomics)  1046527K->707130K(1047552K), 2.0856625 secs]  
  6. [Full GC (Ergonomics)  1046527K->707440K(1047552K), 2.6273944 secs]  
  7. [Full GC (Ergonomics)  1046527K->707755K(1047552K), 2.5668877 secs]  
  8. [Full GC (Ergonomics)  1046527K->708068K(1047552K), 2.6924427 secs]  
  9. [Full GC (Ergonomics)  1046527K->708384K(1047552K), 3.1084132 secs]  
  10. [Full GC (Ergonomics)  1046527K->708693K(1047552K), 1.9424100 secs]  
  11. [Full GC (Ergonomics)  1046527K->709007K(1047552K), 1.9996261 secs]  
  12. [Full GC (Ergonomics)  1046527K->709314K(1047552K), 2.4190958 secs]  
  13. [Full GC (Ergonomics)  1046527K->709628K(1047552K), 2.8139132 secs]  
  14. [Full GC (Ergonomics)  1046527K->709945K(1047552K), 3.0484079 secs]  
  15. [Full GC (Ergonomics)  1046527K->710258K(1047552K), 2.6983539 secs] 
  16. [Full GC (Ergonomics)  1046527K->710571K(1047552K), 2.1663274 secs] 

至此基本可以確定,CPU 高負載的根本原因是內存不足導致頻繁 GC。

根本原因

雖然我們經過上面的分析可以知道,是頻繁 GC 導致的 CPU 占滿,但是并沒有找到問題的根本原因,因此也無從談起如何解決。GC 的直接原因是內存不足,懷疑算法程序存在內存泄漏。

為什么會內存泄漏

雖然 Java 語言天生就有垃圾回收機制,但是這并不意味著 Java 就沒有內存泄漏問題。

正常情況下,在 Java 語言中如果一個對象不再被使用,那么 Java 的垃圾回收機制會及時把這些對象所占用的內存清理掉。但是有些情況下,有些對象雖然不再被程序使用,但是仍然有引用指向這些對象,所以垃圾回收機制無法處理。隨著這些對象占用內存數量的增長,最終會導致內存溢出。

Java 的內存泄漏問題比較難以定位,下面針對一些常見的內存泄漏場景做介紹:

    1.  持續在堆上創建對象而不釋放。例如,持續不斷的往一個列表中添加對象,而不對列表清空。這種問題,通??梢越o程序運行時添加 JVM 參數-Xmx 指定一個較小的運行堆大小,這樣可以比較容易的發現這類問題。

    2. 不正 所有的靜態變量。

    3.  對大 String 對象調用 String.intern()方法,該方法會從字符串常量池中查詢當前字符串是否存在,若不存在就會將當前字符串放入常量池中。而在 jdk6 之前,字符串常量存儲在 PermGen 區的,但是默認情況下 PermGen 區比較小,所以較大的字符串調用此方法,很容易會觸發內存溢出問題。

    4.  打開的輸入流、連接沒有爭取關閉。由于這些資源需要對應的內存維護狀態,因此不關閉會導致這些內存無法釋放。

如何進行定位

以上介紹了一些常見的內存泄漏場景,在實際的問題中還需要針對具體的代碼進行確定排查。下面結合之前的頻繁 GC 問題,講解一下定位的思路,以及相關工具的使用方法。

線上定位

對于線上服務,如果不能開啟 Debug 模式,那么可用的工具較少。推薦方式:

使用 top -c 命令查詢 Java 高內存占用程序的進程 pid。然后使用 jcmd 命令獲取進程中對象的計數、內存占用信息。 

  1. $ jcmd 24600 GC.class_histogram |head -n 10  
  2. 24600:  
  3.  num     #instances         #bytes  class name  
  4. ----------------------------------------------  
  5.    1:       2865351      103154208  [J  
  6.    2:       1432655       45844960  org.optaplanner.core.impl.localsearch.scope.LocalSearchMoveScope  
  7.    3:       1432658       34383792  org.optaplanner.core.api.score.buildin.bendablelong.BendableLongScore  
  8.    4:       1193860       28652640  org.optaplanner.core.impl.heuristic.selector.move.generic.ChangeMove  
  9.    5:        241961       11986056  [Ljava.lang.Object;  
  10.    6:        239984        5759616  java.util.ArrayList 

結果中,#instances 為對象數量,#bytes 為占用內存大小,單位是 byte,class name 為對應的類名。

排名第一的是 Java 原生類型,實際上是 long 類型。

另外,要注意的是結果中的類可能存在包含關系,例如一個類中含有多個 long 類型數據,那 long 對應的計數也會增加,所以我們要排除一些基本類型,它們可能是我們程序中使用導致的計數增加,重點關注我們程序中的類。

如果僅僅有 jcmd 的結果,其實很難直接找到問題的根本原因。如果問題不能在線下復現,我們基本上只能針對計數較多的類名跟蹤變量的數據流,重點關注 new 對象附近的代碼邏輯。觀察代碼邏輯時,重點考慮上述幾種常見內存泄漏場景。

線下定位

如果內存泄漏問題可以在線下復現,那么問題定位的工具就比較豐富了。下面主要推薦的兩種工具,VisualVM & IDEA。

這里主要講一下IDEA調試定位思路:

使用 IDEA 調試器定位內存泄漏問題

如果以上過程依然不能有效的分析出問題的根本原因,還可以使用 IDEA 的調試功能進行定位。

配置好程序的運行參數,正常復現問題之后,對程序打斷點并逐步追蹤。

重點關注的是程序需要大量運行時間的代碼部分,我們可以使用調試暫停功能獲得一個內存快照。

然后在此運行并暫停,這時候在調試的 Memory 視圖中可以看到哪些類在快速增加?;旧峡梢詳喽▎栴}的原因是兩次運行中 new 該對象的語句。

定位結果

經過上述定位步驟,最終發現問題的根本原因,在求解器的 LocalSearch 階段,如果使用了禁忌搜索(Tabu Search)策略,并且長時間找不到更好的解,會不斷把當前經歷過的解加到禁忌表中。對應的代碼部分,finalListScore 是一個 list,在 55 行代碼不斷的添加 moveScope 對象,導致了內存泄漏:

解決方案

在求解器該處代碼對 finalListScore 進行長度限制,添加對象前發現達到了上限就清空,徹底避免內存泄漏的發生。由于出問題的是一個開源求解器框架:optaplanner,為了方便以后維護,按照開源項目貢獻流程,把改fix提PR給項目即可,如何給開源項目提PR可以參考社區文章:https://testerhome.com/topics/2114

細節參考PR鏈接:https://github.com/kiegroup/optaplanner/pull/726。

項目維護者從代碼維護的角度沒有接受這個PR,但是使用了類似的fix思路最終修復了這個存在了幾年bug:https://github.com/kiegroup/optaplanner/pull/763。

最后,算法模塊升級到最新版本的optaplanner依賴即可修復該問題。 

責任編輯:龐桂玉 來源: JAVA高級架構
相關推薦

2022-02-08 17:17:27

內存泄漏排查

2021-11-02 07:54:41

內存.NET 系統

2022-09-13 17:46:19

STA模式內存

2018-09-14 10:48:45

Java內存泄漏

2021-02-11 14:06:38

Linux內核內存

2022-01-10 09:31:17

Jetty異步處理seriesbaid

2023-10-10 12:05:45

2017-12-19 14:00:16

數據庫MySQL死鎖排查

2019-08-26 09:50:09

2023-01-04 18:32:31

線上服務代碼

2021-12-02 07:50:30

NFS故障內存

2020-11-02 09:48:35

C++泄漏代碼

2017-11-09 16:07:00

Web應用內存

2021-11-23 21:21:07

線上排查服務

2021-02-01 09:00:34

Ceph octopu集群運維

2017-09-22 10:16:16

MySQL數據庫用戶數據

2011-08-08 13:31:44

數據分析數據倉庫

2019-02-20 09:29:44

Java內存郵件

2022-10-09 10:47:37

NET視覺軟件

2020-08-27 21:36:50

JVM內存泄漏
點贊
收藏

51CTO技術棧公眾號

色狠狠综合天天综合综合| 99久久精品免费看| 久久天堂电影网| 蜜桃视频无码区在线观看| 激情黄产视频在线免费观看| 国产亚洲综合在线| 亚洲bt天天射| 天天干在线播放| 正在播放日韩欧美一页| 亚洲国产日韩欧美在线99| 久久撸在线视频| 国产第一页在线| 国产精品视频你懂的| 成人9ⅰ免费影视网站| 国产精品第六页| 伊人影院久久| 久久亚洲精品成人| 国产熟女一区二区| 精品国产一区二区三区成人影院 | 国产亚洲精品久久久久久打不开| 曰本一区二区三区视频| 精品国一区二区三区| 亚洲欧美自拍另类日韩| 欧美极品videos大乳护士| 亚洲蜜臀av乱码久久精品蜜桃| 茄子视频成人在线观看 | www.日本久久久久com.| 亚洲一区二区三区四区五区六区| 国产精品日韩精品在线播放| 日本韩国一区二区三区| 九色在线视频观看| 欧美亚洲天堂| 亚洲欧美日韩国产一区二区三区 | 欧美 日韩 国产一区二区在线视频| 亚洲天堂网在线观看| 亚洲av成人片色在线观看高潮 | 久久久久久九九九九| 午夜精品久久久久久久第一页按摩 | 一区二区三区.www| 中文字幕一区二区三区有限公司 | 欧美激情综合五月色丁香小说| 九九99久久| 日本久久一级片| 成人午夜精品在线| 丁香五月网久久综合| www黄色网址| 国产激情一区二区三区四区| 成人国产精品久久久| ,亚洲人成毛片在线播放| 日本中文在线一区| 国产精品白丝jk喷水视频一区| 波多野结衣国产| 亚洲一区区二区| 高清视频欧美一级| 欧美精品亚洲精品日韩精品| 在线欧美一区| 91精品国产91久久久久福利| 免费在线观看黄网站| 午夜亚洲影视| 国产精品久久久久免费a∨| 国产一级片免费视频| 免费在线观看成人| 成人精品视频在线| www.com欧美| 不卡高清视频专区| 欧美精品人人做人人爱视频| 九一国产在线| 国产精品二三区| 亚洲精品偷拍视频| 牛牛电影国产一区二区| 亚洲aaa精品| 日本精品一区二区三区四区| 亚洲成人不卡| 欧美精品1区2区3区| av漫画在线观看| 美女亚洲一区| www.日韩av.com| 九九热精彩视频| 亚洲一区国产一区| 国产日韩精品综合网站| 亚洲成人一二三区| 久久精品人人做人人爽人人| 一区二区不卡在线观看| 爱情岛论坛亚洲品质自拍视频网站| 调教+趴+乳夹+国产+精品| 无码日韩人妻精品久久蜜桃| 一级欧美视频| 日韩电影大片中文字幕| 国产又粗又长免费视频| 亚洲天堂偷拍| 国产精品一区二区在线| 欧美特黄一级视频| 国产精品久久久久桃色tv| 97久久国产亚洲精品超碰热| 成人自拍av| 欧美tickling挠脚心丨vk| 成人免费看aa片| 亚洲综合自拍| 国产精品高精视频免费| 亚洲精品国产精| 欧美激情一区二区在线| 欧美视频免费看欧美视频| 青青国产精品| 亚洲欧美国产精品久久久久久久 | 91黄视频在线| 91成人在线观看喷潮蘑菇| 日韩av大片| 国产91精品久久久| 成人高潮片免费视频| 国产女主播一区| 欧美,日韩,国产在线| 欧洲精品久久久久毛片完整版| 日韩av在线高清| a在线视频播放观看免费观看| 日韩黄色一级片| 久久久久久一区| 久久www人成免费看片中文| 欧美欧美午夜aⅴ在线观看| 色婷婷av777| 国产精品红桃| 亚洲va久久久噜噜噜久久天堂| 精品999视频| 欧美午夜www高清视频| 亚洲美女精品视频| 一区二区三区网站| 国产有码一区二区| 在线观看麻豆| 91黄视频在线| 久久久久久国产免费a片| 性久久久久久| 另类小说综合网| www视频在线观看| 亚洲国产高清高潮精品美女| 黄色一级免费视频| 国产呦精品一区二区三区网站| 亚洲欧美国产一区二区| 忘忧草在线www成人影院| 亚洲精选中文字幕| 老熟妇仑乱一区二区av| 久久一日本道色综合| 18岁网站在线观看| 日韩三级视频| 热久久99这里有精品| 日本人妖在线| 色婷婷久久99综合精品jk白丝| 性欧美成人播放77777| 午夜一区不卡| 色一情一乱一伦一区二区三欧美| 韩国美女久久| 这里只有视频精品| 一区二区视频网站| 成人免费在线播放视频| www.五月天色| 中文不卡在线| 国产在线一区二区三区播放| 国产福利片在线观看| 日韩精品免费一线在线观看| 日本特级黄色片| 国产丝袜美腿一区二区三区| 国产又大又黄又粗的视频| 成人免费a**址| 亚洲aa在线观看| 91九色在线播放| 亚洲男人天堂九九视频| 最近中文字幕在线免费观看| 国产精品久久久久久亚洲伦| 国内av一区二区| 国产综合色产| 欧美精品一区二区三区在线看午夜| 久久爱91午夜羞羞| 久久久91精品国产| 色屁屁草草影院ccyycom| 一本色道久久综合精品竹菊| 久久视频一区二区三区| 国产精品亚洲专一区二区三区| 国产精品成人久久电影| 国产一区二区三区电影在线观看| 国产日本欧美一区二区三区| 青草在线视频在线观看| 国产视频久久久| 91国产精品一区| 午夜精品福利久久久| 日韩影视一区二区三区| 国产精品一区二区三区99| 国产精品裸体瑜伽视频| 欧美一区2区| 99爱精品视频| 国产成人精品亚洲日本在线观看| 久久影院免费观看| 日本a一级在线免费播放| 7777精品伊人久久久大香线蕉 | 亚洲一区二区三区精品在线观看| 欧美大片91| 国产精品草莓在线免费观看| 欧美草逼视频| 中文字幕视频一区二区在线有码| 黄色片一区二区三区| 欧美日韩一区二区三区视频| 日本三级视频在线| 国产精品国产三级国产专播品爱网 | 免费观看美女裸体网站| 色喇叭免费久久综合| 国产一区二区三区奇米久涩 | 久久av在线| 日本黄大片在线观看| 日韩一区欧美| 欧美日韩一区在线视频| 中文一区二区三区四区| 91精品久久久久久久久不口人| 校园春色亚洲| 欧美高清在线播放| 老司机99精品99| 亚洲最新av在线网站| 日韩性xxxx| 日韩三级.com| 国产精品视频久久久久久| 色猫猫国产区一区二在线视频| 久久久久久久久久99| 亚洲欧美一区二区视频| 精品人妻中文无码av在线| 波多野结衣一区二区三区| 91人妻一区二区三区| 麻豆精品国产传媒mv男同| 黄色片视频在线播放| 国产欧美日韩一级| 蜜臀av色欲a片无码精品一区 | 久草热视频在线观看| 欧美1区2区视频| 午夜在线视频免费观看| 日产精品一区二区| 亚洲bbw性色大片| 久久爱www成人| 欧美激情视频一区二区三区| 精品自拍偷拍| 精品国产区在线| 全球av集中精品导航福利| 国产一区再线| 免费福利视频一区| 久久精品人人做人人爽电影| 黄色美女久久久| 国产欧美日韩综合精品二区| 99久久人爽人人添人人澡 | 一区二区三区日韩| 免费在线一级片| 亚洲国产视频a| 国产精品成人aaaa在线| 亚洲一区欧美一区| 国产一级做a爱免费视频| 亚洲国产日日夜夜| 亚洲视频免费播放| 欧美日韩亚洲精品内裤| 婷婷激情五月网| 色婷婷综合五月| 亚洲大尺度在线观看| 精品视频一区 二区 三区| 国产又粗又猛又爽| 91精品国产欧美一区二区成人| av网站免费大全| 亚洲国产又黄又爽女人高潮的| 亚洲男女视频在线观看| 日韩精品在线视频美女| 韩国福利在线| 久久国产精彩视频| 国产剧情av在线播放| 国产精品igao视频| 亚洲伊人伊成久久人综合网| 国产精品一区二区免费| 美女久久久久| 亚洲精品偷拍视频| 亚洲国产高清一区| 狠狠热免费视频| 国产麻豆成人精品| 国产麻豆天美果冻无码视频| 国产欧美日韩中文久久| 日韩一级片av| 欧美日韩中文字幕| 一卡二卡在线视频| 精品国产91乱码一区二区三区| 免费在线视频你懂得| 久久精品99久久久久久久久| 91精品国产黑色瑜伽裤| 国产精品无码专区在线观看| 在线视频亚洲欧美中文| 日本三级中国三级99人妇网站| 亚洲中无吗在线| 精品久久久久久久免费人妻| 国产在线播放一区三区四| 中文字幕一二三四区| 亚洲精品自拍动漫在线| 国产又大又黄又粗| 日韩网站在线看片你懂的| 欧美xxx.com| 欧美国产日本高清在线 | 欧美精品在线一区| 在线国产一区| 亚洲 欧美 日韩系列| 成人精品电影在线观看| 青青青视频在线播放| 午夜精品国产更新| www.久久精品.com| 最近2019中文字幕大全第二页| 男人天堂亚洲| 成人免费网站在线观看| 九色精品91| 18禁网站免费无遮挡无码中文| 麻豆一区二区99久久久久| 久久久老熟女一区二区三区91| 中文字幕一区二区三区四区| 三级视频在线观看| 亚洲大胆人体视频| 久久亚洲天堂| 国产精品久久久久久久久| 婷婷精品在线观看| 欧美图片激情小说| 国产剧情一区二区| 午夜三级在线观看| 欧美亚洲动漫另类| 黄色片视频在线观看| 日本国产一区二区三区| 久久久久久毛片免费看| 日韩中文字幕在线不卡| 韩国三级电影一区二区| 一本在线免费视频| 在线精品亚洲一区二区不卡| 日色在线视频| 91av视频在线观看| 日韩免费电影在线观看| 亚洲 欧美 日韩 国产综合 在线| 高清不卡一区二区| 国产精品九九九九九九| 欧美一区二区在线视频| h片在线免费观看| 成人福利在线视频| 久久久久久久久久久妇女| 久热精品在线播放| 国产精品网友自拍| 在线观看免费黄色小视频| 尤物tv国产一区| yy6080久久伦理一区二区| 色综合久久av| 久久超碰97中文字幕| 少妇太紧太爽又黄又硬又爽小说 | 丰满少妇一级片| 欧美精品久久久久久久久久| 国产成人在线中文字幕| 野外做受又硬又粗又大视频√| heyzo一本久久综合| 欧美精品亚洲精品日韩精品| 精品无码久久久久久国产| 樱桃视频成人在线观看| 日韩精品久久一区二区三区| 日韩精品三区四区| 一本一本久久a久久| 欧美一区二区三区白人| 免费电影视频在线看| 国产视色精品亚洲一区二区| 国产精品亚洲综合色区韩国| xxx在线播放| 欧美日韩一卡二卡三卡| 国产秀色在线www免费观看| 亚洲aⅴ日韩av电影在线观看 | 国产精品视频中文字幕| 亚洲视频在线一区二区| 亚洲第一免费视频| 国产91精品久久久久久| 久久免费av| 中国特级黄色片| 日韩欧美aⅴ综合网站发布| h视频在线免费| 99在线视频首页| 午夜在线视频观看日韩17c| 国精产品一区一区| 日韩欧美激情一区| 户外露出一区二区三区| 香蕉精品视频在线| 99视频热这里只有精品免费| 黄色av网站免费| 欧美成人午夜影院| 亚欧洲精品视频在线观看| 日本人69视频| 亚洲成人一区二区| 在线免费观看黄色av| 成人动漫视频在线观看免费| 久久天堂精品| 青青草手机在线观看| 亚洲欧美日韩国产成人| 精品中文字幕一区二区三区| 国产免费黄色av| 综合精品久久久| 四虎精品成人免费网站| 成人网在线观看| 亚洲综合国产激情另类一区| 国产激情无码一区二区三区| 亚洲精品成人久久| 国产视频网站一区二区三区| 久久人妻精品白浆国产| 亚洲在线一区二区三区| 在线免费观看黄色| 欧美久久电影| 99麻豆久久久国产精品免费|