久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Java系統運行緩慢等問題的排查思路

瀏覽:69日期:2022-08-13 18:58:54
前言

處理過線上問題的同學基本上都會遇到系統突然運行緩慢,CPU 100%,以及Full GC次數過多的問題。當然,這些問題的最終導致的直觀現象就是系統運行緩慢,并且有大量的報警。

本文主要針對系統運行緩慢這一問題,提供該問題的排查思路,從而定位出問題的代碼點,進而提供解決該問題的思路。

對于線上系統突然產生的運行緩慢問題,如果該問題導致線上系統不可用,那么首先需要做的就是,導出jstack和內存信息,然后重啟系統,盡快保證系統的可用性。這種情況可能的原因主要有兩種:

代碼中某個位置讀取數據量較大,導致系統內存耗盡,從而導致Full GC次數過多,系統緩慢; 代碼中有比較耗CPU的操作,導致CPU過高,系統運行緩慢;

相對來說,這是出現頻率最高的兩種線上問題,而且它們會直接導致系統不可用。另外有幾種情況也會導致某個功能運行緩慢,但是不至于導致系統不可用:

代碼某個位置有阻塞性的操作,導致該功能調用整體比較耗時,但出現是比較隨機的; 某個線程由于某種原因而進入WAITING狀態,此時該功能整體不可用,但是無法復現; 由于鎖使用不當,導致多個線程進入死鎖狀態,從而導致系統整體比較緩慢。

對于這三種情況,通過查看CPU和系統內存情況是無法查看出具體問題的,因為它們相對來說都是具有一定阻塞性操作,CPU和系統內存使用情況都不高,但是功能卻很慢。下面我們就通過查看系統日志來一步一步甄別上述幾種問題。

Full GC次數過多

相對來說,這種情況是最容易出現的,尤其是新功能上線時。對于Full GC較多的情況,其主要有如下兩個特征:

線上多個線程的CPU都超過了100%,通過jstack命令可以看到這些線程主要是垃圾回收線程通過jstat命令監控GC情況,可以看到Full GC次數非常多,并且次數在不斷增加。

首先我們可以使用top命令查看系統CPU的占用情況,如下是系統CPU較高的一個示例:

top - 08:31:10 up 30 min,  0 users,  load average: 0.73, 0.58, 0.34

KiB Mem:   2046460 total,  1923864 used,   122596 free,    14388 buffers

KiB Swap:  1048572 total,        0 used,  1048572 free.  1192352 cached Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

可以看到,有一個Java程序此時CPU占用量達到了98.8%,此時我們可以復制該進程id9,并且使用如下命令查看呢該進程的各個線程運行情況:

top -Hp 9

該進程下的各個線程運行情況如下:

top - 08:31:16 up 30 min,  0 users,  load average: 0.75, 0.59, 0.35

Threads:  11 total,   1 running,  10 sleeping,   0 stopped,   0 zombie

%Cpu(s):  3.5 us,  0.6 sy,  0.0 ni, 95.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem:   2046460 total,  1924856 used,   121604 free,    14396 buffers

KiB Swap:  1048572 total,        0 used,  1048572 free.  1192532 cached Mem

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND

10  root      20   0 2557160 289824  15872 R 79.3 14.2   0:41.49 java

可以看到,在進程為9的Java程序中各個線程的CPU占用情況,接下來我們可以通過jstack命令查看線程id為10的線程為什么耗費CPU最高。需要注意的是,在jsatck命令展示的結果中,線程id都轉換成了十六進制形式。可以用如下命令查看轉換結果,也可以找一個科學計算器進行轉換:

root@a39de7e7934b:/# printf '%xn' 10a

這里打印結果說明該線程在jstack中的展現形式為0xa,通過jstack命令我們可以看到如下信息:

'main' #1 prio=5 os_prio=0 tid=0x00007f8718009800 nid=0xb runnable [0x00007f871fe41000]

   java.lang.Thread.State: RUNNABLE

    at com.aibaobei.chapter2.eg2.UserDemo.main(UserDemo.java:9)

這里的VM Thread一行的最后顯示nid=0xa,這里nid的意思就是操作系統線程id的意思。而VM Thread指的就是垃圾回收的線程。這里我們基本上可以確定,當前系統緩慢的原因主要是垃圾回收過于頻繁,導致GC停頓時間較長。我們通過如下命令可以查看GC的情況:

