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

這可能是把JDK監控和故障處理工具總結的最完整的一篇文章了

新聞 前端
VisualVM(All-in-One Java Troubleshooting Tool)是到目前為止隨 JDK 發布的功能最強大的運行監視和故障處理程序,官方在 VisualVM 的軟件說明中寫上了“All-in-One”的描述字樣,預示著他除了運行監視、故障處理外,還提供了很多其他方面的功能

 [[316364]]

一、JDK 命令行工具

這些命令在 JDK 安裝目錄下的 bin 目錄下:

  • jps (JVM Process Status): 類似 UNIX 的 ps 命令。用戶查看所有 Java 進程的啟動類、傳入參數和 Java 虛擬機參數等信息;
  • jstat( JVM Statistics Monitoring Tool): 用于收集 HotSpot 虛擬機各方面的運行數據;
  • jinfo (Configuration Info for Java) : Configuration Info forJava,顯示虛擬機配置信息;
  • jmap (Memory Map for Java) :生成堆轉儲快照;
  • jhat (JVM Heap Dump Browser ) : 用于分析 heapdump 文件,它會建立一個 HTTP/HTML 服務器,讓用戶可以在瀏覽器上查看分析結果;
  • jstack (Stack Trace for Java):生成虛擬機當前時刻的線程快照,線程快照就是當前虛擬機內每一條線程正在執行的方法堆棧的集合。

1. jps:查看所有 Java 進程

jps(JVM Process Status) 命令類似 UNIX 的 ps 命令。

jps:顯示虛擬機執行主類名稱以及這些進程的本地虛擬機唯一 ID(Local Virtual Machine Identifier,LVMID)。jps -q :只輸出進程的本地虛擬機唯一 ID。

  1. C:\Users\SnailClimb>jps7360 NettyClient2173967972 Launcher16504 Jps17340 NettyServer 

jps -l:輸出主類的全名,如果進程執行的是 Jar 包,輸出 Jar 路徑。

  1. C:\Users\SnailClimb>jps -l7360 firstNettyDemo.NettyClient2173967972 org.jetbrains.jps.cmdline.Launcher16492 sun.tools.jps.Jps17340 firstNettyDemo.NettyServer 

jps -v:輸出虛擬機進程啟動時 JVM 參數。

jps -m:輸出傳遞給 Java 進程 main() 函數的參數。

2. jstat: 監視虛擬機各種運行狀態信息

jstat(JVM Statistics Monitoring Tool) 使用于監視虛擬機各種運行狀態信息的命令行工具。 它可以顯示本地或者遠程(需要遠程主機提供 RMI 支持)虛擬機進程中的類信息、內存、垃圾收集、JIT 編譯等運行數據,在沒有 GUI,只提供了純文本控制臺環境的服務器上,它將是運行期間定位虛擬機性能問題的首選工具。

jstat 命令使用格式:

  1. jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] 

比如 jstat -gc -h3 31736 1000 10表示分析進程 id 為 31736 的 gc 情況,每隔 1000ms 打印一次記錄,打印 10 次停止,每 3 行后打印指標頭部。

常見的 option 如下:

  • jstat -class vmid :顯示 ClassLoader 的相關信息;
  • jstat -compiler vmid :顯示 JIT 編譯的相關信息;
  • jstat -gc vmid :顯示與 GC 相關的堆信息;
  • jstat -gccapacity vmid :顯示各個代的容量及使用情況;
  • jstat -gcnew vmid :顯示新生代信息;
  • jstat -gcnewcapcacity vmid :顯示新生代大小與使用情況;
  • jstat -gcold vmid :顯示老年代和永久代的信息;
  • jstat -gcoldcapacity vmid :顯示老年代的大小;
  • jstat -gcpermcapacity vmid :顯示永久代大小;
  • jstat -gcutil vmid :顯示垃圾收集信息;

另外,加上 -t參數可以在輸出信息上加一個 Timestamp 列,顯示程序的運行時間。

3. jinfo: 實時地查看和調整虛擬機各項參數

