午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 詳解Linux下Tomcat開啟查看GC信息

詳解Linux下Tomcat開啟查看GC信息

熱門標簽:好看的地圖標注圖標下載 德州外呼系統排名 機器人電銷有什么用 威海人工智能電銷機器人系統 百度地圖標注備注 福州外呼系統中間件 貴州全自動外呼系統廠家 地圖標注員怎么去做 上海電銷卡外呼系統廠家

一、開啟GC日志

1、在Tomcat 的安裝路徑下,找到bin/catalina.sh 加上下面的配置,具體參數,自己配置:

[root@centos7 tomcat]# vim bin/catalina.sh

復制代碼 代碼如下:
JAVA_OPTS='-Xms512m -Xmx4096m -XX:PermSize=64M -XX:MaxNewSize=128m -XX:MaxPermSize=64m -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -Xloggc:/usr/local/tomcat/logs/tomcat_gc.log'

2、重啟tomcat

[root@centos7 ~]# systemctl restart tomcat

3、查看GC日志

[root@centos7 ~]# cat /usr/local/tomcat/logs/tomcat_gc.log

若只是使用,搞懂配置,只需看第二、三、四即可;若想更深入的了解GC,請詳細看完~

二、GC日志分析

GC 日志分析,需使用windows 的GC日志分析工具gchisto;

gchisto 工具的源下載地址:http://xz.jb51.net:81/201806/yuanma/GChisto_jb51.rar

1、windows 安裝java 環境

(1)去官網下載自己想要的JDK版本

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下載,必須點擊同意協議

(2)安裝JDK1.8版本

設置自己的安裝路徑,取消公告JRE

(3)設置3個環境變量

① 找到自己安裝jdk的bin路徑,我的安裝路徑是 C:\Program Files (x86)\Java\jdk1.8.0_171

② 在高級系統設置--->環境變量--->新建

新建2個環境變量:

JAVA_HOME

CLASSPATH

修改一個變量:Path

(4)安裝完畢,測試

java、javac、java -version 三個命令會有以下效果

2、運行gchisto,分析gc日志

(1)運行gchisto

解包后,打開cmd命令行,執行下邊的命令,注意:自己解包后gchisto的路徑

>java -jar D:\gchisto-master\release\GCHisto-java8.jar

(2)打開后效果

(3)分析Tomcat 的gc 日志

① 將linux 下的tomcat 日志sz 到windows 上;

② 導入gchisto中;

③ 查看效果

三、選項參數詳解

1、堆大小設置

① -Xmx3550m -Xms3550m -Xmn2g -Xss128k

  -Xmx3550m:設置JVM最大可用內存為3550M。

  -Xms3550m:設置JVM初始內存為3550m。此值可以設置與-Xmx相同,以避免每次垃圾回收完成后JVM重新分配內存。

  -Xmn2g:設置年輕代大小為2G。整個堆大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代后,將會減小年老代大小。此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8。

  -Xss128k: 設置每個線程的堆棧大小。JDK5.0以后每個線程堆棧大小為1M,以前每個線程堆棧大小為256K。更具應用的線程所需內存大小進行調整。在相同物理內存下,減小這個值能生成更多的線程。但是操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右。

② -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0

  -XX:NewRatio=4:設置年輕代(包括Eden和兩個Survivor區)與年老代的比值(除去持久代)。設置為4,則年輕代與年老代所占比值為1:4,年輕代占整個堆棧的1/5

  -XX:SurvivorRatio=4:設置年輕代中Eden區與Survivor區的大小比值。設置為4,則兩個Survivor區與一個Eden區的比值為2:4,一個Survivor區占整個年輕代的1/6

  -XX:PermSize:設置永久代(perm gen)初始值。默認值為物理內存的1/64。

  -XX:MaxPermSize:設置持久代最大值。物理內存的1/4。

  -XX:MaxTenuringThreshold=0:設置垃圾最大年齡。如果設置為0的話,則年輕代對象不經過Survivor區,直接進入年老代。對于年老代比較多的應用,可以提高效率。如果將此值設置為一個較大值,則年輕代對象會在Survivor區進行多次復制,這樣可以增加對象再年輕代的存活時間,增加在年輕代即被回收的概論。

2、回收器選擇

(1)吞吐量優先的并行收集器