root@8d36124607a0:/# jstat -gcutil 9 1000 10

  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT

  0.00   0.00   0.00  75.07  59.09  59.60   3259    0.919  6517    7.715    8.635

  0.00   0.00   0.00   0.08  59.09  59.60   3306    0.930  6611    7.822    8.752

  0.00   0.00   0.00   0.08  59.09  59.60   3351    0.943  6701    7.924    8.867

可以看到,這里FGC指的是Full GC數量,這里高達6793,而且還在不斷增長。從而進一步證實了是由于內存溢出導致的系統緩慢。那么這里確認了內存溢出,但是如何查看你是哪些對象導致的內存溢出呢,這個可以dump出內存日志,然后通過eclipse的mat工具進行查看,如下是其展示的一個對象樹結構:

Java系統運行緩慢等問題的排查思路

經過mat工具分析之后,我們基本上就能確定內存中主要是哪個對象比較消耗內存,然后找到該對象的創建位置,進行處理即可。這里的主要是PrintStream最多,但是我們也可以看到,其內存消耗量只有12.2%。也就是說,其還不足以導致大量的Full GC,此時我們需要考慮另外一種情況,就是代碼或者第三方依賴的包中有顯示的System.gc()調用。這種情況我們查看dump內存得到的文件即可判斷,因為其會打印GC原因:

[Full GC (System.gc()) [Tenured: 262546K->262546K(349568K), 0.0014879 secs] 262546K->262546K(506816K), [Metaspace: 3109K->3109K(1056768K)], 0.0015151 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 

比如這里第一次GC是由于System.gc()的顯示調用導致的,而第二次GC則是JVM主動發起的。總結來說,對于Full GC次數過多,主要有以下兩種原因:

代碼中一次獲取了大量的對象,導致內存溢出,此時可以通過eclipse的mat工具查看內存中有哪些對象比較多; 內存占用不高,但是Full GC次數還是比較多,此時可能是顯示的System.gc()調用導致GC次數過多,這可以通過添加-XX:+DisableExplicitGC來禁用JVM對顯示GC的響應。CPU過高

在前面第一點中,我們講到,CPU過高可能是系統頻繁的進行Full GC,導致系統緩慢。而我們平常也肯能遇到比較耗時的計算,導致CPU過高的情況,此時查看方式其實與上面的非常類似。首先我們通過top命令查看當前CPU消耗過高的進程是哪個,從而得到進程id;然后通過top -Hp來查看該進程中有哪些線程CPU過高,一般超過80%就是比較高的,80%左右是合理情況。這樣我們就能得到CPU消耗比較高的線程id。接著通過該線程id的十六進制表示在jstack日志中查看當前線程具體的堆棧信息。

在這里我們就可以區分導致CPU過高的原因具體是Full GC次數過多還是代碼中有比較耗時的計算了。如果是Full GC次數過多,那么通過jstack得到的線程信息會是類似于VM Thread之類的線程,而如果是代碼中有比較耗時的計算,那么我們得到的就是一個線程的具體堆棧信息。如下是一個代碼中有比較耗時的計算,導致CPU過高的線程信息:

Java系統運行緩慢等問題的排查思路

這里可以看到,在請求UserController的時候,由于該Controller進行了一個比較耗時的調用,導致該線程的CPU一直處于100%。我們可以根據堆棧信息,直接定位到UserController的34行,查看代碼中具體是什么原因導致計算量如此之高。

不定期出現的接口耗時現象

對于這種情況,比較典型的例子就是,我們某個接口訪問經常需要2~3s才能返回。這是比較麻煩的一種情況,因為一般來說,其消耗的CPU不多,而且占用的內存也不高,也就是說,我們通過上述兩種方式進行排查是無法解決這種問題的。而且由于這樣的接口耗時比較大的問題是不定時出現的,這就導致了我們在通過jstack命令即使得到了線程訪問的堆棧信息,我們也沒法判斷具體哪個線程是正在執行比較耗時操作的線程。

對于不定時出現的接口耗時比較嚴重的問題,我們的定位思路基本如下:首先找到該接口,通過壓測工具不斷加大訪問力度,如果說該接口中有某個位置是比較耗時的,由于我們的訪問的頻率非常高,那么大多數的線程最終都將阻塞于該阻塞點,這樣通過多個線程具有相同的堆棧日志,我們基本上就可以定位到該接口中比較耗時的代碼的位置。如下是一個代碼中有比較耗時的阻塞操作通過壓測工具得到的線程堆棧日志:

'http-nio-8080-exec-2' #29 daemon prio=5 os_prio=31 tid=0x00007fd08cb26000 nid=0x9603 waiting on condition [0x00007000031d5000]

   java.lang.Thread.State: TIMED_WAITING (sleeping)

    at java.lang.Thread.sleep(Native Method)

    at java.lang.Thread.sleep(Thread.java:340)

    at java.util.concurrent.TimeUnit.sleep(TimeUnit.java:386)

    at com.aibaobei.user.controller.UserController.detail(UserController.java:18)

'http-nio-8080-exec-3' #30 daemon prio=5 os_prio=31 tid=0x00007fd08cb27000 nid=0x6203 waiting on condition [0x00007000032d8000]

   java.lang.Thread.State: TIMED_WAITING (sleeping)

    at java.lang.Thread.sleep(Native Method)

    at java.lang.Thread.sleep(Thread.java:340)

    at java.util.concurrent.TimeUnit.sleep(TimeUnit.java:386)

    at com.aibaobei.user.controller.UserController.detail(UserController.java:18)

'http-nio-8080-exec-4' #31 daemon prio=5 os_prio=31 tid=0x00007fd08d0fa000 nid=0x6403 waiting on condition [0x00007000033db000]

   java.lang.Thread.State: TIMED_WAITING (sleeping)

    at java.lang.Thread.sleep(Native Method)

    at java.lang.Thread.sleep(Thread.java:340)

    at java.util.concurrent.TimeUnit.sleep(TimeUnit.java:386)

從上面的日志可以看你出,這里有多個線程都阻塞在了UserController的第18行,說明這是一個阻塞點,也就是導致該接口比較緩慢的原因。

某個線程進入WAITING狀態

對于這種情況,這是比較罕見的一種情況,但是也是有可能出現的,而且由于其具有一定的“不可復現性”,因而我們在排查的時候是非常難以發現的。筆者曾經就遇到過類似的這種情況,具體的場景是,在使用CountDownLatch時,由于需要每一個并行的任務都執行完成之后才會喚醒主線程往下執行。而當時我們是通過CountDownLatch控制多個線程連接并導出用戶的gmail郵箱數據,這其中有一個線程連接上了用戶郵箱,但是連接被服務器掛起了,導致該線程一直在等待服務器的響應。最終導致我們的主線程和其余幾個線程都處于WAITING狀態。

對于這樣的問題,查看過jstack日志的讀者應該都知道,正常情況下,線上大多數線程都是處于TIMED_WAITING狀態,而我們這里出問題的線程所處的狀態與其是一模一樣的,這就非常容易混淆我們的判斷。解決這個問題的思路主要如下:

通過grep在jstack日志中找出所有的處于TIMED_WAITING狀態的線程,將其導出到某個文件中,如a1.log,如下是一個導出的日志文件示例:

'Attach Listener' #13 daemon prio=9 os_prio=31 tid=0x00007fe690064000 nid=0xd07 waiting on condition [0x0000000000000000]

'DestroyJavaVM' #12 prio=5 os_prio=31 tid=0x00007fe690066000 nid=0x2603 waiting on condition [0x0000000000000000]

'Thread-0' #11 prio=5 os_prio=31 tid=0x00007fe690065000 nid=0x5a03 waiting on condition [0x0000700003ad4000]

等待一段時間之后,比如10s,再次對jstack日志進行grep,將其導出到另一個文件,如a2.log,結果如下所示:

'DestroyJavaVM' #12 prio=5 os_prio=31 tid=0x00007fe690066000 nid=0x2603 waiting on condition [0x0000000000000000]

'Thread-0' #11 prio=5 os_prio=31 tid=0x00007fe690065000 nid=0x5a03 waiting on condition [0x0000700003ad4000]

重復步驟2,待導出34個文件之后,我們對導出的文件進行對比,找出其中在這幾個文件中一直都存在的用戶線程,這個線程基本上就可以確認是包含了處于等待狀態有問題的線程。因為正常的請求線程是不會在2030s之后還是處于等待狀態的。經過排查得到這些線程之后,我們可以繼續對其堆棧信息進行排查,如果該線程本身就應該處于等待狀態,比如用戶創建的線程池中處于空閑狀態的線程,那么這種線程的堆棧信息中是不會包含用戶自定義的類的。這些都可以排除掉,而剩下的線程基本上就可以確認是我們要找的有問題的線程。通過其堆棧信息,我們就可以得出具體是在哪個位置的代碼導致該線程處于等待狀態了。

這里需要說明的是,我們在判斷是否為用戶線程時,可以通過線程最前面的線程名來判斷,因為一般的框架的線程命名都是非常規范的,我們通過線程名就可以直接判斷得出該線程是某些框架中的線程,這種線程基本上可以排除掉。而剩余的,比如上面的Thread-0,以及我們可以辨別的自定義線程名,這些都是我們需要排查的對象。

經過上面的方式進行排查之后,我們基本上就可以得出這里的Thread-0就是我們要找的線程,通過查看其堆棧信息,我們就可以得到具體是在哪個位置導致其處于等待狀態了。如下示例中則是在SyncTask的第8行導致該線程進入等待了。

'Thread-0' #11 prio=5 os_prio=31 tid=0x00007f9de08c7000 nid=0x5603 waiting on condition [0x0000700001f89000]

   java.lang.Thread.State: WAITING (parking)

    at sun.misc.Unsafe.park(Native Method)

    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)

    at com.aibaobei.chapter2.eg4.SyncTask.lambda$main$0(SyncTask.java:8)

    at com.aibaobei.chapter2.eg4.SyncTask$$Lambda$1/1791741888.run(Unknown Source)

