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

JVM:可視化 JVM 故障處理工具

開發 開發工具
4 款可視化工具看下來,個人感覺還是最后一個 JMC 對使用者來講最友好, MBean 數據源展示了大量的當前 JVM 的信息,而且全都以圖表的形式進行了展現,更加給力還是它的 JFR 功能。

[[345792]]

 1. 可視化工具

在 JDK 中為我們提供了大量的 JVM 故障處理工具,都在 JDK 的 bin 目錄下:

JVM:可視化 JVM 故障處理工具

這其中除了大量的命令行工具以外,還為我們提供了更加方便快捷的可視化工具,主要是以下這 4 個:

  • JConsole: 最古老的工具,早在 JDK 5 時期就已經存在的虛擬機監控工具。
  • JHSDB: 名義上在 JDK 9 中才正式提供,但之前已經以 sa-jdi.jar 包里面的 HSDB(可視化工具) 和 CLHSDB(命令行工具) 的形式存在了很長一段時間。
  • VisualVM: 在 JDK 6 Update 7 中首次發布,直到 JRockit Mission Control 與 OracleJDK 的融合工作完成之前,它都曾是 Oracle 主力推動的多合一故障處理工具,現在它已經從 OracleJDK 中分離出來,成為一個獨立發展的開源項目。
  • JMC: Java Mission Control ,曾經是大名鼎鼎的來自 BEA 公司的圖形化診斷工具,隨著 BEA 公司被 Oracle 收購,它便被融合進 OracleJDK 之中。在 JDK 7 Update 40 時開始隨 JDK 一起發布,后來 Java SE Advanced 產品線建立, Oracle 明確區分了 Oracle OpenJDK 和 OracleJDK 的差別, JMC 從 JDK 11 開始又被移除出 JDK 。

2. HSDB

HSDB(Hotspot Debugger) 是 JDK 自帶的工具,用于查看 JVM 運行時的狀態。

使用方式由于在 JDK 9 之前沒有正式提供,所以也未在 JDK 的 bin 目錄下提供直接可執行文件,需要在命令行執行命令才能啟動。

首先在命令行中先 cd 至 C:\Program Files\Java\jdk1.8.0_221\lib 目錄,然后執行:

  1. java -cp .\sa-jdi.jar sun.jvm.hotspot.HSDB 