① -XX:+UseParallelGC -XX:ParallelGCThreads=20

  -XX:+UseParallelGC:選擇垃圾收集器為并行收集器。此配置僅對年輕代有效。即上述配置下,年輕代使用并發收集,而年老代仍舊使用串行收集。

  -XX:ParallelGCThreads=20:配置并行收集器的線程數,即:同時多少個線程一起進行垃圾回收。此值最好配置與處理器數目相等。

② -XX:+UseParallelOldGC

  -XX:+UseParallelOldGC:配置年老代垃圾收集方式為并行收集。JDK6.0支持對年老代并行收集。

③ -XX:MaxGCPauseMillis=100

  -XX:MaxGCPauseMillis=100:設置每次年輕代垃圾回收的最長時間,如果無法滿足此時間,JVM會自動調整年輕代大小,以滿足此值。

④ -XX:+UseAdaptiveSizePolicy

  -XX:+UseAdaptiveSizePolicy:設置此選項后,并行收集器會自動選擇年輕代區大小和相應的Survivor區比例,以達到目標系統規定的最低相應時間或者收集頻率等,此值建議使用并行收集器時,一直打開。

(2)響應時間優先的并發收集器

① -XX:+UseConcMarkSweepGC -XX:+UseParNewGC

  -XX:+UseConcMarkSweepGC:設置年老代為并發收集。測試中配置這個以后,-XX:NewRatio=4的配置失效了,原因不明。所以,此時年輕代大小最好用-Xmn設置。

  -XX:+UseParNewGC:設置年輕代為并行收集。可與CMS收集同時使用。JDK5.0以上,JVM會根據系統配置自行設置,所以無需再設置此值。

② -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection

  -XX:CMSFullGCsBeforeCompaction:由于并發收集器不對內存空間進行壓縮、整理,所以運行一段時間以后會產生"碎片",使得運行效率降低。此值設置運行多少次GC以后對內存空間進行壓縮、整理。

  -XX:+UseCMSCompactAtFullCollection:打開對年老代的壓縮。可能會影響性能,但是可以消除碎片

3、輔助信息

JVM提供了大量命令行參數,打印信息,供調試使用。主要有以下一些:

① -XX:+PrintGC

  輸出形式:

  [GC 118250K->113543K(130112K), 0.0094143 secs]

  [Full GC 121376K->10414K(130112K), 0.0650971 secs]

② -XX:+PrintGCDetails

  輸出形式:

  [GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs]

  [GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]

③ -XX:+PrintGCTimeStamps -XX:+PrintGC:PrintGCTimeStamps可與上面兩個混合使用

  輸出形式:

  11.851: [GC 98328K->93620K(130112K), 0.0082960 secs]

④ -XX:+PrintGCApplicationConcurrentTime:打印每次垃圾回收前,程序未中斷的執行時間。可與上面混合使用

  輸出形式:

  Application time: 0.5291524 seconds

⑤ -XX:+PrintGCApplicationStoppedTime:打印垃圾回收期間程序暫停的時間。可與上面混合使用

  輸出形式:

  Total time for which application threads were stopped: 0.0468229 seconds

⑥ -XX:PrintHeapAtGC:打印GC前后的詳細堆棧信息

  輸出形式:

  34.702: [GC {Heap before gc invocations=7:

  def new generation total 55296K, used 52568K [0x1ebd0000, 0x227d0000, 0x227d0000)

  eden space 49152K, 99% used [0x1ebd0000, 0x21bce430, 0x21bd0000)

  from space 6144K, 55% used [0x221d0000, 0x22527e10, 0x227d0000)

  to space 6144K, 0% used [0x21bd0000, 0x21bd0000, 0x221d0000)

  tenured generation total 69632K, used 2696K [0x227d0000, 0x26bd0000, 0x26bd0000)

  the space 69632K, 3% used [0x227d0000, 0x22a720f8, 0x22a72200, 0x26bd0000)

  compacting perm gen total 8192K, used 2898K [0x26bd0000, 0x273d0000, 0x2abd0000)

  the space 8192K, 35% used [0x26bd0000, 0x26ea4ba8, 0x26ea4c00, 0x273d0000)

  ro space 8192K, 66% used [0x2abd0000, 0x2b12bcc0, 0x2b12be00, 0x2b3d0000)

  rw space 12288K, 46% used [0x2b3d0000, 0x2b972060, 0x2b972200, 0x2bfd0000)

  34.735: [DefNew: 52568K->3433K(55296K), 0.0072126 secs] 55264K->6615K(124928K)Heap after gc invocations=8:

  def new generation total 55296K, used 3433K [0x1ebd0000, 0x227d0000, 0x227d0000)

  eden space 49152K, 0% used [0x1ebd0000, 0x1ebd0000, 0x21bd0000)

  from space 6144K, 55% used [0x21bd0000, 0x21f2a5e8, 0x221d0000)

  to space 6144K, 0% used [0x221d0000, 0x221d0000, 0x227d0000)

  tenured generation total 69632K, used 3182K [0x227d0000, 0x26bd0000, 0x26bd0000)

  the space 69632K, 4% used [0x227d0000, 0x22aeb958, 0x22aeba00, 0x26bd0000)

  compacting perm gen total 8192K, used 2898K [0x26bd0000, 0x273d0000, 0x2abd0000)

  the space 8192K, 35% used [0x26bd0000, 0x26ea4ba8, 0x26ea4c00, 0x273d0000)

  ro space 8192K, 66% used [0x2abd0000, 0x2b12bcc0, 0x2b12be00, 0x2b3d0000)

  rw space 12288K, 46% used [0x2b3d0000, 0x2b972060, 0x2b972200, 0x2bfd0000)

  }

  , 0.0757599 secs]