死鎖

對于死鎖,這種情況基本上很容易發現,因為jstack可以幫助我們檢查死鎖,并且在日志中打印具體的死鎖線程信息。如下是一個產生死鎖的一個jstack日志示例:

Java系統運行緩慢等問題的排查思路

可以看到,在jstack日志的底部,其直接幫我們分析了日志中存在哪些死鎖,以及每個死鎖的線程堆棧信息。這里我們有兩個用戶線程分別在等待對方釋放鎖,而被阻塞的位置都是在ConnectTask的第5行,此時我們就可以直接定位到該位置,并且進行代碼分析,從而找到產生死鎖的原因。

小結

本文主要講解了線上可能出現的五種導致系統緩慢的情況,詳細分析了每種情況產生時的現象,已經根據現象我們可以通過哪些方式定位得到是這種原因導致的系統緩慢。簡要的說,我們進行線上日志分析時,主要可以分為如下步驟:

1.通過top命令查看CPU情況,如果CPU比較高,則通過top -Hp命令查看當前進程的各個線程運行情況,找出CPU過高的線程之后,將其線程id轉換為十六進制的表現形式,然后在jstack日志中查看該線程主要在進行的工作。這里又分為兩種情況:

如果是正常的用戶線程,則通過該線程的堆棧信息查看其具體是在哪處用戶代碼處運行比較消耗CPU; 如果該線程是VM Thread,則通過jstat -gcutil <pid> <period> <times>命令監控當前系統的GC狀況,然后通過jmap dump:format=b,file=<filepath> <pid>導出系統當前的內存數據。導出之后將內存情況放到eclipse的mat工具中進行分析即可得出內存中主要是什么對象比較消耗內存,進而可以處理相關代碼;

2.如果通過top命令看到CPU并不高,并且系統內存占用率也比較低。此時就可以考慮是否是由于另外三種情況導致的問題。具體的可以根據具體情況分析:

如果是接口調用比較耗時,并且是不定時出現,則可以通過壓測的方式加大阻塞點出現的頻率,從而通過jstack查看堆棧信息,找到阻塞點; 如果是某個功能突然出現停滯的狀況,這種情況也無法復現,此時可以通過多次導出jstack日志的方式對比哪些用戶線程是一直都處于等待狀態,這些線程就是可能存在問題的線程; 如果通過jstack可以查看到死鎖狀態,則可以檢查產生死鎖的兩個線程的具體阻塞點,從而處理相應的問題。

本文主要是提出了五種常見的導致線上功能緩慢的問題,以及排查思路。當然,線上的問題出現的形式是多種多樣的,也不一定局限于這幾種情況,如果我們能夠仔細分析這些問題出現的場景,就可以根據具體情況具體分析,從而解決相應的問題。

