1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        6 個 JVM 性能監(jiān)控、調(diào)優(yōu)工具使用詳解!

        共 20443字,需瀏覽 41分鐘

         ·

        2021-03-26 08:31

        公眾號關(guān)注“杰哥的IT之旅”,
        選擇“星標(biāo)”,重磅干貨,第一時間送達(dá)!

        現(xiàn)實企業(yè)級Java應(yīng)用開發(fā)、維護(hù)中,有時候我們會碰到下面這些問題:

        • OutOfMemoryError,內(nèi)存不足

        • 內(nèi)存泄露

        • 線程死鎖

        • 鎖爭用(Lock Contention)

        • Java進(jìn)程消耗CPU過高

        • ……

        這些問題在日常開發(fā)、維護(hù)中可能被很多人忽視(比如有的人遇到上面的問題只是重啟服務(wù)器或者調(diào)大內(nèi)存,而不會深究問題根源),但能夠理解并解決這些問題是Java程序員進(jìn)階的必備要求。本文將對一些常用的JVM性能調(diào)優(yōu)監(jiān)控工具進(jìn)行介紹,希望能起拋磚引玉之用。

        而且這些監(jiān)控、調(diào)優(yōu)工具的使用,無論你是運(yùn)維、開發(fā)、測試,都是必須掌握的。

        jps(Java Virtual Machine Process Status Tool)

        jps主要用來輸出JVM中運(yùn)行的進(jìn)程狀態(tài)信息。語法格式如下:

        jps [options] [hostid]

        如果不指定hostid就默認(rèn)為當(dāng)前主機(jī)或服務(wù)器。

        命令行參數(shù)選項說明如下:

        • -q 不輸出類名、Jar名和傳入main方法的參數(shù)

        • -m 輸出傳入main方法的參數(shù)

        • -l 輸出main類或Jar的全限名

        • -v 輸出傳入JVM的參數(shù)

        比如下面:

        root@ubuntu:/# jps -m -l
        2458 org.artifactory.standalone.main.Main /usr/local/artifactory-2.2.5/etc/jetty.xml
        29920 com.sun.tools.hat.Main -port 9998 /tmp/dump.dat
        3149 org.apache.catalina.startup.Bootstrap start
        30972 sun.tools.jps.Jps -m -l
        8247 org.apache.catalina.startup.Bootstrap start
        25687 com.sun.tools.hat.Main -port 9999 dump.dat
        21711 mrf-center.jar

        jstack

        jstack主要用來查看某個Java進(jìn)程內(nèi)的線程堆棧信息。語法格式如下:

        jstack [option] pid
        jstack [option] executable core
        jstack [option] [server-id@]remote-hostname-or-ip

        命令行參數(shù)選項說明如下:

        • -l long listings,會打印出額外的鎖信息,在發(fā)生死鎖時可以用jstack -l pid來觀察鎖持有情況-m mixed mode,不僅會輸出Java堆棧信息,還會輸出C/C++堆棧信息(比如Native方法)

        jstack可以定位到線程堆棧,根據(jù)堆棧信息我們可以定位到具體代碼,所以它在JVM性能調(diào)優(yōu)中使用得非常多。下面我們來一個實例找出某個Java進(jìn)程中最耗費CPU的Java線程并定位堆棧信息,用到的命令有ps、top、printf、jstack、grep。

        第一步先找出Java進(jìn)程ID,我部署在服務(wù)器上的Java應(yīng)用名稱為mrf-center:

        root@ubuntu:/# ps -ef | grep mrf-center | grep -v grep
        root     21711     1  1 14:47 pts/3    00:02:10 java -jar mrf-center.jar

        得到進(jìn)程ID為21711,第二步找出該進(jìn)程內(nèi)最耗費CPU的線程,可以使用ps -Lfp pid或者ps -mp pid -o THREAD, tid, time或者top -Hp pid,我這里用第三個,輸出如下:

        TIME列就是各個Java線程耗費的CPU時間,CPU時間最長的是線程ID為21742的線程,用

        printf "%x\n" 21742

        得到21742的十六進(jìn)制值為54ee,下面會用到。

        OK,下一步終于輪到j(luò)stack上場了,它用來輸出進(jìn)程21711的堆棧信息,然后根據(jù)線程ID的十六進(jìn)制值grep,如下:

        root@ubuntu:/# jstack 21711 | grep 54ee
        "PollIntervalRetrySchedulerThread" prio=10 tid=0x00007f950043e000 nid=0x54ee in Object.wait() [0x00007f94c6eda000]

        可以看到CPU消耗在PollIntervalRetrySchedulerThread這個類的Object.wait(),我找了下我的代碼,定位到下面的代碼:

        // Idle wait
        getLog().info("Thread [" + getName() + "] is idle waiting...");
        schedulerThreadState = PollTaskSchedulerThreadState.IdleWaiting;
        long now = System.currentTimeMillis();
        long waitTime = now + getIdleWaitTime();
        long timeUntilContinue = waitTime - now;
        synchronized(sigLock) {    try {
                if(!halted.get()) {
                    sigLock.wait(timeUntilContinue);
                }
            }     catch (InterruptedException ignore) {
            }
        }

        它是輪詢?nèi)蝿?wù)的空閑等待代碼,上面的sigLock.wait(timeUntilContinue)就對應(yīng)了前面的Object.wait()。

        jmap(Memory Map)和jhat(Java Heap Analysis Tool)

        jmap用來查看堆內(nèi)存使用狀況,一般結(jié)合jhat使用。

        jmap語法格式如下:

        jmap [option] pid
        jmap [option] executable core
        jmap [option] [server-id@]remote-hostname-or-ip

        如果運(yùn)行在64位JVM上,可能需要指定-J-d64命令選項參數(shù)。

        jmap -permstat pid

        打印進(jìn)程的類加載器和類加載器加載的持久代對象信息,輸出:類加載器名稱、對象是否存活(不可靠)、對象地址、父類加載器、已加載的類大小等信息,如下圖:

        使用jmap -heap pid查看進(jìn)程堆內(nèi)存使用情況,包括使用的GC算法、堆配置參數(shù)和各代中堆內(nèi)存使用情況。比如下面的例子:

        root@ubuntu:/# jmap -heap 21711
        Attaching to process ID 21711, please wait...
        Debugger attached successfully.
        Server compiler detected.
        JVM version is 20.10-b01

        using thread-local object allocation.
        Parallel GC with 4 thread(s)

        Heap Configuration:
        MinHeapFreeRatio = 40   
        MaxHeapFreeRatio = 70   
        MaxHeapSize      = 2067791872 (1972.0MB)
        NewSize          = 1310720 (1.25MB)
        MaxNewSize       = 17592186044415 MB
        OldSize          = 5439488 (5.1875MB)
        NewRatio         = 2   
        SurvivorRatio    = 8   
        PermSize         = 21757952 (20.75MB)
        MaxPermSize      = 85983232 (82.0MB)

        Heap Usage:
        PS Young Generation
        Eden Space:
           capacity = 6422528 (6.125MB)
           used     = 5445552 (5.1932830810546875MB)
           free     = 976976 (0.9317169189453125MB)
           84.78829520089286% used
        From Space:
           capacity = 131072 (0.125MB)
           used     = 98304 (0.09375MB)
           free     = 32768 (0.03125MB)
           75.0% used
        To Space:
           capacity = 131072 (0.125MB)
           used     = 0 (0.0MB)
           free     = 131072 (0.125MB)
           0.0% used
        PS Old Generation
           capacity = 35258368 (33.625MB)
           used     = 4119544 (3.9287033081054688MB)
           free     = 31138824 (29.69629669189453MB)
           11.683876009235595% used
        PS Perm Generation
           capacity = 52428800 (50.0MB)
           used     = 26075168 (24.867218017578125MB)
           free     = 26353632 (25.132781982421875MB)
           49.73443603515625% used
           ....

        使用jmap -histo[:live] pid查看堆內(nèi)存中的對象數(shù)目、大小統(tǒng)計直方圖,如果帶上live則只統(tǒng)計活對象,如下:

        root@ubuntu:/# jmap -histo:live 21711 | more 
        num     #instances         #bytes  class name----------------------------------------------
           1:         38445        5597736  <constMethodKlass>
           2:         38445        5237288  <methodKlass>
           3:          3500        3749504  <constantPoolKlass>
           4:         60858        3242600  <symbolKlass>
           5:          3500        2715264  <instanceKlassKlass>
           6:          2796        2131424  <constantPoolCacheKlass>
           7:          5543        1317400  [I
           8:         13714        1010768  [C
           9:          4752        1003344  [B
          10:          1225         639656  <methodDataKlass>
          11:         14194         454208  java.lang.String
          12:          3809         396136  java.lang.Class
          13:          4979         311952  [S
          14:          5598         287064  [[I
          15:          3028         266464  java.lang.reflect.Method
          16:           280         163520  <objArrayKlassKlass>
          17:          4355         139360  java.util.HashMap$Entry
          18:          1869         138568  [Ljava.util.HashMap$Entry;
          19:          2443          97720  java.util.LinkedHashMap$Entry
          20:          2072          82880  java.lang.ref.SoftReference
          21:          1807          71528  [Ljava.lang.Object;
          22:          2206          70592  java.lang.ref.WeakReference
          23:           934          52304  java.util.LinkedHashMap
          24:           871          48776  java.beans.MethodDescriptor
          25:          1442          46144  java.util.concurrent.ConcurrentHashMap$HashEntry
          26:           804          38592  java.util.HashMap
          27:           948          37920  java.util.concurrent.ConcurrentHashMap$Segment
          28:          1621          35696  [Ljava.lang.Class;
          29:          1313          34880  [Ljava.lang.String;
          30:          1396          33504  java.util.LinkedList$Entry
          31:           462          33264  java.lang.reflect.Field
          32:          1024          32768  java.util.Hashtable$Entry
          33:           948          31440  [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;

        class name是對象類型,說明如下:

        B  byte
        C  char
        D  double
        F  float
        I  int
        J  long
        Z  boolean
        [  數(shù)組,如[I表示int[]
        [L+類名 其他對象

        還有一個很常用的情況是:用jmap把進(jìn)程內(nèi)存使用情況dump到文件中,再用jhat分析查看。jmap進(jìn)行dump命令格式如下:

        jmap -dump:format=b,file=dumpFileName pid

        我一樣地對上面進(jìn)程ID為21711進(jìn)行Dump:

        root@ubuntu:/# jmap -dump:format=b,file=/tmp/dump.dat 21711     
        Dumping heap to /tmp/dump.dat ...
        Heap dump file created

        dump出來的文件可以用MAT、VisualVM等工具查看,這里用jhat查看:

        root@ubuntu:/# jhat -port 9998 /tmp/dump.dat
        Reading from /tmp/dump.dat...
        Dump file created Tue Jan 28 17:46:14 CST 2014Snapshot read, resolving...
        Resolving 132207 objects...
        Chasing references, expect 26 dots..........................
        Eliminating duplicate references..........................
        Snapshot resolved.
        Started HTTP server on port 9998Server is ready.

        注意如果Dump文件太大,可能需要加上-J-Xmx512m這種參數(shù)指定最大堆內(nèi)存,即jhat -J-Xmx512m -port 9998 /tmp/dump.dat。然后就可以在瀏覽器中輸入主機(jī)地址:9998查看了:

        上面紅線框出來的部分大家可以自己去摸索下,最后一項支持OQL(對象查詢語言)。

        jstat(JVM統(tǒng)計監(jiān)測工具)

        語法格式如下:

        jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]

        vmid是Java虛擬機(jī)ID,在Linux/Unix系統(tǒng)上一般就是進(jìn)程ID。interval是采樣時間間隔。count是采樣數(shù)目。比如下面輸出的是GC信息,采樣時間間隔為250ms,采樣數(shù)為4:

        root@ubuntu:/# jstat -gc 21711 250 4 
        S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   
        192.0  192.0   64.0   0.0    6144.0   1854.9   32000.0     4111.6   55296.0 25472.7    702    0.431   3      0.218    0.649
        192.0  192.0   64.0   0.0    6144.0   1972.2   32000.0     4111.6   55296.0 25472.7    702    0.431   3      0.218    0.649
        192.0  192.0   64.0   0.0    6144.0   1972.2   32000.0     4111.6   55296.0 25472.7    702    0.431   3      0.218    0.649
        192.0  192.0   64.0   0.0    6144.0   2109.7   32000.0     4111.6   55296.0 25472.7    702    0.431   3      0.218    0.649

        要明白上面各列的意義,先看JVM堆內(nèi)存布局:

        可以看出:

        堆內(nèi)存 = 年輕代 + 年老代 + 永久代
        年輕代 = Eden區(qū) + 兩個Survivor區(qū)(FromTo

        現(xiàn)在來解釋各列含義:

        S0C、S1C、S0U、S1U:Survivor 0/1區(qū)容量(Capacity)和使用量(Used)
        EC、EU:Eden區(qū)容量和使用量
        OC、OU:年老代容量和使用量
        PC、PU:永久代容量和使用量
        YGC、YGT:年輕代GC次數(shù)和GC耗時
        FGC、FGCT:Full GC次數(shù)和Full GC耗時
        GCT:GC總耗時

        hprof(Heap/CPU Profiling Tool)

        hprof能夠展現(xiàn)CPU使用率,統(tǒng)計堆內(nèi)存使用情況。語法格式如下:

        java -agentlib:hprof[=options] ToBeProfiledClass
        java -Xrunprof[:options] ToBeProfiledClass
        javac -J-agentlib:hprof[=options] ToBeProfiledClass

        完整的命令選項如下:

        Option Name and Value  Description                    Default
        ---------------------  -----------                    -------
        heap=dump|sites|all    heap profiling                 all
        cpu=samples|times|old  CPU usage                      off
        monitor=y|n            monitor contention             n
        format=a|b             text(txt) or binary output     a
        file=<file>            write data to file             java.hprof[.txt]
        net=<host>:<port>      send data over a socket        off
        depth=<size>           stack trace depth              4
        interval=<ms>          sample interval in ms          10
        cutoff=<value>         output cutoff point            0.0001
        lineno=y|n             line number in traces?         y
        thread=y|n             thread in traces?              n
        doe=y|n                dump on exit?                  y
        msa=y|n                Solaris micro state accounting n
        force=y|n              force output to <file>         y
        verbose=y|n            print messages about dumps     y

        來幾個官方指南上的實例。

        CPU Usage Sampling Profiling(cpu=samples)的例子:

        java -agentlib:hprof=cpu=samples,interval=20,depth=3 Hello

        上面每隔20毫秒采樣CPU消耗信息,堆棧深度為3,生成的profile文件名稱是java.hprof.txt,在當(dāng)前目錄。

        CPU Usage Times Profiling(cpu=times)的例子,它相對于CPU Usage Sampling Profile能夠獲得更加細(xì)粒度的CPU消耗信息,能夠細(xì)到每個方法調(diào)用的開始和結(jié)束,它的實現(xiàn)使用了字節(jié)碼注入技術(shù)(BCI):

        javac -J-agentlib:hprof=cpu=times Hello.java

        Heap Allocation Profiling(heap=sites)的例子:

        javac -J-agentlib:hprof=heap=sites Hello.java

        Heap Dump(heap=dump)的例子,它比上面的Heap Allocation Profiling能生成更詳細(xì)的Heap Dump信息:

        javac -J-agentlib:hprof=heap=dump Hello.java

        雖然在JVM啟動參數(shù)中加入-Xrunprof:heap=sites參數(shù)可以生成CPU/Heap Profile文件,但對JVM性能影響非常大,不建議在線上服務(wù)器環(huán)境使用。

        作者:愛編程的浪子
        來源:https://my.oschina.net/u/4139951/blog/3060210

        推薦閱讀

        這份 Git 應(yīng)急手冊,關(guān)鍵時刻可保你一命

        MongoDB 運(yùn)維實戰(zhàn)總結(jié)

        再見 FTP/SFTP,是時候擁抱下一代文件傳輸利器 Croc 了!

        Grafana 中文入門教程 | 構(gòu)建你的第一個儀表盤

        6 個超實用的 Sudo 命令使用技巧

        瀏覽 44
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日本成人黄色视频| 亚洲激情五月天| 青青草成人网| 亚洲精品99| 无码人妻一区二区三区精品不付款| 草视频| 天天日天天舔| 欧美,日韩,日| 91双飞会所双飞在线| 青青草无码在线视频| 人妻av一区二区三区| 视频一区二区免费| 国产AV综合网| 久久青娱乐| 午夜人妻AV| 国产在线观看91| 欧美成人怡红院| 四川婬妇BBw搡BBBB搡| 日韩精品中文字幕无码| 99热自拍| 国产AV影视| 日韩经典视频在线播放| 亚洲乱码国产乱码精品天美传媒| 亚洲国产精品18久久久久久| 国产精品国产三级国产| 安徽妇搡BBBB搡BBBB按摩| 日本中文字幕免费| 99黄色| 日本无码视频在线观看| 亚洲操逼图| 色色色色色色网站| 一本大道久久久久| 亚洲精品乱码久久久久久久 | 不卡无码免费| 丰满人妻-区二区三区| 国产家庭乱伦| 奇米色五月| 日本精品视频在线观看| 男人AV网| 在线观看一级片| 亚洲欧美国产高清vA在线播放| 一区二区三区免费在线观看| 丁香六月综合| 无码高清在线播放| 91视频福利网| 欧美日韩在线视频免费| 91视频人人| 一级女婬片A片AAAA片| 99re在线视频| 美女AV网站| 久久免费播放视频| 激情五月天网址| www.麻豆网91成人久久久| 欧美日韩逼| 51国产视频| 亚洲丁香网| 军人妓女院BD高清片在线播放| 97爱| 久久色在线视频| 成人在线综合| 又紧又嫩又爽无遮挡免费| 强伦轩一区二区三区四区播放方式 | 女生自慰在线观看| 日本色中文字幕| 欧美丁香五月| 午夜福利片| 超碰在线人人干| 美女特黄视频| 免费视频二区| 超碰在线免费| 色五月电影| 久久久WWW成人免费精品| 欧美一卡二卡三卡| 特级西西444www高清大胆免费看 | 欧美熟女18| 国产一级电影网站| 三级中文无码| 久久综合中文字幕| 白丝在线观看| 一道本无码在线视频| 黄色成人在线视频| 国产69av| 激情午夜av| 亚洲综合图区| 97综合久久| 中文字幕人妻在线中文乱码怎么解决| 亚洲精品娱乐| 操女人逼AV| 欧美日韩网| 人人干日日干| 色色热| 青操AV| 久久久免费观看视频| 亚洲成人av在线观看| 激情性爱婷婷色五月| 亚洲福利免费观看| 性猛交AAAA片免费看蜜桃视频| 另类老妇性bbwbbwbbw| 奇米无码| 91精品一区二区| 国产91嫩草乱婬A片2蜜臀 | 国产无码一二三区| 青娱乐毛片| 国产欧美一级片| 色综合久久久无码中文字幕999| 色噜噜狠狠色综无码久久合欧美 | 亚洲天堂一区在线观看| 久久久久99精品成人网站| 最新中文字幕视频| 国产18毛片18水多精品| 伊人在线观看视频| 精品无码一区二区三区在线| 日本黄色三级视频| 二级黄色视频| 91精品国产偷窥一区二区| 免费观看高清无码视频| 亚洲免费观看高清完整版在线| 欧美性爱精品一区| 国产九九热视频| 88av在线| 97人妻精品一区二区三区免| 亚洲精品高清无码| 高清无码免费在线视频| 婷婷在线电影| 翔田千里高潮90分钟| 国产丝袜人妖TS系列| 日韩无码不卡| 国产在线观看91| 日韩性爱网站| 国产做受91电影| 久久性爱视频| 伊人综合大香蕉| 无码高清在线观看| 国产主播中文字幕| 加勒比日日综合| 另类欧美色图| 吴梦梦《女教师时间暂停》| 精品伊人| 日本少妇黄色视频| 91视频专区| 操大逼视频免费国产| 日韩AV免费电影| 久色入口| 欧美亚洲天堂网| 另类老妇奶性生BBwBBw偷拍| 日韩一级无码视频| 国产污视频在线观看| av天天干| a√免费看| 国精产品一区一区三区四区| 国产精品揄拍500视频| 熟女少妇网站| 日韩高清一级| 国产精品秘国产精品88| 中文字幕+乱码+中文乱码91| 欧美成人无码一区二区三区| 99国产视频| 亚洲性片| 性猛交╳XXX乱大交| 中文字幕一区二区三区免费2023| 亚洲视频在线免费| 日韩一二三| 日韩精品成人免费观看视频| 欧洲黑人成人A版免费视频| 免费无码又爽又黄又刺激网站| 欧美一级操| 久久草大香蕉| 国产又粗又猛又黄又爽无遮挡 | 99欧美| WWW久久久| 国产精品9999久久久久仙踪林 | 成人精品一区二区三区视频| 久久永久视频| 超碰在线观看免费版| 国产在线成人| 麻豆自拍偷拍视频| 秋霞无码一区二区三区| 欧美黄色三级片| a片网站在线观看| 免费无码成人片在线观看在线| 黄片大全在线免费观看| 免费三区| 97色在线| 超碰人| 色吧综合网| 色综合一区二区| 日韩69视频| 噜噜视频| 久久77777| 69成人国产| 欧美视频免费| 大香蕉婷婷五月天| 国产伦理一区| 韩国精精品视频| 亚洲操逼逼| 成人网站AV| A级毛片网站| 伊人9999| 亚洲视频,中文字幕| 最新中文字幕在线播放| 国产一级特黄A片| 青青草原网站在线观看| 91人妻无码精品| a视频在线| 久久99人妻无码精品一区| 国产做受| 东方美美高清无码一区| 69国产精品成人无码| 想要xx视频| 18禁网站网址| 日韩无码播放| 国产视频一区二区三区四区五区| 婷婷无码成人精品俺来俺去| 亚洲第一狼人综合网| 中文字幕第69页| 操逼黄视频| 开心四房播播第四婷婷| 777777国产7777777| 黄色小视频免费| 99唉撸吧视频免费| 色欲插插| 豆花在线视频| 首屈一指视频在线观看| 性欧美XXXX| 草逼免费视频| av自拍| 屁屁影院CCYYCOM发布地| 人人看人人搞人人摸| 人妻中文无码| 乖我硬了让老子cao你小视频| 激情五月婷婷综合| 91麻豆国产视频| AV你懂得| 日韩欧美国产高清91| 亚洲欧美国产日韩字幕| a一级黄片| 午夜无码福利在线观看| 中文字幕天堂网| 91视频免费观看| 国产精品扒开腿做爽爽爽A片唱戏| 亚洲国产毛片| 亚洲午夜av| 国产精品视频在线播放| 欧美性爱-熊猫成人网| 最新国产在线| 国产—a毛—a毛A免费看图| 久草毛片| 天堂va欧美va亚洲va在线| 国产白丝视频| 午夜av在线免费观看| 69人人| 无码人妻一区二区三一区免费n狂飙| 青草视频在线观看免费| 亚洲天堂AV2025| 婷婷五月激情中文字幕| 中文字幕一区二区三区人妻在线视频 | 国产区在线观看| 日韩欧美中文字幕在线观看| 一级电影网站| 日韩电影无码| 牛牛Av| 操逼视频国产| 久草社区| 亚洲小说区图片区| 影音先锋亚洲无码| 丁香五月在线| 91干穴穴在线观看| 亚洲激情网址| 国外亚洲成AV人片在线观看| JlZZJLZZJlZZ亚洲女人17| 无码国产传媒精品一区| 日本a片免费| 黄色一级生活片| 大香蕉伊人免费| 国产精品一卡二卡三卡| 美女被操面费网站| 少婦揉BBBB揉BBBB揉| 婷婷五月天电影网| 亚洲精品乱码久久久久久久 | 免费+无码+精品| 日本一区二区视频在线观看| 日本黄色大片网站| 91成人A片| 婷婷五月天激情电影| 日韩在线三级片| 97AV人妻无码视频二区| 国产无套内射视频| 国产精品93333333| 国产成人av在线| 在线观看日本vs欧洲vs美洲| 91九色口爆吞精| 五十路在线| 色妞一區| 日本久久精品| 秋霞午夜久久| 日韩高清区| 91人人操人人爽| 欧美另类色| 国产成人午夜福利在线| 911亚洲精品| 国产操逼片| 妖精视频黄色| 黄片视频在线免费播放| www,久久久| 亚洲精品午夜| 91国产视频在线观看| www.国产在线观看| 成人国产精品视频| 亚洲高清无码在线| 午夜免费性爱视频| 污污污污污www在线观看优势 | 伊人性爱网| 久99久热| 久久精品视频在线观看| 欧美日韩男女淫乱一区二区| 97视频福利| 高潮无码在线观看| 人人干人人上| 性满足BBWBBWBBW| 激情五月天成人| 欧美性爱超碰| 91精品91久久久中77777| 嫩BBB槡BBBB槡BBBB免费视频| 在线免费观看网站| 日韩久久电影| 蜜桃av秘无码一区二区三区 | 欧美日韩在线观看一区二区三区| 操操操av| 偷拍777| 国产肏屄视频| 久久久久久精品国产三级| 五月天视频网| 西西4444大胆无码视频| 91免费高清视频| 成人A片在线观看| 在线日韩中文字幕| 亚洲成人在线视频免费观看| 国内自拍偷拍视频| 日韩精品成人在线| 亚洲中文字幕电影| 在线观看黄色| 刘玥一区二区| 黄色AV免费看| 日皮做爱视频网站| 无码综合| 香蕉视频一区| 蜜臀久久99精品久久久电影| 插逼视频国产| 日韩高清欧美| 国产亲子乱XXXXinin| 91在线亚洲| 韩国一区二区三区在线观看| 日韩av第一页| 操逼观看| 91视频美女内射| 日韩动态视频| 免费操| 蜜桃91精品秘入口| 怡红院一区二区| 国产精品成人在线| 亚洲无码自拍| 影音先锋三级资源| 7777AV| 久久久久久久久久久久久自慰小片 | 欧美级毛片一进一出| 91视频福利网| 中日韩特黄A片免费视频| 免费无码视频在线观看| 欧美日韩一区二区三区四区五区六区| 99久久夜色精品国产亚洲| 永久免费一区二区三区| 高清人妻无码| 亚洲成人无码av| 无码性爱视频| a视频免费看| 无码精品视频在线观看| A一级横色大片| 成人免费乱码大片a毛片蜜芽| 91aaa在线观看| 精品国产自| 亚洲精品国偷拍自产在线观看蜜桃| 欧一美一婬一伦一区二区三区自慰| 少妇熟女视频| 91精品内射| 淫荡少妇美红久久久久久久久久| 无码六区| 天天日天天操天天干| 伊人成人网视频| 午夜高清视频| 三级黄色免费| 欧美一区二区三区不卡| 亚洲天堂在线观看视频| 成人精品一区日本无码网站suv| 日韩毛片网站| 精品乱子伦一区二区在线播放| 免费操B视频| 97精品人妻一区| 在线免费观看网站| 五月天激情婷婷| 特黄色A级片视频| 人妻丰满熟妇av无码区| 欧美狼友| 亚洲无码在线视频观看| 黄片视频免费| 人人看AV| 久热精品视频| 在线播放亚洲无码| 在线视频第一页| 99久久人妻无码中文字幕系列| 四虎精品一区二区| 亚洲最新在线视频| 中文字幕日韩高清| 日本成片网| 亚洲天堂精品视频| 免费人成年激情视频在线观看| 日日射天天干| 肏逼网| 亚洲天堂视频在线播放| 69视频在线观看| 可以免费看av的网站| 亚洲AV无码国产精品| 免费在线看A| 欧美天天| 超碰97在线精品国产| 九九热只有精品| va婷婷在线免费观看| 欧美成人一区二区| 粉嫩小泬BBBBBB免费看| 亚洲成人av| 日日操夜夜| 一级a片激情啪啪免费观| 夜夜爽妓女77777毛片A片| 汇聚全球淫荡熟女| 五月婷婷六月色| 最新中文字幕在线播放| 无码人妻精品一区二区三区99仓 | 日韩成人视频在线观看| 亚洲国产成人AV| 嘿咻无码推油| 高清无码黄| 丁香五月天色婷婷| 欧美日比视频| 制服丝袜一区| 国产精品久久久久永久免费看| 91丨九色丨老熟女探花| 91三级片| 九九在线观看视频| 久久思热国产| 操操影视| 国产丝袜自拍| 久久久久久国产免费A片| www.天天射| 日韩欧美中文字幕视频| 天天看天天操| 伊人操逼| 国产美女操逼网站| JiZZjiZZ亚洲成熟熟妇| 俺来也俺去www色情网| 91九九| 免费十无码| 91在线看18| 国产丨熟女丨国产熟女视频| 黄色A片免费视频| 亚洲AV无码第一区二区三区蜜桃 | h片在线免费观看| 亚洲国产爱| 天天干婷婷五月天| 人妻少妇精品视频| www.婷婷六月天| 欧美午夜精品久久久久免费视| 激情视频网| 在线国产中文字幕| 亚洲免费观看A∨中文| 中文字幕日本| Japanese在线观看| 91嫖妓站街埯店老熟女| 逼特逼| 国产综合久久777777麻豆 | 婷婷五月天在线电影| 学生妹做爱视频| 青青草大香蕉伊人| 欧美久草蜜桃视频| 精精品人妻一区二区三区| 中文字幕有码在线看| 日韩AV无码专区亚洲AV紧身裤| 偷拍第一页| 俺去也www俺去也com| 国产精品成人69| 欧美三P囗交做爰| 色婷婷一区二区三区久久| 黑人精品XXX一区一二区| 伊人黄片| 午夜成人小电影| 亚洲综合色网站| 五月丁香婷婷开心| 亚洲色图偷拍| 无码人妻中文字幕| 西西WWW888大胆无码| 久久无码影院| 91玖玖| 俺也去在线| 欧美日韩字幕| 亚洲成人无码片| 中国老熟妇| 日本一级黄色电影| 俺来也在线视频| av一卡二卡| 亚洲人妻电影一区| 俺去俺来也www色视频| 伊人一区二区三区| 精品视频999| 俺也去色色| 狠狠干高清成人二区三区| 尻屄视频在线观看| 亚州高清无码视频| 动漫啪啪视频| 国产一级做a爱免费视频| 亚洲天堂女| 怡红院av| 色色色五月| 亚洲av自拍| 国产1级a毛a毛1级a毛1级| 婷婷五月天丁香成人社区| 成人国产精品秘久久久网站| 人妻无码一区二区三区摄像头| 日本无码在线视频| 美国黄色A片| 狠狠干老司机| 中文字幕韩日| 99偷拍| 18禁日韩| 中文字幕人妻互换av久久| 成人网站免费视频| 國產精品777777777| 高清免费在线中文Av| 免费V片在线观看| 91国产精品| 大黑鸡巴视频| 特级黄色视频| 麻豆911| 中文字幕在线电影| 久久大香蕉精品| 黄色电影AV| 玖玖中文字幕| 亚洲日操| 秋霞久久日| 九九无码| 日韩人妻无码专区| 在线观看日本vs欧洲vs美洲| 国产二区三区| 久久毛片视频| 欧美国产日韩在线观看| 91成人在线电影| 麻豆成人精品| 中文在线A∨在线| 日韩成人无码电影网站| 久热这里只有| www.伊人大香蕉| 91亚洲精品久久久久蜜桃| 日本黄色视频免费看| 亚洲国产成人精品女人| 大鸡巴在线观看| 久久亚洲国产| 豆花视频成人精品视频| 欧美日本在线观看| 麻豆AV在线观看| 黄色网页在线免费观看| 日韩熟妇无码中文字慕| 亚洲中文字幕在| 99久久99久久精品免费看小说。 | 青草社区在线观看| 日韩三区| h片在线免费观看| 91香蕉视频| AV中文在线| 伊人网在线观看| 国产色情性黄片Av网站| 日韩毛片视频| 欧美性爱在线观看| 91精品国产综合久久久久久| 五月丁香在线视频| 日本免费A片| 99精品视频免费观看| 亚洲色图15P| 色婷婷在线播放| 殴美色色网| 私人玩物』黑絲OL尤物| 成人三级电影网| 亚欧成人在线视频| 久艹久| 久久香蕉电影| 无码三级在线播放| 最新亚洲无码在线观看| 欧美老熟妇BBBBB搡BBB| 亚洲热在线视频| 91久久久久久久久久久久18| 日美女网站| 摸BBB搡BBB搡BBBB| AV自拍偷拍| 日韩在线视频91| 日本成人三级片| 国产在线中文字幕| 久久精品成人电影| 日本免费爱爱视频| 91视频网站| 国产精品秘入口18禁网站| 黄色av免费看| 永久免费叼嘿| 欧美日韩婷婷| AV黄页| 欧美精产国品一区二区区别| 肏屄视频在线| 亚洲成人在线免费观看| 国产黄色录像| 444444免费高清在线观看电视剧的注意| 亚洲色婷| 在线h网站| 亚洲欧美日韩动漫| 天天爽天天日| 日韩AV中文字幕在线| 日本色色色| 欧美性爱在线观看| 国产精品久久久久久久久久二区三区| 69堂在线观看| 91在线视频免费播放| 91视频第一页| 日韩人妻AV| 无码AV在线观看| 成人无码www在线看免费| 国产亲子乱婬一级A片| 97资源网站| 婷婷五月综合激情| 少妇厨房愉情理伦BD在线观看| 免费看黄A级毛片成人片| 激情性爱五月天| 亚洲av在线观看| 欧美又粗又大AAA片| www.豆花社区成人| 伊人国产视频| 国产精品一区在线| 影音先锋成人在线| 欧美日韩AV| 色在线视频| 亚洲无码手机在线观看| 午夜无码熟妇丰满人妻| 成人网站在线免费观看| 国产三级一区| 国产无遮挡又黄又爽又色视频| 久久国产片| 无码人妻视频| 日韩在线视频不卡| 久天堂| 亚洲二级片| 草草网| 91在线无码视频| 亚洲毛片网站| 午夜久久久| 一区二区高清无码| 国产精品探花熟女| 精品亚洲一区二区三区四区五区| 欧美亚洲日韩国产| 91熟女视频| 一级aa视频| 神马午夜福利影院| 青青青草视频| 欧美淫秽视频| 午夜亚洲无码| 无码人妻精品一区二区蜜桃91| 欧美黄色网| 日韩Va| 欧美综合第一页| 熟妇导航| 亚洲aaaaaa| 人人免费操| 麻豆国产视频| 日本少妇性爱视频| 麻豆精品在线观看| 欧美日韩精品在线| 蜜桃在线一区| 亚洲成色A片77777在线小说| 日本无码中文字幕| 福利视频导航自拍| 在线观看av网站| 江苏妇搡BBBB搡BBB| 国产精品尤物| 欧美精品日韩| 91在线无码精品秘国产三年 | 国产无码一区| 黄色小说在线看| 一区二区国产精品| 国产系列每日更新| 69国产成人综合久久精品欧美 | 日韩欧美小电影| 天天干一干| 五月天丁香成人| 狠狠躁日日躁夜夜躁A片小说免费 色综合久久久无码中文字幕999 | 久色亚洲| 激情网五月天| 天天视频亚洲| 一区视频在线| 亚洲vs天堂vs成人vs无码| 欧美日韩一区二区三区四区| 亚洲卡一卡二| 一级成人电影| av一区二区三区四区| 中文字幕视频一区日日骚| 成人无码国产| 国产精品无码怀孕软件| 97在线资源| 国产欧美精品一区二区色综合| 91麻豆免费看| 欧美色视频一区二区三区在线观看| 国产成人午夜| 波多野结衣视频无码| 日韩精品一区在线观看| 久久精彩| 久久久精品午夜人成欧洲亚洲韩国 | 欧美精品系列| 亚洲视频在线免费观看| 精品一区二区三区四区五区六区| 日韩v| 人妻丰满精品一区二区| 国产一区二区视频在线观看| 精品国产一二三| 亚洲激情视频在线观看| 夜夜骚精品人妻av一区| 亚洲乱伦网站| 天天日日天天| 免费日韩一级| 天堂视频在线| 国产AV无码专区| 男人先锋| 88在线无码精品秘入口九色 | 午夜AV福利影院| 99久久99九九九99九他书对| 中文无码Av| 丁香婷婷五月色成人网站| 老司机无码| 臭小子晚上让你爽个够视频| 久久福利网| 高潮无码视频| 天天干天天射天天| 91在线无码精品秘| 国产精品人人人人| 久久成人毛片| 国精产品一区一区三区有限公司杨| 无码人妻一区二区一牛影视| 一级黄色电影免费在线观看| 少妇免费视频| 国产三级网址| 国产操逼免费看| 国产黄色免费视频| 美女中文字幕| 亚洲av在线免费观看| 伊人影院在线看| 日本a在线| 青草青草视频| 老鸭窝av免费入口在线观看| 在线A视频| 青草香蕉视频| 久久久久国产视频| 亚洲色图1| 欧美经典自拍狼友| 欧美香蕉视频| 五月色婷婷综合| 操逼视频免费在线观看| 欧美国产操逼| 国产三级片网站| 18岁成人毛片| 一区二区国产视频| 伊人99| 亚洲欧美成人网站| 91久久性奴调教| 成人在线精品视频| 性爱免费视频网站| 乱伦无码高清麻豆视频一区二区 | 亚洲最大的成人网站| 美女网站永久免费观看| 看毛片网站| 九九久久99| 欧美十区| 中文字幕在线观看免费视频| 超碰97免费在线| 国产乱码一区二区三区| 午夜看黄| 欧美成人怡红院| 狠狠se| 青草免费视频| 九九在线观看视频| 能看的操逼视频| 丝袜诱惑AV| 色噜噜av| 东方AV在线免费观看| 少妇喷水在线观看| 影音先锋人妻资源| 亚洲日逼| 中文字幕av久久爽Av| 91蝌蚪视频在线播放| 免费看日P视频| 日皮视频免费在线观看| 蜜桃亚洲AV无码一区二区三区 | 中文字字幕在线中文乱码电影 | 息子交尾一区二区三区| 久久欧洲成人精品无码区| 蜜臀久久久久久999| aaaaaa在线观看免费高清| 日本三级片免费| 亚洲欧美精品| 日逼视频免费| 丁香婷婷综合网| 亚洲中文字幕在线观看免费| 无码国产精品一区二区免费96| 狠狠干五月天| 中文字幕第一页av| 国产日皮| 日本在线免费| 99色色网| 精品动漫3D一区二区三区免费版| 久久精品性爱| 人人妻人人澡| 欧美黑吊大战白妞欧美大片| 青娱乐91视频| jlzz18| 麻豆疯狂做受XXXX高潮视频| 国产AV影院| 欧美视频免费在线观看| 日韩在线播放视频| 日韩一级片在线| 国精产品一区二区三区在线观看 | 中文字幕一区二区三区人妻在线视频 | www.四虎成人网站| 成人爽a毛片一区二区免费| 蜜桃av秘无码一区三| 国产A级毛片久久久久久| 日韩中文字幕无码人妻| 爽好紧别夹喷水无码| 三级片无码视频| sm在线观看| 五月天激情四射| 天堂成人av| 人人操碰人人| 青春草在线视频| 天天插夜夜操| 日逼日逼日逼| 国产黄色视频在线看| 亚洲精品白浆高清久久久久久| 高清的日逼| 阿宾MD0165麻豆沈娜娜| 亚洲中文字幕AV| 无码人妻精品一区二区三| 国产成人视频免费| 人人看AV| 加勒比无码视频| 亚洲午夜激情| 操日韩美女| 国产Av大全| 黑人av| 成人在线无码| 欧美色婷婷| 亚洲午夜福利电影| 久久精品女人| 欧美日韩成人片| 北条麻妃AV在线播放| 亚洲男女啪啪视频| 国产成人久久精品麻豆二区| 一级片三级片| 亚洲色色视频| 日韩字幕| 国产精品久久AV电影| 亚洲AV在线观看| 中文字幕h| 爱视频福利| 成人伊人大香蕉| 一本道在线无码| 国产精品一区二区性色AV| 日韩一级片在线播放| 欧美日韩免费在线| 免费在线观看视频黄| 黄色电影网页| 手机在线操B视频| 免费A片在线看| 91三级片在线观看| 免费人成视频在线播放| 国产主播专区| 中文字幕日韩AV| 亚洲AV毛片成人精品网站| 夜间福利视频| 欧美乱伦内射| 国产精品无码免费| 人操人操人操| 亚洲日韩在线中文字幕| 一区二区成人视频| 四川BBB嫩BBBB爽BBBB| 国产丰满乱子伦无码| 久久久久99精品成人片三人毛片| 日韩免费不卡| 草逼逼| 久久久久久久久久成人永久免费视频 | 亚洲成人无码网站| 嘉兴少妇按摩69XX|