⑦ -Xloggc:filename:與上面幾個配合使用,把相關日志信息記錄到文件以便分析。

四、常見配置匯總

1、堆設置

① -Xms:初始堆大小

② -Xmx:最大堆大小

③ -XX:NewSize=n:設置年輕代大小

④ -XX:NewRatio=n:設置年輕代和年老代的比值。如:為3,表示年輕代與年老代比值為1:3,年輕代占整個年輕代年老代和的1/4

⑤ -XX:SurvivorRatio=n:年輕代中Eden區與兩個Survivor區的比值。注意Survivor區有兩個。如:3,表示Eden:Survivor=3:2,一個Survivor區占整個年輕代的1/5

⑥ -XX:MaxPermSize=n:設置持久代大小

2、收集器設置

① -XX:+UseSerialGC:設置串行收集器

② -XX:+UseParallelGC:設置并行收集器

③ -XX:+UseParalledlOldGC:設置并行年老代收集器

④ -XX:+UseConcMarkSweepGC:設置并發收集器

3、垃圾回收統計信息

① -XX:+PrintGC

② -XX:+PrintGCDetails

③ -XX:+PrintGCTimeStamps

④ -Xloggc:filename

4、并行收集器設置

① -XX:ParallelGCThreads=n:設置并行收集器收集時使用的CPU數。并行收集線程數。

② -XX:MaxGCPauseMillis=n:設置并行收集最大暫停時間

③ -XX:GCTimeRatio=n:設置垃圾回收時間占程序運行時間的百分比。公式為1/(1+n)

5、并發收集器設置

① -XX:+CMSIncrementalMode:設置為增量模式。適用于單CPU情況。

② -XX:ParallelGCThreads=n:設置并發收集器年輕代收集方式為并行收集時,使用的CPU數。并行收集線程數。

五、調優總結

1、年輕代大小選擇

① 響應時間優先的應用:盡可能設大,直到接近系統的最低響應時間限制(根據實際情況選擇)。在此種情況下,年輕代收集發生的頻率也是最小的。同時,減少到達年老代的對象。

② 吞吐量優先的應用:盡可能的設置大,可能到達Gbit的程度。因為對響應時間沒有要求,垃圾收集可以并行進行,一般適合8CPU以上的應用。

2、年老代大小選擇

① 響應時間優先的應用:年老代使用并發收集器,所以其大小需要小心設置,一般要考慮并發會話率和會話持續時間等一些參數。如果堆設置小了,可以會造成內存碎片、高回收頻率以及應用暫停而使用傳統的標記清除方式;如果堆大了,則需要較長的收集時間。最優化的方案,一般需要參考以下數據獲得:

并發垃圾收集信息

持久代并發收集次數

傳統GC信息

花在年輕代和年老代回收上的時間比例

減少年輕代和年老代花費的時間,一般會提高應用的效率

② 吞吐量優先的應用:一般吞吐量優先的應用都有一個很大的年輕代和一個較小的年老代。原因是,這樣可以盡可能回收掉大部分短期對象,減少中期的對象,而年老代盡存放長期存活對象。

3、較小堆引起的碎片問題