我在執行這句命令的時候報了個錯:

  1. Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError: Can't load library: C:\Program Files\Java\jdk-11.0.4\bin\sawindbg.dll 
  2.         at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2620
  3.         at java.base/java.lang.Runtime.load0(Runtime.java:767
  4.         at java.base/java.lang.System.load(System.java:1831
  5.         at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.<clinit>(WindbgDebuggerLocal.java:661
  6.         at sun.jvm.hotspot.HotSpotAgent.setupDebuggerWin32(HotSpotAgent.java:567
  7.         at sun.jvm.hotspot.HotSpotAgent.setupDebugger(HotSpotAgent.java:335
  8.         at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:304
  9.         at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140
  10.         at sun.jvm.hotspot.HSDB.attach(HSDB.java:1184
  11.         at sun.jvm.hotspot.HSDB.access$1700(HSDB.java:53
  12.         at sun.jvm.hotspot.HSDB$25$1.run(HSDB.java:456
  13.         at sun.jvm.hotspot.utilities.WorkerThread$MainLoop.run(WorkerThread.java:66
  14.         at java.base/java.lang.Thread.run(Thread.java:834

含義是有一個 sawindbg.dll 在 jdk 的目錄下找不到,因為我本地有多個 jdk ,配置環境變量的是 jdk 11 ,我在 jdk 8 的 jre 的 bin 目錄下找到了這個文件,直接 copy 到 jdk 11 的bin 目錄下解決此問題。

執行完成后會打開這么個界面:

JVM:可視化 JVM 故障處理工具

接下來,我們寫一小段測試代碼:

  1. public abstract class A { 
  2.     public void printMe() { 
  3.         System.out.println("I am A class"); 
  4.     } 
  5.     public abstract void sayHello(); 
  6.  
  7. public class B extends A { 
  8.     @Override 
  9.     public void sayHello() { 
  10.         System.out.println("I am B class"); 
  11.     } 
  12.  
  13. public class HSDB_Test { 
  14.     public static void main(String[] args) throws IOException { 
  15.         A obj = new B(); 
  16.         // 無意義,單純用作卡住主線程,防止線程結束 
  17.         System.in.read(); 
  18.         System.out.println(obj); 
  19.     } 

首先在命令行中使用命令 jps -l 查看 Java 進程的 pid :

  1. PS C:\Users\inwsy> jps -l 
  2. 1648 com.geekdigging.lesson04.jvmtools.HSDB_Test 
  3. 8704 
  4. 9280 org.jetbrains.jps.cmdline.Launcher 
  5. 14724 jdk.jcmd/sun.tools.jps.Jps 
  6. 3220 org/netbeans/Main 
  7. 15144 
  8. 20572 org.jetbrains.jps.cmdline.Launcher 
  9. 7548 sun.jvm.hotspot.HSDB 

可以看到,我們剛寫的測試方法的 pid 是 1648 ,在 HSDB 中點擊 File > Attach to Hotspot process :

JVM:可視化 JVM 故障處理工具

第一個看到的就是當前進程中的線程:

JVM:可視化 JVM 故障處理工具

到這里,我們的準備工作就已經結束,接著我們使用 Tools > Class Browser 找到對象 B 的內存地址:

JVM:可視化 JVM 故障處理工具

圖中紅框框起來的是我自己寫的三個類,可以看到我這里 B 的內存地址是 0x00000007c0060c18。

接下來,使用 Tools > Inspector 查看這個對象的詳細信息:

JVM:可視化 JVM 故障處理工具

vtable 是虛表方法,這里我們看到 class B 有 7 個虛表方法,因為所有的對象都繼承自 Object ,所以 B 繼承了 Object 的 5 個方法,然后還繼承了 A 的一個方法,自己重寫了一個方法,總共是 7 個方法。

這個我們可以進行一下驗證,可以在 Windows > Console 中使用 mem 命令進行查看。

那么我們可以開始計算, vtable 是在 instanceKlass 對象實例的尾部,而 instanceKlass 大小在 64 位系統的大小為 0x1B8 ,因此 vtable 的起始地址等于 instanceKlass 的內存首地址加上 0x1B8 等于 7C0060DD0 。

JVM:可視化 JVM 故障處理工具

接下來,我們在 Windows > Console 中使用 mem 命令進行驗證:

JVM:可視化 JVM 故障處理工具

第一列是方法實際在堆中的內存地址,第二列則是內存指針地址,我們可以將拿到的內存指針地址去 A , B 和 Object 中分別查看,可以看到前 5 行對應的是 Object 的方法,第 6 行對應的是 A 對象中的方法,第 7 行則對應 B 對象中的方法。

3. JConsole

JConsole(Java Monitoring and Management Console) 是一款基于 JMX(Java Manage-ment Extensions) 的可視化監視、管理工具。它的主要功能是通過 JMX 的 MBean(Managed Bean) 對系統進行信息收集和參數動態調整。

JConsole 位于 JDK/bin 這個目錄下,直接雙擊 jconsole.exe 就可以直接啟動,在啟動之后,會自動搜索出當前在本機運行的所有虛擬機進程。

JVM:可視化 JVM 故障處理工具

這里可以看到我本機目前運行了一個 JConsole ,一個 idea ,還有一個啟動的 tomcat 的源碼。

隨便雙擊一個服務,進入主頁面:

JVM:可視化 JVM 故障處理工具

可以看到主界面里共包括概述、內存、線程、類、 VM 摘要、 MBean 六個頁簽。

還是來個小示例,我們來了解下它的監控功能。

  1. public class MonitoringTest { 
  2.     // 內存占位對象,一個對象大約 64KB 
  3.     static class OOMObject { 
  4.         public byte[] placeholder = new byte[64 * 1024]; 
  5.     } 
  6.  
  7.     public static void fillHeap(int nums) throws InterruptedException { 
  8.         List<OOMObject> list = new ArrayList<>(); 
  9.         for (int i = 0; i < nums; i++) { 
  10.             Thread.sleep(50); 
  11.             list.add(new OOMObject()); 
  12.         } 
  13.         System.gc(); 
  14.     } 
  15.  
  16.     public static void main(String[] args) throws InterruptedException { 
  17.         fillHeap(1000); 
  18.     } 

這個案例是使用大約 64KB/50ms 的速度向 Java 堆中填充數據,一共填充 1000 次。

程序執行后可以看到,在整個 Java 堆中,曲線一直是平滑向上的。

JVM:可視化 JVM 故障處理工具

切換到內存標簽頁,查看 Eden 后可以發現,整個 Eden 的圖形是一個折線:

JVM:可視化 JVM 故障處理工具

再切換到 Gen ,可以看到整個老年代也是折疊向上的:

JVM:可視化 JVM 故障處理工具

我們已經在代碼里加了 System.gc() ,為什么看起來沒生效呢?

因為 System.gc() 是在 fillHeap() 方法中的,在 GC 的時候,還在作用域中,想要正常回收老年代,需要將 System.gc() 這段代碼轉移到 fillHeap() 外面。

先修改下代碼:

  1. public static void main(String[] args) throws InterruptedException { 
  2.     fillHeap(1000); 
  3.     System.gc(); 
  4.     // GC 后停頓 3s ,方便觀察圖像 
  5.     Thread.sleep(3000); 
JVM:可視化 JVM 故障處理工具

可以看到在最后進程結束的時候, Gen 的柱狀圖已經沒有內存占用了,內存回收成功。

3. VisualVM

VisualVM(All-in-One Java Troubleshooting Tool)是功能最強大的運行監視和故障處理程序之一,曾經在很長一段時間內是 Oracle 官方主力發展的虛擬機故障處理工具。

VisualVM 同樣在 JDK/bin 這個目錄下,雙擊 jvisualvm.exe 即可運行。在啟動之后,直接在左側會顯示當前在本機運行的所有虛擬機進程。

JVM:可視化 JVM 故障處理工具

VisualVM 基于 NetBeans 平臺開發工具,所以一開始它就具備了通過插件擴展功能的能力,有了插件擴展支持, VisualVM 可以做到:

  • 顯示虛擬機進程以及進程的配置、環境信息(jps、jinfo)。
  • 監視應用程序的處理器、垃圾收集、堆、方法區以及線程的信息(jstat、jstack)。
  • dump 以及分析堆轉儲快照(jmap、jhat)。
  • 方法級的程序運行性能分析,找出被調用最多、運行時間最長的方法。
  • 離線程序快照:收集程序的運行時配置、線程 dump 、內存 dump 等信息建立一個快照,可以將快照發送開發者處進行 Bug 反饋。
  • 其他插件帶來的無限可能性。

VisualVM 的插件可以在 工具->插件 中聯網后直接安裝。

JVM:可視化 JVM 故障處理工具
JVM:可視化 JVM 故障處理工具

我這里只安裝了兩個最常用的,一個是 GC 監控的插件,還有一個可以動態插入調試程序的插件。

我這里使用最常用的開發工具 IDEA 啟動過程演示一下通過 VisualVM 監控程序 GC 。

[[345794]]

首先我們啟動 IDEA ,直到 IDEA 可以正常操作,看下 VisualVM 的 GC 監控。

JVM:可視化 JVM 故障處理工具

在主信息面板,可以看到 IDEA 所使用 JVM 的版本信息,可以看到具體的 JAVA_HOME 路徑,還可以看到具體的 JVM 參數,這里可以看到 IDEA 啟動時設置的默認最小堆和最大堆內存的設置分別是 128MB 和 750 MB ,所使用的垃圾回收器則是 CMS 收集器。

然后點擊 Visual GC,可以看到:

JVM:可視化 JVM 故障處理工具

在啟動過程中, Class 加載消耗了 28s 左右,而 Class 編譯則消耗了 35s 。并且在這個過程中, Minor GC 被觸發了 149 次,消耗只有 713ms ,我們更加關注的 Full GC 更是一次都沒有觸發,消耗為 0 。

因為 IDEA 默認使用的是 CMS 收集器,如果我們換成 G1 收集器會不會更快一些呢?

首先,找到 IDEA 的配置文件,我的 IDEA 是通過 Toolbox 進行安裝的,所以我的 IDEA 的配置文件的路徑有點奇怪D:\Program Files\JetBrains\apps\IDEA-U\ch-0\202.7660.26.vmoptions 。

先把這個文件備份到桌面一個,防止改壞了導致 IDEA 不能使用。

刪掉現有的垃圾回收器配置 -XX:+UseConcMarkSweepGC ,增加 G1 收集器的配置:

  1. -XX:+UseG1GC 

其余的配置不做修改,直接關閉 IDEA 重啟,再看下 GC 情況。

首先先看下主面板,看下我們的 GC 收集器是否已經切換成功:

JVM:可視化 JVM 故障處理工具

然后再看下 GC 面板:

JVM:可視化 JVM 故障處理工具

Minor GC 竟然被觸發了 271 次,而且消耗達到了 853ms ,好吧,看來在客戶端還是更適合使用 CMS 做為垃圾回收器。

我們再修改下 -Xmx 這個配置,將配置的大小縮減為現在的一半,再把 GC 換回原有的 CMS ,看下 Full GC 的情況:

JVM:可視化 JVM 故障處理工具

可以看到, Full GC 整整發生了 46 次,并且耗時超過了 21s ,而且這是 IDEA 的界面上也開始彈出警告,警告我們內存不足了,需要調整。

JVM:可視化 JVM 故障處理工具

嚇得我趕緊改回了原有配置,順便把 -Xmx 的大小加到了 1024 ,盡量減少 Full GC 的情況。

4. Java Mission Control

JMC 同樣在 JDK/bin 這個目錄下,雙擊 jmc.exe 即可運行。

JVM:可視化 JVM 故障處理工具

打開后在 JVM 瀏覽器面板中有兩個選項,一個是 MBean ,一個是 JFR 飛行記錄器。

關于 MBean 這部分數據,與 JConsole 和 VisualVM 上取到的內容是一樣的,只是展示形式上有些差別,就不多說了。

雙擊「飛行記錄器」,將會出現「飛行記錄器」窗口(如果第一次使用,還會收到解鎖商業功能的警告窗)。

JVM:可視化 JVM 故障處理工具

注意:在使用前需要在 JVM 中增加如下兩個參數,含義是解鎖 JFR 功能的鎖定。

  1. -XX:+UnlockCommercialFeatures 
  2. -XX:+FlightRecorder 
JVM:可視化 JVM 故障處理工具

飛行記錄報告里包含以下幾類信息:

  • 一般信息:關于虛擬機、操作系統和記錄的一般信息。
  • 內存:關于內存管理和垃圾收集的信息。
  • 代碼:關于方法、異常錯誤、編譯和類加載的信息。
  • 線程:關于應用程序中線程和鎖的信息。
  • I/O:關于文件和套接字輸入、輸出的信息。
  • 系統:關于正在運行Java虛擬機的系統、進程和環境變量的信息。
  • 事件:關于記錄中的事件類型的信息,可以根據線程或堆棧跟蹤,按照日志或圖形的格式查看。

5. 小結

這 4 款可視化工具看下來,個人感覺還是最后一個 JMC 對使用者來講最友好, MBean 數據源展示了大量的當前 JVM 的信息,而且全都以圖表的形式進行了展現,更加給力還是它的 JFR 功能,可以記錄一段時間內所有的操作,并且以圖表的形式進行展現,對我們分析問題時候的幫助無疑是巨大的。

當然,喜歡用哪款工具完全是個人喜好,比如 VisualVM 也很強大,可能它本身的功能沒那么強,但是它可以安裝插件,完全根據需要進行插件的安裝,這個玩法非常 DIY ,總的算下來,我還是喜歡使用 VisualVM 更多一些。

 

責任編輯:張燕妮 來源: 今日頭條
相關推薦

2010-10-11 11:03:01

MySQL管理工具

2012-01-11 13:04:40

JavaJVM

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2017-10-17 14:02:30

jvm調優工具

2019-10-10 08:46:02

Docker可視化技術瀏覽器

2010-05-11 18:35:47

MySQL數據庫

2025-01-13 08:30:00

開源Redis可視化

2021-02-21 08:11:46

PythonDash工具

2024-12-04 16:44:51

2020-07-27 09:59:25

Kafka可視化CMAK

2022-05-24 15:03:44

開源工具可視化

2022-03-03 13:02:37

可視化網頁低代碼編程工具

2021-02-07 20:23:09

GoogeBlockly可視化編程

2018-05-31 08:25:13

誤區工具可視化

2010-09-27 15:39:37

JVM監控工具

2021-07-08 06:47:19

JVM監控工具

2021-03-01 07:45:32

kubernetes應用程序工具

2010-09-30 15:54:58

系統升級

2017-10-14 13:54:26

數據可視化數據信息可視化

2022-08-26 09:15:58

Python可視化plotly
點贊
收藏

51CTO技術棧公眾號

加勒比中文字幕精品| 手机在线观看毛片| 成人精品中文字幕| 欧美美女直播网站| 干日本少妇视频| 亚洲av无码乱码国产麻豆 | 一本久道久久综合| 成人免费一级视频| 日本视频中文字幕一区二区三区| 久久精品99久久香蕉国产色戒| 亚洲国产欧美日韩在线| 中文av在线全新| 中文字幕一区二区5566日韩| 国产嫩草一区二区三区在线观看| 久久久999久久久| 午夜久久99| 亚洲人成免费电影| 亚洲三级在线视频| 黄色综合网址| 亚洲国产一区在线观看| 亚洲欧洲一区二区在线观看| 免费av网站观看| 麻豆精品在线播放| 欧美在线视频一区| 在线观看成人毛片| 群体交乱之放荡娇妻一区二区| 欧美日韩国产一区二区三区| 中文一区一区三区免费| 欧美精品少妇| 成人在线视频一区| 国产精品视频网站| 国产一级18片视频| 国语对白精品一区二区| 精品国产欧美成人夜夜嗨| 网站免费在线观看| 亚洲精品黑牛一区二区三区| 欧美日韩国产综合视频在线观看 | 久久一区二区电影| 国产日韩在线观看视频| 欧美性极品少妇| 国产免费黄视频| 污片视频在线免费观看| 国产精品久久久久aaaa樱花| 欧美亚洲爱爱另类综合| 色丁香婷婷综合久久| 国产精品1024| 91色在线视频| 91资源在线视频| 久久精品国产秦先生| 国产成人久久久| 日本免费在线观看视频| 欧美专区18| 欧美在线亚洲在线| av黄色在线播放| 国产欧美三级| 91高清视频免费观看| 国产精品 欧美 日韩| 国产精品99一区二区| 欧美理论片在线观看| 国产一区二区三区在线视频观看| 欧美丰满日韩| 久久精品电影一区二区| 91麻豆精品成人一区二区| 99九九热只有国产精品| 日韩在线播放视频| 午夜激情福利网| 中文字幕亚洲综合久久五月天色无吗''| 三级精品视频久久久久| 成年人网站在线观看视频| 外国成人免费视频| 久久天天躁狠狠躁老女人| 欧美黄色aaa| 欧美精品啪啪| 97色在线视频| 国产精品第5页| 日韩精品每日更新| 国产在线精品成人一区二区三区| 国产美女无遮挡永久免费| 国产伦精品一区二区三区在线观看| 亚洲自拍偷拍第一页| 女人18毛片一区二区三区| 91在线视频播放| 色一情一乱一伦一区二区三欧美 | 国产suv精品一区二区883| 国产成人av一区二区三区| 天天干视频在线观看| 国产丝袜美腿一区二区三区| 一区二区三区欧美在线| a视频在线免费看| 亚洲第一主播视频| 免费av网址在线| 亚洲欧洲一二区| 精品国产污污免费网站入口| 国产吞精囗交久久久| 欧美日韩中字| 欧美大片欧美激情性色a∨久久| 99久在线精品99re8热| 日韩精品视频网| 亚洲综合国产精品| 酒色婷婷桃色成人免费av网| 亚洲欧洲韩国日本视频| 久操网在线观看| 欧美日韩精品免费观看视欧美高清免费大片 | 91精品国产91久久久久久青草| 午夜精品久久久久久久久久 | 涩涩涩在线视频| 欧美日韩一区二区三区在线 | 久草手机在线观看| 久久成人麻豆午夜电影| 韩国成人动漫在线观看| 国产原创视频在线观看| 欧美日韩美女视频| 亚洲欧美日本一区二区| 色婷婷av一区二区三区丝袜美腿| 日韩中文字幕国产精品| 天堂网一区二区三区| 极品少妇xxxx偷拍精品少妇| 欧美日韩免费高清| 久久不射影院| 91精品视频网| 国产又黄又粗视频| 99热这里只有精品8| 91精品视频在线看| 国产网站在线播放| 五月综合激情婷婷六月色窝| 8x8x成人免费视频| 国产一卡不卡| 91av免费观看91av精品在线| 国产99视频在线| 国产欧美一区二区精品性色超碰| 国产a级片网站| 国产美女精品视频免费播放软件| 国产亚洲精品久久久| 日本在线小视频| 国产主播一区二区三区| 一区二区三区观看| 欧美性片在线观看| 精品亚洲夜色av98在线观看| 久久亚洲AV无码| 国产高清视频一区| 永久久久久久| 六九午夜精品视频| 亚洲视频国产视频| 岛国av中文字幕| 91在线观看高清| 丰满的少妇愉情hd高清果冻传媒 | av资源网在线观看| 丁香五六月婷婷久久激情| 亚洲精品无码一区二区| 欧美日韩国产色综合一二三四| 国产一区红桃视频| 久久综合网导航| 91精品在线观看入口| 亚洲成人生活片| 国产一区二区三区精品欧美日韩一区二区三区| 日韩欧美一区二区三区四区五区 | 青草青草久热精品视频在线观看| 女人18毛片一区二区三区| 夜夜嗨av一区二区三区| 国产成人精品一区二区三区在线观看| 亚洲蜜桃视频| www.av一区视频| 欧美理论电影| 欧美精品一区二区久久久| 国产精品18p| 不卡区在线中文字幕| 少妇无码av无码专区在线观看 | 日韩免费一区二区三区| 亚洲成av在线| 色综久久综合桃花网| 国产精品熟女久久久久久| 亚洲精品福利视频网站| 秘密基地免费观看完整版中文| 亚洲久久一区二区| 茄子视频成人在线观看| 久久久加勒比| 欧美理论片在线观看| 五月婷婷开心中文字幕| 色婷婷香蕉在线一区二区| 免费看的黄色网| 精品中文av资源站在线观看| 黄色一级大片免费| 日韩精品丝袜美腿| 国产精品免费视频xxxx| www久久日com| 亚洲精品大尺度| 这里只有精品国产| 亚洲精品久久嫩草网站秘色| 波多野结衣加勒比| 日本免费在线视频不卡一不卡二 | 国产精品无码自拍| 亚洲中字黄色| 中文字幕欧美人与畜| 国语一区二区三区| 国产精品入口日韩视频大尺度| h片在线观看网站| 精品调教chinesegay| 亚洲系列在线观看| 激情成人中文字幕| www.xx日本| 91视频观看免费| 中文字幕22页| 日韩视频中文| 中文字幕一区二区三区在线乱码 | 欧美日韩综合| 明星裸体视频一区二区| 电影一区中文字幕| 日本精品视频网站| 污的网站在线观看| 宅男66日本亚洲欧美视频| 男人天堂综合网| 91.com在线观看| 无码任你躁久久久久久久| 亚洲精选免费视频| 欧美特级黄色录像| 成人激情免费网站| 国产精品自在自线| 免费精品视频| 国产3p露脸普通话对白| 91精品电影| 亚洲精品成人久久久998| 欧美三级电影在线| 999视频在线免费观看| 国产一区二区三区影视| 91av视频导航| 黄网在线免费看| 啊v视频在线一区二区三区 | 日韩大片在线观看视频| 99国产在线播放| 欧美三级中文字幕| av网站中文字幕| 亚洲成av人在线观看| 色在线观看视频| ...xxx性欧美| 99在线视频免费| 久久综合国产精品| 在线天堂www在线国语对白| 国产传媒日韩欧美成人| 日本一本在线视频| 精品一区二区影视| 鲁一鲁一鲁一鲁一av| 久久久综合网| 国产精品欧美激情在线观看| 亚洲电影在线| www.亚洲视频.com| 影音先锋一区| 男女私大尺度视频| 亚洲国产一区二区精品专区| 欧美中文字幕在线观看视频 | 成人av电影免费观看| 亚洲香蕉中文网| 成人精品视频一区二区三区| 在线播放av网址| 成人黄色在线网站| 国产成人av无码精品| 不卡在线视频中文字幕| 美女网站视频在线观看| hitomi一区二区三区精品| 农村末发育av片一区二区| 成人一区二区视频| 深田咏美中文字幕| 久久综合色综合88| 夜夜春很很躁夜夜躁| 国产精品欧美极品| 三级黄色在线观看| 亚洲欧美一区二区久久| 久久久久久久中文字幕| 亚洲福利视频导航| 久久午夜免费视频| 在线免费观看一区| 亚洲视频在线观看一区二区| 欧美一区二区三区视频免费播放 | 蜜桃麻豆av在线| 国产成人福利网站| 欧美韩国日本| 亚洲aaaaaa| 国产精品x8x8一区二区| 麻豆精品传媒视频| av永久不卡| 国产精品啪啪啪视频| 99精品视频免费全部在线| 国产超级av在线| 久久精品理论片| 精品人妻一区二区三区免费| 9人人澡人人爽人人精品| 欧美做受高潮6| 综合激情成人伊人| 日韩欧美大片在线观看| 欧美在线观看视频一区二区三区| 国产精品一区二区黑人巨大| 亚洲成在人线av| 色的视频在线免费看| 久久99热这里只有精品国产 | 亚洲一区二区三区视频在线播放| av资源免费观看| 欧美久久久久中文字幕| 欧美自拍偷拍一区二区| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 在线观看av不卡| 国产成人精品亚洲精品色欲| 精品一区精品二区| 老司机精品影院| 2019亚洲日韩新视频| 亚洲天堂网站| 欧美精品一区二区三区四区五区| 91精品国产自产拍在线观看蜜| 国产中文字幕视频在线观看| 久久99精品国产| 少妇光屁股影院| 亚洲猫色日本管| 啪啪小视频网站| 欧美精品一区二区三区久久久| jizzjizz在线观看| 91av视频在线免费观看| 久久国产精品美女| 日韩国产精品一区二区三区| 在线免费观看欧美| 日韩欧美中文视频| 91小视频在线| 久久久精品91| 欧美精三区欧美精三区| 青青草在线免费视频| 久久久久久综合网天天| www.欧美| 亚洲自拍三区| 久久久久.com| 网站免费在线观看| 亚洲777理论| 亚洲av无码片一区二区三区| www.欧美免费| 欧美日韩视频免费观看| 精品欧美一区二区精品久久| 国产精品国码视频| 香蕉视频色在线观看| 国产精品二三区| 最近日韩免费视频| 亚洲午夜精品久久久久久性色| 日韩影院在线| 精品久久久久久中文字幕动漫| 亚洲视频久久| 能看毛片的网站| 亚洲人成7777| 99久久久无码国产精品免费| 色老头一区二区三区| 成人午夜一级| 亚洲精品永久www嫩草| 日精品一区二区三区| 日韩精品电影一区二区| 欧美性生交xxxxxdddd| 国产91免费看| 久久久噜噜噜久久中文字免| 荡女精品导航| 国产原创中文在线观看| av一本久道久久综合久久鬼色| 国产一级特黄aaa大片| 精品久久久久久久一区二区蜜臀| 欧美xxxx视频| 国产成人免费电影| 国产日本精品| 伊人网在线视频观看| 欧洲人成人精品| 午夜免费播放观看在线视频| 91欧美精品午夜性色福利在线| 亚洲人成免费网站| xxxx视频在线观看| 午夜影视日本亚洲欧洲精品| 内射后入在线观看一区| 欧美一区视频在线| 国产日产精品_国产精品毛片| 一区二区三区韩国| 日韩毛片一二三区| 亚洲成人黄色片| 91精品国产高清久久久久久91| 色爱av综合网| 免费看污黄网站| 中文字幕一区二区三区蜜月| 国产日韩一级片| 97精品一区二区三区| 狠狠色狠狠色综合婷婷tag| 国产精品人人爽人人爽| 亚洲视频 欧洲视频| 免费看黄色一级视频| 日本久久久久久久| 亚洲欧洲美洲一区二区三区| 亚洲欧美高清在线| 色婷婷综合中文久久一本| 麻豆网站在线免费观看| 国产日韩欧美精品| 日本三级亚洲精品| 精品视频久久久久| 亚洲午夜久久久影院| 日本免费一区二区三区视频| 噜噜噜久久亚洲精品国产品麻豆| 国产精品美女一区二区| 欧美一区二区三区激情| 国产精品普通话| 亚洲区第一页| 看黄色录像一级片| 亚洲精品国精品久久99热| 国产精品亚洲成在人线|