jinfo vmid :輸出當前 jvm 進程的全部參數和系統屬性 (第一部分是系統的屬性,第二部分是 JVM 的參數)。

jinfo -flag name vmid :輸出對應名稱的參數的具體值。比如輸出 MaxHeapSize、查看當前 jvm 進程是否開啟打印 GC 日志 ( -XX:PrintGCDetails :詳細 GC 日志模式,這兩個都是默認關閉的)。

  1. C:\Users\SnailClimb>jinfo  -flag MaxHeapSize 17340-XX:MaxHeapSize=2124414976C:\Users\SnailClimb>jinfo  -flag PrintGC 17340-XX:-PrintGC 

使用 jinfo 可以在不重啟虛擬機的情況下,可以動態的修改 jvm 的參數。尤其在線上的環境特別有用,請看下面的例子:

jinfo -flag [+|-]name vmid 開啟或者關閉對應名稱的參數。

  1. C:\Users\SnailClimb>jinfo  -flag  PrintGC 17340-XX:-PrintGCC:\Users\SnailClimb>jinfo  -flag  +PrintGC 17340C:\Users\SnailClimb>jinfo  -flag  PrintGC 17340-XX:+PrintGC 

4. jmap:生成堆轉儲快照

jmap(Memory Map for Java)命令用于生成堆轉儲快照。 如果不使用 jmap 命令,要想獲取 Java 堆轉儲,可以使用 “-XX:+HeapDumpOnOutOfMemoryError” 參數,可以讓虛擬機在 OOM 異常出現之后自動生成 dump 文件,Linux 命令下可以通過 kill -3 發送進程退出信號也能拿到 dump 文件。

jmap 的作用并不僅僅是為了獲取 dump 文件,它還可以查詢 finalizer 執行隊列、Java 堆和永久代的詳細信息,如空間使用率、當前使用的是哪種收集器等。和jinfo一樣,jmap有不少功能在 Windows 平臺下也是受限制的。

示例:將指定應用程序的堆快照輸出到桌面。后面,可以通過 jhat、Visual VM 等工具分析該堆文件。

  1. C:\Users\SnailClimb>jmap -dump:format=b,file=C:\Users\SnailClimb\Desktop\heap.hprof 17340Dumping heap to C:\Users\SnailClimb\Desktop\heap.hprof ...Heap dump file created 
這可能是把JDK監控和故障處理工具總結的最完整的一篇文章了

5. jhat: 分析 heapdump 文件

jhat 用于分析 heapdump 文件,它會建立一個 HTTP/HTML 服務器,讓用戶可以在瀏覽器上查看分析結果。

  1. C:\Users\SnailClimb>jhat C:\Users\SnailClimb\Desktop\heap.hprofReading from C:\Users\SnailClimb\Desktop\heap.hprof...Dump file created Sat May 04 12:30:31 CST 2019Snapshot read, resolving...Resolving 131419 objects...Chasing references, expect 26 dots..........................Eliminating duplicate references..........................Snapshot resolved.Started HTTP server on port 7000Server is ready. 

6. jstack :生成虛擬機當前時刻的線程快照

jstack(Stack Trace for Java)命令用于生成虛擬機當前時刻的線程快照。線程快照就是當前虛擬機內每一條線程正在執行的方法堆棧的集合.

生成線程快照的目的主要是定位線程長時間出現停頓的原因,如線程間死鎖、死循環、請求外部資源導致的長時間等待等都是導致線程長時間停頓的原因。線程出現停頓的時候通過jstack來查看各個線程的調用堆棧,就可以知道沒有響應的線程到底在后臺做些什么事情,或者在等待些什么資源。