因為年老代的并發收集器使用標記、清除算法,所以不會對堆進行壓縮。當收集器回收時,他會把相鄰的空間進行合并,這樣可以分配給較大的對象。但是,當堆空間 較小時,運行一段時間以后,就會出現"碎片",如果并發收集器找不到足夠的空間,那么并發收集器將會停止,然后使用傳統的標記、清除方式進行回收。如果出 現"碎片",可能需要進行如下配置:

① -XX:+UseCMSCompactAtFullCollection:使用并發收集器時,開啟對年老代的壓縮。

② -XX:CMSFullGCsBeforeCompaction=0:上面配置開啟的情況下,這里設置多少次Full GC后,對年老代進行壓縮

六、相關概念

1、分代垃圾回收詳述

(1)Young(年輕代)

  年輕代分三個區。一個Eden區,兩個Survivor區。大部分對象在Eden區中生成。當Eden區滿時,還存活的對象將被復制到Survivor區 (兩個中的一個),當這個Survivor區滿時,此區的存活對象將被復制到另外一個Survivor區,當這個Survivor去也滿了的時候,從第一 個Survivor區復制過來的并且此時還存活的對象,將被復制"年老區(Tenured)"。需要注意,Survivor的兩個區是對稱的,沒先后關系,所以同一個區中可能同時存在從Eden復制過來 對象,和從前一個Survivor復制過來的對象,而復制到年老區的只有從第一個Survivor去過來的對象。而且,Survivor區總有一個是空 的。

(2)Tenured(年老代)

  年老代存放從年輕代存活的對象。一般來說年老代存放的都是生命期較長的對象。

(3)Perm(持久代)

  用于存放靜態文件,如今Java類、方法等。持久代對垃圾回收沒有顯著影響,但是有些應用可能動態生成或者調用一些class,例如Hibernate等, 在這種時候需要設置一個比較大的持久代空間來存放這些運行過程中新增的類。持久代大小通過-XX:MaxPermSize=進行設置。

2、GC類型

GC有兩種類型:Scavenge GC和Full GC。

(1)Scavenge GC

  一般情況下,當新對象生成,并且在Eden申請空間失敗時,就好觸發Scavenge GC,堆Eden區域進行GC,清除非存活對象,并且把尚且存活的對象移動到Survivor區。然后整理Survivor的兩個區。

(2)Full GC

  對整個堆進行整理,包括Young、Tenured和Perm。Full GC比Scavenge GC要慢,因此應該盡可能減少Full GC。有如下原因可能導致Full GC:

  1. Tenured被寫滿
  2. Perm域被寫滿
  3. System.gc()被顯示調用
  4. 上一次GC之后Heap的各域分配策略動態變化

3、垃圾回收器

目前的收集器主要有三種:串行收集器、并行收集器、并發收集器。

(1)串行收集器

  使用單線程處理所有垃圾回收工作,因為無需多線程交互,所以效率比較高。但是,也無法使用多處理器的優勢,所以此收集器適合單處理器機器。當然,此收集器也可以用在小數據量(100M左右)情況下的多處理器機器上。可以使用-XX:+UseSerialGC打開。

(2)并行收集器

對年輕代進行并行垃圾回收,因此可以減少垃圾回收時間。一般在多線程多處理器機器上使用。使用-XX:+UseParallelGC.打開。并行收集器在J2SE5.0第六6更新上引入,在Java SE6.0中進行了增強--可以堆年老代進行并行收集。如果年老代不使用并發收集的話,是使用單線程進行垃圾回收,因此會制約擴展能力。使用-XX:+UseParallelOldGC打開。

使用-XX:ParallelGCThreads=設置并行垃圾回收的線程數。此值可以設置與機器處理器數量相等。

此收集器可以進行如下配置:

  1. 最大垃圾回收暫停:指定垃圾回收時的最長暫停時間,通過-XX:MaxGCPauseMillis=指定。為毫秒.如果指定了此值的話,堆大小和垃圾回收相關參數會進行調整以達到指定值。設定此值可能會減少應用的吞吐量。
  2. 吞吐量:吞吐量為垃圾回收時間與非垃圾回收時間的比值,通過-XX:GCTimeRatio=來設定,公式為1/(1+N)。例如,-XX:GCTimeRatio=19時,表示5%的時間用于垃圾回收。默認情況為99,即1%的時間用于垃圾回收。

(3)并發收集器