以上就是Java系統運行緩慢等問題的排查思路的詳細內容,更多關于Java系統運行緩慢問題的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 亚洲精品久久久蜜臀 | 91资源在线 | 中文字幕免费视频观看 | 亚洲欧美精品 | 波多野结衣一区二 | 日日干夜夜操 | 97视频在线免费观看 | 亚洲综合视频一区 | 亚洲精品久久 | 一区二区三区 在线 | 欧美一级黄视频 | 亚洲特级| 国产精品自拍视频 | 精品国产区| 一区二区在线免费观看 | 激情91 | 成人影音 | 永久免费网站 | 欧美日韩高清在线一区 | 奇米成人影视 | 伊人网国产 | 国产精品第一国产精品 | 国产亚洲精品久久久优势 | 国产一级免费在线观看 | 国产91一区 | 午夜精品一区二区三区免费视频 | 精品久久久久久久 | 久久国产欧美日韩精品 | 成年免费观看 | 91美女在线观看 | 综合色成人| 亚洲日韩中文字幕一区 | 99视频在线免费观看 | 日韩av高清在线 | 久久成人免费视频 | 国产二区视频 | 国产一级一级国产 | 日韩在线一区二区 | 日韩中文字幕三区 | 国产精品久久久久国产a级 日韩在线二区 | 中文字幕精品一区二区三区精品 | 欧美一级网站 | 96久久久久久 | 欧美日韩国产一区二区三区不卡 | 免费看国产片在线观看 | 91丁香婷婷综合久久欧美 | 亚洲成a人| 色婷婷亚洲一区二区三区 | 久久久久亚洲 | 亚洲高清中文字幕 | 在线观看成人小视频 | 一区二区日本 | 天天艹综合 | 亚洲国产精品久久久久婷婷老年 | 精品国产污网站污在线观看15 | 亚洲一区二区在线播放 | 亚洲乱码一区二区三区在线观看 | 久久久久综合 | 色综合激情 | 日韩电影一区 | 毛片网站大全 | 中文字幕av亚洲精品一部二部 | 日韩免费网站 | 91精品国产综合久久国产大片 | 欧美日韩亚洲一区二区 | 中文字幕一区二区三区精彩视频 | 91欧美激情一区二区三区成人 | 久久久久久久一区 | 欧美理论视频 | 亚洲午夜精品一区二区三区 | 在线欧美亚洲 | 日韩av免费看| 国产精品二区一区 | 欧美日韩一区在线观看 | 天堂一区二区三区 | 日韩中文一区二区 | 日韩在线播放一区 | www.日韩大片 | 日韩精品在线观看一区 | 欧美精品欧美极品欧美激情 | 久久99这里只有精品 | 久久久久久久久免费视频 | 欧美日韩精品一区二区 | 欧美日韩国产精品一区 | 精品免费视频 | 91精品国产乱码久久久久久久久 | h视频免费观看 | 午夜视频在线观看网站 | 91精品国产综合久久久久久丝袜 | 天堂视频在线 | 国产一区二区免费电影 | 狠狠操精品视频 | 国产精品777一区二区 | 91精品啪aⅴ在线观看国产 | 天堂一区 | 黄色在线免费 | 欧美自拍视频一区 | 九一精品 | 亚洲国产高清高潮精品美女 | 日韩精品专区 | 亚洲视频免费网站 | 午夜精品在线 | www.亚洲区| 欧美日韩免费一区二区三区 | 亚洲男人天堂网 | 国产精品人人做人人爽人人添 | 欧美精品www | 亚洲一区二区在线播放 | 九九九视频 | 狠狠操一区二区三区 | 中文字幕在线视频精品 | 亚洲视频在线播放 | 国产三级在线 | 免费午夜电影 | 亚洲视频三区 | 亚洲欧美日韩另类精品一区二区三区 | 日日夜夜摸 | 国产一区 | 先锋影音在线观看 | 国产精品综合视频 | 国产黄视频在线 | 国产成人a亚洲精品 | 成年人在线观看 | 久久国产精品免费一区二区三区 | 久久久久久精 | 午夜视频在线免费观看 | ririsao久久精品一区 | 久久久av | 日韩久久久一区二区 | 视频羞羞| 成人1区 | 99国内精品久久久久久久 | 午夜爱爱毛片xxxx视频免费看 | 蜜桃comaaa| 免费一级黄色电影 | av午夜电影 | 免费在线亚洲 | 麻豆91视频 | 欧美激情免费 | 日韩成人一区二区 | 不卡av电影在线观看 | 久久99久久99精品免观看粉嫩 | 日韩成人免费av | 91精品国产综合久久久久久蜜臀 | 91精品国产综合久久婷婷香蕉 | 美女视频一区 | 男人的天堂视频 | 9191在线| 国产亚洲欧美在线 | 亚洲成av人片在线观看 | 亚洲视频一区二区在线 | 久久精品一 | 操操操av | 色视频在线免费观看 | 国产情侣一区二区三区 | av中文网 | 精品人伦一区二区三区蜜桃视频 | 国产免费一区二区 | 成人欧美一区二区三区视频xxx | a欧美| 日韩视频网站在线观看 | 欧美日韩国产不卡 | 久久91久久久久麻豆精品 | 精品国产31久久久久久 | 午夜在线 | 国产精品视频一区二区三区四蜜臂 | 99免费视频 | 国产欧美日韩一区 | 日韩综合在线 | 国产大片黄色 | 日韩欧美一区二区三区视频 | 国产在线国产 | 涩涩天堂 | 色综合久久天天综合网 | 国产视频一区二区在线观看 | 99久久精品免费 | 久久久国产一区二区三区 | 亚洲444kkkk在线观看最新 | av官网在线| 美女扒开尿口来摸 | 免费黄色欧美 | 日韩一区二区精品 | 久久亚洲一区二区 | 成人精品久久久 | 亚洲欧洲精品在线 | 欧美高清成人 | 亚洲天堂中文字幕 | 草久久久| 搜索黄色毛片 | 久久亚洲精品中文字幕 | 久久精品一区二区国产 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 亚洲成人免费网址 | 色花av| 日韩在线播放一区二区 | 欧美成人精品激情在线观看 | 日韩视频中文 | 久久精品a级毛片 | 欧美成人激情视频 | 国产精品美女av | 成人视屏在线观看 | 九九色综合 | 视频1区2区| 亚洲精品久久久久久久久久久 | 日韩性xxx | 国产精品资源在线 | 欧美成人精品一区二区三区 | 久久精品免费 | 欧美在线激情 | 天天爱天天操 | 亚洲伊人成人 | 伊人狠狠干| 一区二区三区四区久久 | 久久久久久久久久久久福利 | 国产一级中文字幕 | 欧美精品免费在线 | 91精品国产色综合久久不卡98口 | 日韩在线小视频 | 色国产精品| 91亚洲视频在线观看 | 美女视频一区 | 69性欧美高清影院 | 欧美大片免费高清观看 | 欧美多人在线 | 日韩在线观看一区 | 男女视频免费在线观看 | 中文字幕av在线 | 国产激情91久久精品导航 | 女同久久| 日韩精品小视频 | 日韩精品免费看 | 国产一二三视频 | 国产中文字幕一区 | 国产综合精品 | 免费观看的黄色 | 国偷自产av一区二区三区 | 久久久一区二区 | 日本不卡免费新一二三区 | 国产依人在线 | 国产精拍 | 青青久在线视频 | 国产精品影视 | 久草免费在线 | 午夜影院在线观看免费 | 91精品国产综合久久精品 | 在线播放国产视频 | 国产精品视频播放 | 日本成人黄色网址 | 国产高清一区二区 | 99久久这里只有精品 | 日本一区二区成人 | 欧美视频在线观看不卡 | 国产区免费观看 | 一区在线免费观看 | 久久成人高清 | 看片国产 | 在线色站 | 国产精品国产 | 四虎com| 羞羞在线观看视频免费观看hd | 免费网站看v片在线a | 狠狠伊人| 亚洲国产精品久久久久秋霞不卡 | 亚洲高清不卡视频 | 亚洲视频在线观看 | 精品国产精品三级精品av网址 | 亚洲av毛片一区二二区三三区 | 亚洲精品一区二区三区在线观看 | 久久久久久久久久久亚洲 | 国产成人综合网 | 欧美午夜一区二区三区免费大片 | 欧美福利一区二区 | 久草久草久草 | 国产艳妇av视国产精选av一区 | 99看片| 久久久久国产 | 欧美美女爱爱视频 | 国产一区在线视频 | 国产精品91av| 久久一区二区精品 | www久久精品 | 欧美中文在线 | 成人天堂666 | 久久99精品国产99久久6男男 | 国产乱码精品一品二品 | 中文字幕第66页 | 黄a在线观看| 亚洲国产精品久久久久婷婷老年 | 日韩电影中文字幕 | 成人免费视频播放 | 可以在线观看的av网站 | 成人欧美一区二区三区在线观看 | 亚州国产| 中文字幕日韩欧美 | 亚洲人久久 | 欧美一区三区 | 欧美成人三区 | 日韩精品免费视频 | 国产成在线观看免费视频 | 国产美女高潮视频 | 婷婷久久综合 | 久久噜噜噜精品国产亚洲综合 | 午夜精品久久久久久久星辰影院 | www久久久| 久久成年人视频 | 色偷偷888欧美精品久久久 | 成人欧美一区二区三区在线播放 | 久久久久久久久99精品 | 国产精品午夜电影 | 91精品久久久久 | 欧美日韩久久久 | 大香萑 | 一区二区免费 | 男人的天堂在线视频 | 国产精品久久久久久久久久 | 伊人av超碰久久久麻豆 | 成人深夜福利在线观看 | 午夜视频在线观看网站 | 成人精品一区二区三区 | 超碰综合| 久久影院国产 | 一级毛片观看 | 欧美一区二区免费 | 亚洲a网| 成人在线免费av | 精品久久久久久国产 | 国产精品一二三区 | 毛片毛片毛片毛片毛片毛片 | 69日影院 | 91精品综合久久久久久五月天 | 国产精品久久国产精麻豆99网站 | 国产做a | 成人精品在线观看 | 国产成人精品一区二区三区四区 | eeuss国产一区二区三区四区 | 黄色影片免费在线观看 | 婷婷色国产偷v国产偷v小说 | 欧美午夜在线观看 | 亚洲一区二区国产 | 国产色在线观看 | 天天干天天爽 | 欧美精品导航 | 久久高清国产 | 日本精品二区 | 成人免费视频网站 | 国产成人av一区二区三区 | 91福利视频导航 | 国产 亚洲 网红 主播 | 日韩精品一区二区三区在线 | 久久久精品国产 | 久久精品这里只有精品 | 日本在线免费观看 | 一区二区不卡视频在线观看 | 黄色毛片在线观看 | 欧美综合在线一区 | 久久香蕉国产 | 搡女人真爽免费午夜网站 | 久久伊人精品视频 | 婷婷色国产偷v国产偷v小说 | 91免费观看视频 | 日本一级毛片视频 | 久久大陆 | 国产亚洲精品精品国产亚洲综合 | 成人激情在线 | 97碰碰碰 | 久久精品二区 | 成人亚洲一区二区 | 精品久久精品久久 | 视频二区| 青青草91在线视频 | 超碰在线91| 91福利视频导航 | 啪啪毛片 | 久久成人精品 | 久热中文| 一区二区三区免费在线观看 | 国产精品自产av一区二区三区 | 国产精品theporn | 国产高清一级毛片在线不卡 | 中文字幕_第2页_高清免费在线 | 精品国产一区二区三区久久影院 | 日本黄色激情片 | 在线视频 欧美日韩 | 免费黄色录像视频 | 欧美一级艳片视频免费观看 | 午夜免费| 欧美一区二区三区精品 | 在线观看成人av | 国产精品视频一区二区三区 | 欧美日韩不卡在线 | 亚洲国产精品成人综合色在线婷婷 | www亚洲成人 | 一区免费看| 日韩欧美综合 | 这里只有精品视频 | 黄色国产精品 | 电影91久久久 | 国产成人精品一区二 | 精品视频一区二区在线 | 久久99精品久久久久婷婷暖91 | 成人免费淫片aa视频免费 | 日本xxww视频免费 | 久久精品二区 | 精品国产不卡一区二区三区 | 日韩精品免费在线观看 | 日韩在线精品视频 | 精品一区二区在线观看 | 成人综合在线观看 | 欧美黄色网 | 日韩视频在线免费观看 | 久久香蕉网 | 日日夜夜免费精品视频 | 伊人网在线视频免费观看 | 在线中文字幕av | 91精品国产综合久久久久久蜜臀 | 91免费版在线看 | 嫩草影院网站入口 | 精品国偷自产国产一区 | 色婷婷导航 | 亚洲网色| 成人a在线视频免费观看 | 欧美日韩电影一区二区三区 | 国产女人爽到高潮免费视频 | 成人黄色在线视频 | 久久久久亚洲一区二区三区 | 国产三级在线观看 | 亚洲高清视频在线观看 | 国产精品久久一区 | 欧美 国产精品 | 五月网婷婷 | 国产精品成人在线观看 | www.国产| 亚洲综合视频一区 | 99热播在线| 99精品国产高清在线观看 | 久久久久国产精品午夜一区 | 免费久久久 | 999视频在线 | 国产一区二区三区四区在线观看 | 成人综合网站 | 欧美性一区 | 中文精品在线 | 亚洲国产精品一区 | 99精品全国免费观看视频软件 | 色综合中文| 免费99精品国产自在在线 | 精品免费国产 | 亚洲精品国精品久久99热 | 成人免费视频网站在线看 | av男人的天堂网 | 在线看免费黄色片 | 国产99在线 | 欧美 | 国产日韩欧美高清 | 中文字幕视频在线 | 17c一起操 | 欧美日韩国产精品一区二区 | a在线观看 | 午夜精品久久久久久 | 国产丝袜一区二区三区免费视频 | 中文字幕日韩欧美 | 国产女无套免费网站 | 久色视频在线观看 | 99re在线观看 | 欧美人成在线视频 | 国产精品久久久久一区二区三区共 | 品久久久久久久久久96高清 | 日韩欧美国产一区二区 | 特级生活片 | 日韩a∨| 国产精品久久久久久久久晋中 | 亚洲精品视频在线 | 91精品国产色综合久久 | 久视频在线观看 | 涩涩视频在线看 | 国产精品久久久久久妇女6080 | 久久人人爽人人爽 | 久久99精品久久久 | 在线观看免费黄色小视频 | 在线视频一区二区 | 日本精品中文字幕 | 久久精品欧美一区二区三区不卡 | 国产亚洲精品精品国产亚洲综合 | 亚洲精品一二三区 | 色精品 | 国产视频色 | 久久黑人| 一区二区中文字幕 | 在线观看免费毛片视频 | a久久久 | 天天在线综合 | 日日夜夜免费精品视频 | 极品久久久久久 | 亚洲欧洲成人 | 欧美一级特黄aaaaaa大片在线观看 | av毛片免费 | 久久国产一区二区 | 在线一区观看 | 91精品久久久久久久久久 | 在线视频中文字幕 | 国产精品成人一区二区 | 91麻豆精品国产91久久久资源速度 | 国产精品2区 | 久久久久亚洲精品 | 成人综合在线观看 | 国产一区免费 | 午夜视频网站 | 午夜成人免费电影 | 超级碰在线视频 | 国产高清视频在线观看 | 97视频观看 | 蜜臀影院| 亚洲a精品 | 国产高清视频在线观看 | 国产精品久久久久久久久久久久冷 | 成人在线看片网站 | 久久久久一区二区三区 | 黄色av网站免费看 | 国产免费一级特黄录像 | 91资源在线观看 | 亚洲福利一区 | 亚洲综人网 | 在线国产一区二区 | 91 在线观看 | 国产一区二区三区免费播放 | 欧美一级片免费看 | 91综合网 | 亚洲综合一区二区三区 | 91久久久久久久久久久久久 | 四色成人av永久网址 | 国产视频久久久久 | 久免费视频 | 久久黄网 | 91精品一区二区三区久久久久久 | 欧洲免费毛片 | 一区二区三区免费在线 | 亚洲精品高清视频 | 日韩高清在线一区 | 成人美女免费网站视频 | 久久99这里只有精品 | 国内久久精品 | 亚洲精品国产剧情久久9191 | 久久精品亚洲精品 | 久久精品这里只有精品 | 欧美日韩中文字幕在线 | 超碰人人99 | 在线亚洲免费 | 国产亚洲一区二区精品 | 天堂av中文在线 | 日韩精品www | 天天综合欧美 | 日韩一区二区在线观看 | 免费的一级黄色片 | 图片区 国产 欧美 另类 在线 | 国产一区二区三区在线免费观看 | 久久国产高清 | 久久国产婷婷国产香蕉 | 91视视频在线观看入口直接观看 | 久久久精品综合 | 综合久久亚洲 | 日本超碰 | 欧美性视频网站 | 亚洲综合无码一区二区 | 国产精品久久久99 | 小情侣高清国产在线播放 | 成人免费共享视频 | 亚洲三区视频 | 久久久久久一区二区 | 伊人午夜 | 国产免费拔擦拔擦8x高清在线人 | 日韩在线视频一区 | 中文字字幕一区二区三区四区五区 | 国产精品爱久久久久久久 | 亚洲系列 | 日日夜夜精品网站 | 2018啪一啪 | 黑人巨大精品欧美一区二区三区 | 亚洲美女视频 | 亚洲人成人一区二区在线观看 | 成人在线观看免费视频 | 亚洲乱码一区二区三区在线观看 | 国产精品成人国产乱一区 | 中文字幕成人 | 午夜爽爽爽 | 精品视频一区二区 | 日产欧产va高清 | 超碰一区二区三区 | 日韩在线欧美 | 国产成人一区二区三区 | 亚洲女人天堂成人av在线 | 一区二区精品视频在线观看 | 久久成年人视频 | 毛片在线免费播放 | 日韩欧美国产精品综合嫩v 国产高清av在线一区二区三区 | 日韩精品免费视频 | 亚洲成人一区 | 欧产日产国产精品一二 | 精品国产精品国产偷麻豆 | 91精品国产日韩91久久久久久 | 91中文字幕 | 精品久久久久一区二区国产 | 亚洲美女在线视频 | 成人妇女免费播放久久久 | www.国产精 | 一区二区不卡视频 | 国产在线一区二区三区 | www.久久| 国产精品久久国产精品 | 日韩成人在线免费视频 | 欧美精品亚洲精品 | 韩国毛片在线 | 国产精品久久久久久久一区探花 | 亚洲精品久久久久久一区二区 | 国产精品久久久久久久7电影 | 亚洲成人久久久久 | 国产一区二区三区免费视频 |