下面是一個線程死鎖的代碼。我們下面會通過 jstack 命令進行死鎖檢查,輸出死鎖信息,找到發生死鎖的線程。

  1. public class DeadLockDemo {    private static Object resource1 = new Object();//資源 1    private static Object resource2 = new Object();//資源 2    public static void main(String[] args) {        new Thread(() -> {            synchronized (resource1) {                System.out.println(Thread.currentThread() + "get resource1");                try {                    Thread.sleep(1000);                } catch (InterruptedException e) {                    e.printStackTrace();                }                System.out.println(Thread.currentThread() + "waiting get resource2");                synchronized (resource2) {                    System.out.println(Thread.currentThread() + "get resource2");                }            }        }, "線程 1").start();        new Thread(() -> {            synchronized (resource2) {                System.out.println(Thread.currentThread() + "get resource2");                try {                    Thread.sleep(1000);                } catch (InterruptedException e) {                    e.printStackTrace();                }                System.out.println(Thread.currentThread() + "waiting get resource1");                synchronized (resource1) {                    System.out.println(Thread.currentThread() + "get resource1");                }            }        }, "線程 2").start();    }} 

Output

  1. Thread[線程 1,5,main]get resource1Thread[線程 2,5,main]get resource2Thread[線程 1,5,main]waiting get resource2Thread[線程 2,5,main]waiting get resource1 

線程 A 通過 synchronized (resource1) 獲得 resource1 的監視器鎖,然后通過Thread.sleep(1000);讓線程 A 休眠 1s 為的是讓線程 B 得到執行然后獲取到 resource2 的監視器鎖。線程 A 和線程 B 休眠結束了都開始企圖請求獲取對方的資源,然后這兩個線程就會陷入互相等待的狀態,這也就產生了死鎖。

通過 jstack 命令分析:

  1. C:\Users\SnailClimb>jps13792 KotlinCompileDaemon7360 NettyClient2173967972 Launcher8932 Launcher9256 DeadLockDemo10764 Jps17340 NettyServerC:\Users\SnailClimb>jstack 9256 

輸出的部分內容如下:

  1. Found one Java-level deadlock:============================="線程 2":  waiting to lock monitor 0x000000000333e668 (object 0x00000000d5efe1c0, a java.lang.Object),  which is held by "線程 1""線程 1":  waiting to lock monitor 0x000000000333be88 (object 0x00000000d5efe1d0, a java.lang.Object),  which is held by "線程 2"Java stack information for the threads listed above:==================================================="線程 2":        at DeadLockDemo.lambda$main$1(DeadLockDemo.java:31)        - waiting to lock <0x00000000d5efe1c0> (a java.lang.Object)        - locked <0x00000000d5efe1d0> (a java.lang.Object)        at DeadLockDemo$$Lambda$2/1078694789.run(Unknown Source)        at java.lang.Thread.run(Thread.java:748)"線程 1":        at DeadLockDemo.lambda$main$0(DeadLockDemo.java:16)        - waiting to lock <0x00000000d5efe1d0> (a java.lang.Object)        - locked <0x00000000d5efe1c0> (a java.lang.Object)        at DeadLockDemo$$Lambda$1/1324119927.run(Unknown Source)        at java.lang.Thread.run(Thread.java:748)Found 1 deadlock. 

可以看到 jstack 命令已經幫我們找到發生死鎖的線程的具體信息。

[[316365]]

二、JDK 可視化分析工具

1. JConsole:Java 監視與管理控制臺

JConsole 是基于 JMX 的可視化監視、管理工具。可以很方便的監視本地及遠程服務器的 java 進程的內存使用情況。你可以在控制臺輸出console命令啟動或者在 JDK 目錄下的 bin 目錄找到jconsole.exe然后雙擊啟動。

①. 連接 Jconsole

如果需要使用 JConsole 連接遠程進程,可以在遠程 Java 程序啟動時加上下面這些參數:

  1. -Djava.rmi.server.hostname=外網訪問 ip 地址 -Dcom.sun.management.jmxremote.port=60001   //監控的端口號-Dcom.sun.management.jmxremote.authenticate=false   //關閉認證-Dcom.sun.management.jmxremote.ssl=false 

在使用 JConsole 連接時,遠程進程地址如下:

  1. 外網訪問 ip 地址:60001  

②. 內存監控

JConsole 可以顯示當前內存的詳細信息。不僅包括堆內存/非堆內存的整體信息,還可以細化到 eden 區、survivor 區等的使用情況,如下圖所示。

點擊右邊的“執行 GC(G)”按鈕可以強制應用程序執行一個 Full GC。

新生代 GC(Minor GC):指發生新生代的的垃圾收集動作,Minor GC 非常頻繁,回收速度一般也比較快。 老年代 GC(Major GC/Full GC):指發生在老年代的 GC,出現了 Major GC 經常會伴隨至少一次的 Minor GC(并非絕對),Major GC 的速度一般會比 Minor GC 的慢 10 倍以上。

③. 線程監控

類似我們前面講的 jstack 命令,不過這個是可視化的。

最下面有一個"檢測死鎖 (D)"按鈕,點擊這個按鈕可以自動為你找到發生死鎖的線程以及它們的詳細信息 。

2. Visual VM:多合一故障處理工具

VisualVM 提供在 Java 虛擬機 (Java Virutal Machine, JVM) 上運行的 Java 應用程序的詳細信息。在 VisualVM 的圖形用戶界面中,您可以方便、快捷地查看多個 Java 應用程序的相關信息。

下面這段話摘自《深入理解 Java 虛擬機》。

VisualVM(All-in-One Java Troubleshooting Tool)是到目前為止隨 JDK 發布的功能最強大的運行監視和故障處理程序,官方在 VisualVM 的軟件說明中寫上了“All-in-One”的描述字樣,預示著他除了運行監視、故障處理外,還提供了很多其他方面的功能,如性能分析(Profiling)。VisualVM 的性能分析功能甚至比起 JProfiler、YourKit 等專業且收費的 Profiling 工具都不會遜色多少,而且 VisualVM 還有一個很大的優點:不需要被監視的程序基于特殊 Agent 運行,因此他對應用程序的實際性能的影響很小,使得他可以直接應用在生產環境中。這個優點是 JProfiler、YourKit 等工具無法與之媲美的。

VisualVM 基于 NetBeans 平臺開發,因此他一開始就具備了插件擴展功能的特性,通過插件擴展支持,VisualVM 可以做到:

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

 

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

2018-09-12 09:34:11

ZooKeeper概念集群

2018-07-04 09:42:19

Docker概念容器

2018-09-17 14:04:57

架構技術棧微信半月刊

2021-11-03 16:10:16

RedisJava內存

2023-02-26 00:00:01

Spring數據庫組件

2021-05-27 05:30:23

數據分析工具數據可視化

2023-02-26 10:14:51

Spring第三方庫

2019-05-21 13:33:48

監控工具開發

2021-03-01 14:16:13

Python開發Excel

2021-08-27 10:14:22

機器學習工具手冊人工智能

2018-10-25 09:37:02

Docker入門容器

2018-11-05 08:10:30

Netty架構模型

2022-08-04 09:39:39

Kubernetes聲明式系統

2019-07-01 15:01:44

NVMe接口存儲

2023-01-11 08:24:32

2017-01-20 15:01:19

2017-06-27 14:15:22

LinuxShellsed

2020-05-17 16:06:47

ICMPIP協議網絡協議

2021-05-09 09:06:24

Python批處理命令

2020-10-09 08:15:11

JsBridge
點贊
收藏

51CTO技術棧公眾號

在线观看福利片| 曰韩不卡视频| 神马影院午夜我不卡| 91免费视频黄| a在线观看视频| 9色精品在线| 中文字幕v亚洲ⅴv天堂| 精品人妻一区二区免费| 欧美aaa视频| 一区二区三区精品视频在线| 日本不卡二区高清三区| 国内精品久久久久久久久久| 老司机一区二区三区| 欧美成人网在线| 成人性生交大免费看| 亚洲va欧美va人人爽成人影院| 天天综合天天做天天综合| 一区二区av| 性xxxfllreexxx少妇| 国产综合色产在线精品| 日本精品久久中文字幕佐佐木| 精品一区在线观看视频| av片在线免费看| 国产天堂在线播放视频| 国产色产综合产在线视频| 99视频免费观看| 成人黄色片在线观看| 一本色道久久| 久精品免费视频| 青青操在线播放| 国产精品视频一区二区三区四蜜臂| 欧美一区二区性放荡片| 亚洲一区在线不卡| 伊人久久在线| 欧美日韩国产在线| 91丨porny丨探花| av文字幕在线观看| 亚洲国产高清aⅴ视频| 精品国产乱码一区二区三区四区| 999国产精品视频免费| 免费久久精品视频| 日产日韩在线亚洲欧美| 91丝袜脚交足在线播放| 国产小视频你懂的| 国产区精品区| 亚洲人成电影网站色www| 亚洲一区二区在线免费| 嗯用力啊快一点好舒服小柔久久| 欧美三级电影在线观看| 日韩av播放器| 成人视屏在线观看| 日本韩国欧美国产| 欧美成人免费高清视频| 日本免费久久| 日本精品一区二区三区高清| 国产二区视频在线播放| 乱人伦视频在线| 欧美性xxxx在线播放| 国产中文字幕在线免费观看| heyzo高清国产精品| 亚洲一区二区精品久久av| 国产在线xxxx| 91超碰在线播放| 欧美日韩经典丝袜| 国产欧美中文在线| 亚洲不卡中文字幕| 激情综合闲人网| 国产精品青草久久| eeuss中文| 99视频免费在线观看| 一区二区日韩电影| 人妻无码久久一区二区三区免费| 日本在线播放一二三区| 日韩欧美亚洲综合| 亚洲激情在线观看视频| 日韩国产91| 欧美电影精品一区二区| 日本一区二区在线免费观看| 欧美女优在线视频| 深夜福利一区二区| 精品99久久久久成人网站免费| 欧美午夜影院| 欧美一区在线直播| 亚洲午夜激情视频| 成人做爰69片免费看网站| 精品无码久久久久久久动漫| 国产日产精品久久久久久婷婷| 中文字幕欧美三区| a级片一区二区| 香蕉久久免费影视| 精品黑人一区二区三区在线观看 | 日本成熟性欧美| 中文字幕在线观看高清| 国产麻豆9l精品三级站| 久久综合伊人77777麻豆| 91精品国产91久久久久游泳池 | 国产精品乱子伦| 久久国内精品视频| 国产精品久久久久av福利动漫| 久草视频在线看| 亚洲中国最大av网站| 波多野结衣家庭教师视频| 午夜不卡一区| 亚洲国产欧美在线成人app| 3d动漫精品啪啪一区二区下载 | 91蝌蚪精品视频| 亚洲一区av在线播放| 久久久久久国产精品视频| 欧美中文字幕| 国产精成人品localhost| 岛国大片在线观看| 亚洲国产sm捆绑调教视频 | 国产成人午夜片在线观看高清观看 | 五月天婷婷久久| 国产一区二区精品久久99| 欧美一区二区三区精美影视 | 视频一区二区三区在线看免费看| 中文字幕在线观看不卡| 欧美一区二区三区爽大粗免费| 久久99成人| 在线观看国产精品日韩av| 国产精品美女在线| 91精品国产乱码在线观看| 毛片一区二区三区| 欧美大香线蕉线伊人久久| 午夜小视频福利在线观看| 欧美性色aⅴ视频一区日韩精品| 人妻 日韩 欧美 综合 制服| 中文字幕亚洲精品乱码| 国产精品视频免费在线观看| 经典三级在线| 天天综合网天天综合色| 性农村xxxxx小树林| 91精品一区国产高清在线gif| 日韩美女免费线视频| 蜜桃av中文字幕| 尤物在线观看一区| 午夜视频在线网站| 欧美日韩中文字幕一区二区三区| 91国产视频在线| 国产夫绿帽单男3p精品视频| 国产精品国产三级国产aⅴ原创| 中文字幕乱码人妻综合二区三区| 亚洲精品a区| 黄色精品免费| 麻豆国产va免费精品高清在线| 丰满少妇xoxoxo视频| 成人福利视频在线| 久久亚洲a v| 99亚洲乱人伦aⅴ精品| 久99久在线视频| 亚洲成人黄色片| 一二三区精品福利视频| 亚洲av毛片在线观看| 91精品国偷自产在线电影| 亚洲精品欧美日韩| 麻豆免费在线观看| 7799精品视频| 国产女人18水真多毛片18精品 | 特种兵之深入敌后| 一区二区三区中文| av资源一区二区| av女在线播放| 亚洲欧美成人网| 亚洲天堂视频在线播放| 国产精品久久久久毛片软件| 欧美国产日韩另类 | 秋霞蜜臀av久久电影网免费| 午夜美女久久久久爽久久| 四虎电影院在线观看| 日本韩国精品一区二区在线观看| 欧美自拍偷拍网| 国产精品资源网| 国产av国片精品| 欧美猛男同性videos| 国产精品亚发布| av男人的天堂在线| 欧美巨大另类极品videosbest| 欧美国产日韩在线观看成人 | 国产99午夜精品一区二区三区| av小说在线播放| 亚洲一二三在线| 国产伦子伦对白视频| 亚洲成av人片一区二区三区| 亚洲熟妇一区二区三区| 久久精品国产精品亚洲精品| 高清无码视频直接看| 久草成人资源| 51国产成人精品午夜福中文下载| 2014亚洲天堂| 美女久久精品| 国语自产偷拍精品视频偷| 国产精品一区在线看| 欧美一级午夜免费电影| 久久久午夜影院| 中文字幕中文字幕在线一区| 中文视频在线观看| 免费不卡在线观看| 欧美 日韩 亚洲 一区| japanese国产精品| 国产乱码精品一区二区三区日韩精品| 经典三级一区二区| 欧美成人午夜激情视频| 国产福利在线视频| 亚洲第一av在线| 中文字幕日韩国产| 午夜精品久久久久久久99樱桃| 亚洲欧美日韩第一页| 99在线视频精品| 极品人妻一区二区| 日本最新不卡在线| 黄色一级在线视频| 中文字幕人成人乱码| 欧洲一区二区日韩在线视频观看免费| 欧洲精品99毛片免费高清观看| 国产欧美日韩久久| 日本手机在线视频| 91av精品| 无码免费一区二区三区免费播放| 成人免费在线电影网| 91久久久久久国产精品| 欧美色片在线观看| 97超级碰在线看视频免费在线看| 国产不卡在线| 日韩在线视频网| 国产视频网站在线| 国产视频精品久久久| 人妻夜夜爽天天爽| 精品国产麻豆免费人成网站| 国产chinasex对白videos麻豆| 欧美日韩一二三区| 欧美 亚洲 另类 激情 另类| 欧美色另类天堂2015| 尤物视频在线观看国产| 亚洲午夜精品17c| 久久久久成人网站| 一区二区三区四区在线免费观看| 免费一级suv好看的国产网站| 久久精品人人做人人综合| 中文字幕狠狠干| 91老师国产黑色丝袜在线| 中文字幕天堂网| 国产在线1区| 婷婷一区二区三区| 日本一区二区三区免费视频| 一区二区三区波多野结衣在线观看 | 视频二区欧美| 亚洲综合精品伊人久久| 欧美.com| 成人黄色在线免费观看| 成人爽a毛片| 国产精品区免费视频| 成人在线tv视频| 国严精品久久久久久亚洲影视 | 日韩三区免费| 国产精品爱久久久久久久| 国内欧美日韩| 亚洲淫片在线视频| 99ri日韩精品视频| 国产一区二区免费在线观看| 亚欧洲精品视频在线观看| 蜜桃免费一区二区三区| 欧美日韩在线网站| 超碰成人在线免费观看| 欧美在线亚洲综合一区| 国产xxxx振车| 日韩免费在线电影| 亚洲国产精品欧美一二99| 欧美精品久久久久性色| 激情av一区二区| 欧美亚洲另类小说| 欧美裸体一区二区三区| 懂色av蜜臀av粉嫩av分享吧| 亚洲精品一区中文| av男人的天堂在线| 久久国产精品久久久久久久久久| 黄网在线免费看| 欧洲亚洲妇女av| 久久久久久久性潮| 91精品久久香蕉国产线看观看| 日本午夜精品久久久| 亚洲午夜精品一区二区| 国产精品v一区二区三区| 日本黄网站免费| 久久成人麻豆午夜电影| 国产一卡二卡三卡四卡| 国产亚洲一本大道中文在线| 国产精品久久久久久久精| 欧美视频二区36p| 91精品国产综合久| 日韩电影大全免费观看2023年上 | 久久最新资源网| 黄视频网站在线观看| 国产女人精品视频| 加勒比色老久久爱综合网| 亚洲激情一二三区| 一道本在线观看| 亚洲欧美偷拍另类a∨色屁股| 日韩欧美视频在线免费观看| 欧美日韩精品免费| 日韩精品视频无播放器在线看 | 日韩精品一区二区三区在线播放| 性xxxxbbbb| 久久视频在线观看免费| 欧美成人免费电影| 99视频在线免费观看| 国产精选一区| 国产日韩欧美精品在线观看| 麻豆精品久久精品色综合| 国产又粗又猛又色| 亚洲三级在线播放| 日本中文字幕久久| 亚洲的天堂在线中文字幕| 免费看a在线观看| 国产成人精品综合久久久| 91大神精品| 先锋影音男人资源| 免费成人av资源网| 四虎永久免费在线观看| 午夜视频在线观看一区二区 | 97久久精品视频| 一区二区三区视频免费看| 日本福利一区二区| 青青操在线视频| 91精品国产91久久久久| 亚洲精品在线国产| 玖玖精品在线视频| 另类小说视频一区二区| 免费看黄色av| 色综合中文字幕| 色天堂在线视频| 久久免费国产视频| 欧美午夜网站| 在线一区高清| 精品一区免费av| 大胸美女被爆操| 欧美日韩一级视频| 午夜在线视频| 成人免费xxxxx在线观看| 999精品一区| 国产美女视频免费看| 国产精品短视频| 91成人国产综合久久精品| www.日韩.com| 亚洲三级电影| 裸体大乳女做爰69| 国产乱人伦偷精品视频免下载| 三级av在线免费观看| 欧美一区2区视频在线观看| 91麻豆免费在线视频| 91中文在线视频| 黄色日韩在线| 国产精品一级黄片| 精品国产乱码久久久久酒店| 美女视频久久| 9999国产精品| 99热这里只有精品2| 亚洲一区二区视频| 搡老岳熟女国产熟妇| 91精品国产高清自在线看超| 亚洲专区视频| 在线免费观看av的网站| |精品福利一区二区三区| 99久久国产热无码精品免费| 欧美国产亚洲视频| 欧洲亚洲视频| 污色网站在线观看| 亚洲品质自拍视频| 刘亦菲久久免费一区二区| 欧美亚洲第一页| 日本不卡二三区| 黄色a级三级三级三级| 亚洲尤物视频在线| 内衣办公室在线| 国产日韩在线视频| 欧美女激情福利| 亚洲观看黄色网| 欧美亚洲禁片免费| av黄色在线| 久久精品国产一区二区三区日韩| 日韩在线观看一区二区| 欧美三级在线免费观看| 精品偷拍各种wc美女嘘嘘| 欧美大片网站| 日韩伦理在线免费观看| 国产欧美视频在线观看| 国产高清精品软件丝瓜软件| 4444欧美成人kkkk| 国产精品99在线观看| 热久久99这里有精品| 成人四虎影院| 97超碰国产精品| 国产欧美一区二区三区沐欲| www.久久久久久久久久| 国产99久久精品一区二区 夜夜躁日日躁| 97色伦图片97综合影院| 91精品小视频| 欧美一区二区久久久| 国产免费不卡| 国产精品久久国产|