可以保證大部分工作都并發進行(應用不停止),垃圾回收只暫停很少的時間,此收集器適合對響應時間要求比較高的中、大規模應用。使用-XX:+UseConcMarkSweepGC打開。

  1. 并發收集器主要減少年老代的暫停時間,他在應用不停止的情況下使用獨立的垃圾回收線程,跟蹤可達對象。在每個年老代垃圾回收周期中,在收集初期并發收集器會 對整個應用進行簡短的暫停,在收集中還會再暫停一次。第二次暫停會比第一次稍長,在此過程中多個線程同時進行垃圾回收工作。
  2. 并發收集器使用處理器換來短暫的停頓時間。在一個N個處理器的系統上,并發收集部分使用K/N個可用處理器進行回收,一般情況下1<=K<=N/4。
  3. 在只有一個處理器的主機上使用并發收集器,設置為incremental mode模式也可獲得較短的停頓時間。
  4. 浮動垃圾:由于在應用運行的同時進行垃圾回收,所以有些垃圾可能在垃圾回收進行完成時產生,這樣就造成了"Floating Garbage",這些垃圾需要在下次垃圾回收周期時才能回收掉。所以,并發收集器一般需要20%的預留空間用于這些浮動垃圾。
  5. Concurrent Mode Failure:并發收集器在應用運行時進行收集,所以需要保證堆在垃圾回收的這段時間有足夠的空間供程序使用,否則,垃圾回收還未完成,堆空間先滿了。這種情況下將會發生"并發模式失敗",此時整個應用將會暫停,進行垃圾回收。
  6. 啟動并發收集器:因為并發收集在應用運行時進行收集,所以必須保證收集完成之前有足夠的內存空間供程序使用,否則會出現"Concurrent Mode Failure"。通過設置-XX:CMSInitiatingOccupancyFraction=指定還有多少剩余堆時開始執行并發收集

(4)小結

① 串行處理器:

--適用情況:數據量比較小(100M左右);單處理器下并且對響應時間無要求的應用。

--缺點:只能用于小型應用

② 并行處理器:

--適用情況:"對吞吐量有高要求",多CPU、對應用響應時間無要求的中、大型應用。舉例:后臺處理、科學計算。

--缺點:應用響應時間可能較長

③ 并發處理器:

--適用情況:"對響應時間有高要求",多CPU、對應用響應時間有較高要求的中、大型應用。舉例:Web服務器/應用服務器、電信交換、集成開發環境。

4、基本回收算法

(1)引用計數(Reference Counting)

比較古老的回收算法。原理是此對象有一個引用,即增加一個計數,刪除一個引用則減少一個計數。垃圾回收時,只用收集計數為0的對象。此算法最致命的是無法處理循環引用的問題。

(2)標記-清除(Mark-Sweep)

此算法執行分兩階段。第一階段從引用根節點開始標記所有被引用的對象,第二階段遍歷整個堆,把未標記的對象清除。此算法需要暫停整個應用,同時,會產生內存碎片。

(3)復制(Copying)

此算法把內存空間劃為兩個相等的區域,每次只使用其中一個區域。垃圾回收時,遍歷當前使用區域,把正在使用中的對象復制到另外一個區域中。次算法每次只處理 正在使用中的對象,因此復制成本比較小,同時復制過去以后還能進行相應的內存整理,不過出現"碎片"問題。當然,此算法的缺點也是很明顯的,就是需要兩倍 內存空間。

(4)標記-整理(Mark-Compact)

此算法結合了"標記-清除"和"復 制"兩個算法的優點。也是分兩階段,第一階段從根節點開始標記所有被引用對象,第二階段遍歷整個堆,把清除未標記對象并且把存活對象"壓縮"到堆的其中一 塊,按順序排放。此算法避免了"標記-清除"的碎片問題,同時也避免了"復制"算法的空間問題。

(5)增量收集(Incremental Collecting)

實施垃圾回收算法,即:在應用進行的同時進行垃圾回收。不知道什么原因JDK5.0中的收集器沒有使用這種算法的。

(6)分代(Generational Collecting)

基于對對象生命周期分析后得出的垃圾回收算法。把對象分為年青代、年老代、持久代,對不同生命周期的對象使用不同的算法(上述方式中的一個)進行回收。現在的垃圾回收器(從J2SE1.2開始)都是使用此算法的。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:南陽 白城 邵陽 葫蘆島 泉州 南陽 撫州 岳陽

巨人網絡通訊聲明:本文標題《詳解Linux下Tomcat開啟查看GC信息》,本文關鍵詞  詳解,Linux,下,Tomcat,開啟,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Linux下Tomcat開啟查看GC信息》相關的同類信息!
  • 本頁收集關于詳解Linux下Tomcat開啟查看GC信息的相關信息資訊供網民參考!
  • 推薦文章
    国产伦精品一区| 中文字幕xxxx| 国产精品久久久久久久乖乖| 欧美巨大黑人极品精男| 久久婷婷成人综合色| 日本黄色激情视频| 日韩国产在线一区| 亚洲白拍色综合图区| 日韩专区中文字幕一区二区| 韩国视频一区二区三区| 国产精品99久久久久久白浆小说| 亚洲桃色在线一区| 国产偷人爽久久久久久老妇app| 亚洲爆乳无码精品aaa片蜜桃| 亚洲午夜av电影| 国产欧美视频一区二区| 国产精品视频123| 国产91在线免费| 久久久久久97| 色婷婷国产精品综合在线观看| 久久精品官网| 夫妻性生活毛片| 久久精品国产精品亚洲色婷婷| 成人在线中文字幕| 亚洲激情网站免费观看| 99产精品成人啪免费网站| 99精品视频国产| 亚洲精品免费网站| 亚洲福利视频二区| 国产欧美一区二区三区在线老狼| 国产一区二区视频免费| 亚洲欧美日韩综合网| 91情侣偷在线精品国产| 亚洲国产精品悠悠久久琪琪| 久久久精品一品道一区| 欧美日韩精品一区二区三区视频播放 | xxxxx成人.com| 亚洲欧美一区二区久久| 天天射天天干天天| 亚洲国产精品三区| 国产v亚洲v天堂无码| 欧美大片国产精品| 国产午夜精品久久久久久久| 精品国产乱码一区二区| 可以免费在线看黄的网站| 91亚洲精品在线| 夜夜嗨av一区二区三区免费区| 中文字幕综合网| 美女脱光内衣内裤视频久久网站 | 韩国女主播成人在线观看| 日本熟女毛茸茸| yjizz视频| 欧美精品久久久久久久自慰| 欧美专区福利在线| 欧美videossexotv100| 99精品欧美一区二区蜜桃免费| 天天操中文字幕| 三级黄色片网站| 996这里只有精品| 成人免费看片网址| 欧美精品在线极品| 精品精品国产高清a毛片牛牛| 综合中文字幕亚洲| 国内精品在线播放| 一区二区三区播放| 久久一二三国产| 欧美图区在线视频| 亚洲曰韩产成在线| 国产亚洲xxx| 久久久成人精品视频| 日韩美女免费观看| 尤物一区二区三区| 91香蕉视频污版| 日本激情视频在线| 黄色片网站在线播放| 男人天堂视频网| 久一区二区三区| 99免费在线观看| 国产馆精品极品| 亚洲精品国产精品乱码不99按摩| 国产成人久久久精品一区| 亚洲国产一区在线| 国产草草浮力影院| 日韩中文字幕三区| 99精品人妻国产毛片| 不卡的av电影| www日韩中文字幕在线看| 亚洲五月天综合| 久久午夜鲁丝片| 久久九九影视网| 精品久久久久久电影| 亚洲欧美在线磁力| 国产美女扒开尿口久久久| 国产私拍一区| 一区二区高清视频| 亚洲欧美日韩中文字幕在线观看| 国产精品66部| 精品精品国产高清a毛片牛牛| 国产va免费精品高清在线观看| 天天在线免费视频| 欧洲精品一区色| 欧美人与禽zozzo禽性配| 国产成人aaa| 欧美成人a视频| 久久狠狠久久综合桃花| 国产野外作爱视频播放| 粗大的内捧猛烈进出视频| 中文字字幕在线观看| 中文字幕一区二区三区四区不卡| 欧美激情一二三区| 亚洲精选一二三| 91免费视频网站| 欧美日韩a v| 亚洲男人天堂古典| 国产麻豆天美果冻无码视频 | 中文字幕日韩一区二区三区| 欧美日韩一级大片| 9色视频在线观看| 北条麻妃高清一区| 最近中文字幕免费视频| 久久午夜视频| 国产黄色精品网站| 亚洲视频在线一区观看| 在线看国产一区二区| 亚洲精品国产综合久久| 18视频在线观看娇喘| 蜜臀99久久精品久久久久小说| 久久黄色级2电影| 国产 国语对白 露脸| 亚洲国产999| 91干在线观看| 国产又大又粗又硬| 韩剧1988免费观看全集| 特级西西444www大精品视频免费看| 亚洲精品国产视频| 国产精品夜间视频香蕉| 人妻无码一区二区三区| 国精产品一区一区三区mba桃花| 亚洲国产黄色片| 久久九九国产视频| 噜噜噜在线视频| 国产情侣在线视频| 美女视频一区免费观看| 国产日韩精品一区二区三区| 欧美美女一区二区在线观看| 男女啪啪免费视频网站| 国产99999| 精品国产电影一区| 欧美在线播放一区| 99国产精品99| 91精品久久久久久久久久| 久久国产毛片| 147欧美人体大胆444| 成人黄色免费视频| 亲子乱一区二区三区电影| 潘金莲一级黄色片| 国产精品久久久久久久久免费樱桃| 国产成人精品午夜| 午夜国产福利视频| 亚洲大片精品永久免费| 国产免费一区| 91午夜在线观看| 日韩精品在线视频免费观看| 99久久99久久精品免费看小说.| 亚洲精品国产精| 欧美日韩dvd在线观看| 国产性生交xxxxx免费| 免费在线视频一区| 亚洲天堂av在线免费| 免费看的黄色大片| 欧美国产精品中文字幕| 六月婷婷激情网| 亚洲成人精品一区| 女人扒开腿免费视频app| 欧美三片在线视频观看| 国产二区视频在线播放| 久久丫精品久久丫| 欧美午夜精品在线| 国产freexxxx性播放麻豆| 丝袜美腿成人在线| 免费不卡欧美自拍视频| 国产情侣第一页| 午夜精品在线播放| 国产精品永久在线| 久久久精品日韩| 国产精品白嫩美女在线观看| 国产精品111| 日韩欧美国产一区二区在线播放| 国产精品igao视频| 国产后入清纯学生妹| 国产亚洲人成网站在线观看| 这里只有精品999| 国产精品久久久一区二区三区| 久久精品男人天堂av| 中国极品少妇xxxx| 精品调教chinesegay| 中文字幕永久在线| 国产精品海角社区在线观看| 高h震动喷水双性1v1| 欧美亚洲另类在线| 欧美日韩一二三四区| 日韩国产精品视频| 男人天堂av电影| 色噜噜久久综合| caoporen国产精品| 久久久久在线视频| 日韩av日韩在线观看| 日本在线播放一区二区三区| 欧美激情欧美狂野欧美精品| 国产1区2区3区4区| 中文字幕在线观看亚洲| 日本熟妇人妻xxxx| 91网站在线观看视频| 中文字幕av久久| 91久久精品午夜一区二区| 中文字幕免费不卡在线| 欧美国产一区视频在线观看| 亚洲视频小说图片| 五月激情综合婷婷| 欧美精品在线一区二区| 欧美精品一区二区三区在线播放| 亚洲欧美日韩精品久久| 久久视频免费观看| 日本三级韩国三级久久| 91福利入口| 图片区小说区区亚洲五月| 日本福利视频在线观看| www.超碰com| 黄色性视频网站| 最新日韩免费视频| 91在线视频在线观看| 亚洲AV无码国产精品午夜字幕| 免费人成网站在线观看欧美高清| 不卡一区二区在线| 亚洲人成网站在线| 精品污污网站免费看| 日韩电视剧在线观看免费网站| 久久久精品网站| 国产精品视频免费在线观看| 久热这里只精品99re8久| 国产午夜精品视频一区二区三区| 免费看污黄网站| 人妻少妇精品视频一区二区三区| 欧美人妻精品一区二区免费看| 中文字幕在线观看精品| 日韩激情一区二区| 91网站视频在线观看| 亚洲成人自拍偷拍| 精品乱人伦一区二区三区| 久久成人精品视频| 91最新在线免费观看| 中文字幕欧美日韩一区二区三区| 成人性生生活性生交12| 3d动漫精品啪啪一区二区下载| 国产无码精品在线观看| 国产自产一区二区| www.亚洲精品| 欧美日韩色婷婷| 日韩风俗一区 二区| 69国产精品成人在线播放| 极品尤物一区二区三区| 又粗又黑又大的吊av| 网站免费在线观看| 精品人妻一区二区三区潮喷在线| 日韩国产精品91| 国产精品久久久久久久久免费丝袜| 欧美视频在线不卡| 久久久国产成人精品| 3d蒂法精品啪啪一区二区免费| 超碰97在线看| 制服丝袜在线第一页| 一级片中文字幕| 蜜臀av性久久久久蜜臀aⅴ流畅| 18欧美乱大交hd1984| 日韩精品一区二区三区视频 | 亚洲国模精品私拍| 日本不卡免费高清视频| 日韩hmxxxx| 日韩成人av免费| 清纯粉嫩极品夜夜嗨av| 久久久久久久波多野高潮日日| 国产欧美精品一区| 日韩一区二区三区免费看| 97在线视频免费观看| 欧美一进一出视频| 国产999免费视频| 亚洲免费在线观看av| 男男成人高潮片免费网站| 亚洲综合精品久久| 国产亚洲在线播放| 91一区二区三区| 中文字幕在线观看第三页| 69av视频在线| 日韩va亚洲va欧美va久久| 亚洲男人天堂av| 亚洲精品美女网站| 91精品视频专区| 日韩免费视频播放| 日本精品人妻无码77777| 老**午夜毛片一区二区三区| 亚洲三级在线免费| 亚洲男人第一网站| 国产精品免费区二区三区观看| 在线视频日韩一区| 国产午夜性春猛交ⅹxxx| 国产九九视频一区二区三区| 在线看国产一区| 97精品免费视频| 熟女熟妇伦久久影院毛片一区二区| 国产精品福利导航| 日本精品福利视频| 日韩av在线精品| 国产欧美日韩亚洲精品| 国产成人黄色片| 久久综合成人网| 国产最新精品精品你懂的| 色噜噜狠狠色综合中国| 7777精品久久久久久| 毛片av在线播放| 小泽玛利亚一区| 久久99精品久久久久婷婷| 日本久久精品电影| eeuss鲁片一区二区三区在线观看| 精品高清美女精品国产区| 久久偷看各类女兵18女厕嘘嘘| 日韩欧美亚洲精品| 国产精品成人一区二区三区电影毛片| 高h调教冰块play男男双性文| 一区二区三区色| 九九热最新视频//这里只有精品| 自拍偷拍视频在线| 麻豆视频在线免费看| 国产成人精品网址| 日韩欧美一二三四区| 97久草视频| 无码av免费精品一区二区三区| www男人的天堂| 天天操天天干天天综合网| 97在线看免费观看视频在线观看| 国产96在线 | 亚洲| 国产精品一区二区6| 久久久亚洲午夜电影| 亚洲社区在线观看| 一本一道久久a久久精品综合| 久久精品亚洲a| 成人精品在线视频观看| 日韩高清有码在线| 无码免费一区二区三区免费播放| 天美传媒免费在线观看| 国产精品主播直播| 日韩第一页在线| 亚洲国产高清国产精品| 天天操天天操天天操天天操天天操| 高清国产一区二区三区| 亚洲伦理中文字幕| 免费看污污视频| 精品免费囯产一区二区三区| 一区二区中文视频| 久久全球大尺度高清视频| 日本精品一区二区三区四区| 91九色蝌蚪91por成人| 天天综合天天做天天综合| 国产精品视频一| 人妻 日韩 欧美 综合 制服| 麻豆久久久久久| 亚洲国产欧美日韩精品| 亚洲一区三区| 91蜜桃视频在线观看| 最近中文字幕一区二区三区| 国产91精品不卡视频| 欧美一级视频在线| 日韩中文字幕亚洲一区二区va在线| 日韩一区二区免费在线电影| 欧美日韩在线播放一区二区| 久久久国产精品人人片| 中文字幕一区二区三区在线不卡| 91wwwcom在线观看| 三上悠亚 电影| 精品中文字幕一区二区| 亚洲色图综合久久| 久久国产成人精品国产成人亚洲| 国产情侣自拍小视频| 欧美午夜精品一区二区三区| 国产一级精品aaaaa看| 国产高潮流白浆| 国产精品视频九色porn| 青青青国产精品一区二区| 成人欧美精品一区二区| 国产乱一区二区| 久久五月情影视| 亚洲av无日韩毛片久久| 老司机精品视频在线| 国产一级揄自揄精品视频| 欧美 丝袜 自拍 制服 另类| www.国产三级| 精品国产免费一区二区三区四区| 日本高清视频免费在线观看| 国产三级三级在线观看| 欧美一区二区三区在线看| 在线成人性视频| 国产又爽又黄又嫩又猛又粗| 在线成人午夜影院| 中国老女人av| 亚洲av无码国产精品久久不卡| 亚洲国产福利在线| 丝袜老师办公室里做好紧好爽| 久久经典综合| 神马久久桃色视频| 国产欧美一区二| 本田岬高潮一区二区三区|