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

小伙伴問(wèn)我性能指標(biāo)監(jiān)控怎么做,這次我安排上了!!

安全 應(yīng)用安全
作者個(gè)人研發(fā)的在高并發(fā)場(chǎng)景下,提供的簡(jiǎn)單、穩(wěn)定、可擴(kuò)展的延遲消息隊(duì)列框架,具有精準(zhǔn)的定時(shí)任務(wù)和延遲隊(duì)列處理功能。

[[342919]]

作者個(gè)人研發(fā)的在高并發(fā)場(chǎng)景下,提供的簡(jiǎn)單、穩(wěn)定、可擴(kuò)展的延遲消息隊(duì)列框架,具有精準(zhǔn)的定時(shí)任務(wù)和延遲隊(duì)列處理功能。自開(kāi)源半年多以來(lái),已成功為十幾家中小型企業(yè)提供了精準(zhǔn)定時(shí)調(diào)度方案,經(jīng)受住了生產(chǎn)環(huán)境的考驗(yàn)。為使更多童鞋受益,現(xiàn)給出開(kāi)源框架地址:https://github.com/sunshinelyz/mykit-delay

小伙伴的疑問(wèn)小伙伴:監(jiān)控怎么做?

我:你指的是?

小伙伴:性能指標(biāo)。

我:后面會(huì)專(zhuān)門(mén)寫(xiě)這些文章。

使用JMX監(jiān)控Tomcat

關(guān)于監(jiān)控的文章,先寫(xiě)些什么呢?想來(lái)想去,我們先來(lái)寫(xiě)一篇使用JMX監(jiān)控Tomcat的實(shí)戰(zhàn)文章吧。好了,我們直接進(jìn)入主題。

激活Tomcat的JMX遠(yuǎn)程配置

要通過(guò)JMX遠(yuǎn)程監(jiān)控Tomcat,首先需要激活Tomcat的JMX遠(yuǎn)程配置。

① 修改腳本

先修改Tomcat的啟動(dòng)腳本,windows下為bin/catalina.bat(linux下為catalina.sh),添加以下內(nèi)容,8999是jmxremote使用的端口號(hào),第二個(gè)false表示不需要鑒權(quán):

  1. set JMX_REMOTE_CONFIG=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 
  2. set CATALINA_OPTS=%CATALINA_OPTS% %JMX_REMOTE_CONFIG% 

要注意以上語(yǔ)句的位置不能太后面,可以加在【if "%OS%" == "Windows_NT" setlocal】一句后的大段的注釋后面。

參考官方說(shuō)明:

  • http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html#Enabling_JMX_Remote
  • http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html#Enabling_JMX_Remote
  • http://tomcat.apache.org/tomcat-8.0-doc/monitoring.html#Enabling_JMX_Remote
  • http://tomcat.apache.org/tomcat-9.0-doc/monitoring.html#Enabling_JMX_Remote

② 鑒權(quán)

上面的配置是不需要鑒權(quán)的,如果需要鑒權(quán)則添加的內(nèi)容為:

  1. set JMX_REMOTE_CONFIG=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access 
  2. set CATALINA_OPTS=%CATALINA_OPTS% %JMX_REMOTE_CONFIG% 

③ 復(fù)制并修改授權(quán)文件

$JAVA_HOME/jre/lib/management下有jmxremote.access和jmxremote.password的模板文件,將兩個(gè)文件復(fù)制到$CATALINA_BASE/conf目錄下

  • 修改$CATALINA_BASE/conf/jmxremote.access 添加內(nèi)容
  1. monitorRole readonly 
  2. controlRole readwrite 
  • 修改$CATALINA_BASE/conf/jmxremote.password 添加內(nèi)容:
  1. monitorRole binghe 
  2. controlRole binghe 

注意:如果進(jìn)行了以上步驟導(dǎo)致Tomcat啟動(dòng)不了,那么很可能是密碼文件的權(quán)限問(wèn)題

需要修改jmxremote.password文件的訪問(wèn)權(quán)限,只有運(yùn)行Tomcat的用戶(hù)才能擁有訪問(wèn)權(quán)限 :

Windows的NTFS文件系統(tǒng)下,選中文件,點(diǎn)右鍵 -->“屬性”-->“安全”--> 點(diǎn)“高級(jí)”--> 點(diǎn)“更改權(quán)限”--> 去掉“從父項(xiàng)繼承....”--> 彈出窗口中選“刪除”,這樣就刪除了所有訪問(wèn)權(quán)限。再選“添加”--> “高級(jí)”--> “立即查找”,選中你的用戶(hù)(或用戶(hù)組,如果選用戶(hù)不行那就選用戶(hù)組),例administrator,點(diǎn)“確定",“確定"。來(lái)到權(quán)限項(xiàng)目窗口,勾選“完全控制”,點(diǎn)“確定”,OK了。

官方的提示

  1. The password file should be read-only and only accessible by the operating system user Tomcat is running as

④驗(yàn)證配置

重新啟動(dòng)Tomcat,在Windows命令行輸入“netstat -a”查看配置的端口號(hào)是否已打開(kāi),如果打開(kāi),說(shuō)明上面的配置成功了。

⑤ 使用jconsole測(cè)試JMX

運(yùn)行$JAVA_HOME/bin目錄下的jconsole.exe,打開(kāi)J2SE監(jiān)視和管理控制臺(tái),然后建立連接,如果是本地的Tomcat則直接選擇然后點(diǎn)擊連接,如果是遠(yuǎn)程的,則進(jìn)入遠(yuǎn)程選項(xiàng)卡,填寫(xiě)地址、端口號(hào)、用戶(hù)名、口令即可連接。。Mbean屬性頁(yè)中給出了相應(yīng)的數(shù)據(jù),Catalina中是tomcat的,java.lang是jvm的。對(duì)于加粗的黑體屬性值,需雙擊一下才可看內(nèi)容。

代碼獲取監(jiān)控指標(biāo)

  • 關(guān)鍵代碼
  1. String jmxURL = "service:jmx:rmi:///jndi/rmi://192.168.10.93:8999/jmxrmi"
  2. JMXServiceURL serviceURL = new JMXServiceURL(jmxURL); 
  3.   
  4. Map map = new HashMap(); 
  5. // 用戶(hù)名密碼,在jmxremote.password文件中查看 
  6. String[] credentials = new String[] { "monitorRole""tomcat" }; 
  7. map.put("jmx.remote.credentials", credentials); 
  8. JMXConnector connector = JMXConnectorFactory.connect(serviceURL, map); 
  9. MBeanServerConnection mbsc = connector.getMBeanServerConnection(); 
  10.   
  11. // 端口最好是動(dòng)態(tài)取得 
  12. ObjectName threadObjName = new ObjectName("Catalina:type=ThreadPool,name=http-8080"); 
  13. MBeanInfo mbInfo = mbsc.getMBeanInfo(threadObjName); 
  14.   
  15. // tomcat的線程數(shù)對(duì)應(yīng)的屬性值 
  16. String attrName = "currentThreadCount"
  17. MBeanAttributeInfo[] mbAttributes = mbInfo.getAttributes(); 
  18. System.out.println("currentThreadCount:" + mbsc.getAttribute(threadObjName, attrName)); 
  • 完整代碼
  1. import java.lang.management.MemoryUsage; 
  2. import java.text.SimpleDateFormat; 
  3. import java.util.Date
  4. import java.util.Formatter; 
  5. import java.util.HashMap; 
  6. import java.util.Iterator; 
  7. import java.util.Map; 
  8. import java.util.Set
  9.   
  10. import javax.management.MBeanAttributeInfo; 
  11. import javax.management.MBeanInfo; 
  12. import javax.management.MBeanServerConnection; 
  13. import javax.management.ObjectInstance; 
  14. import javax.management.ObjectName; 
  15. import javax.management.openmbean.CompositeDataSupport; 
  16. import javax.management.remote.JMXConnector; 
  17. import javax.management.remote.JMXConnectorFactory; 
  18. import javax.management.remote.JMXServiceURL; 
  19. /** 
  20.  * @author binghe 
  21.  * @description JMX監(jiān)控Tomcat代碼實(shí)戰(zhàn) 
  22.  */ 
  23. public class JMXTest { 
  24.  public static void main(String[] args) { 
  25.   try { 
  26.    String jmxURL = "service:jmx:rmi:///jndi/rmi://127.0.0.1:8999/jmxrmi"
  27.    JMXServiceURL serviceURL = new JMXServiceURL(jmxURL); 
  28.    Map map = new HashMap(); 
  29.    String[] credentials = new String[] { "monitorRole""tomcat" }; 
  30.    map.put("jmx.remote.credentials", credentials); 
  31.    JMXConnector connector = JMXConnectorFactory.connect(serviceURL,map); 
  32.    MBeanServerConnection mbsc = connector.getMBeanServerConnection(); 
  33.    // 端口最好是動(dòng)態(tài)取得 
  34.    ObjectName threadObjName = new ObjectName("Catalina:type=ThreadPool,name=http-8080"); 
  35.    MBeanInfo mbInfo = mbsc.getMBeanInfo(threadObjName); 
  36.    String attrName = "currentThreadCount";// tomcat的線程數(shù)對(duì)應(yīng)的屬性值 
  37.    MBeanAttributeInfo[] mbAttributes = mbInfo.getAttributes(); 
  38.    System.out.println("currentThreadCount:" + mbsc.getAttribute(threadObjName, attrName)); 
  39.   
  40.    // heap 
  41.    for (int j = 0; j < mbsc.getDomains().length; j++) { 
  42.     System.out.println("###########" + mbsc.getDomains()[j]); 
  43.    } 
  44.    Set MBeanset = mbsc.queryMBeans(nullnull); 
  45.    System.out.println("MBeanset.size() : " + MBeanset.size()); 
  46.    Iterator MBeansetIterator = MBeanset.iterator(); 
  47.    while (MBeansetIterator.hasNext()) { 
  48.     ObjectInstance objectInstance = (ObjectInstance) MBeansetIterator.next(); 
  49.     ObjectName objectName = objectInstance.getObjectName(); 
  50.     String canonicalName = objectName.getCanonicalName(); 
  51.     System.out.println("canonicalName : " + canonicalName); 
  52.     if (canonicalName.equals("Catalina:host=localhost,type=Cluster")) { 
  53.      // Get details of cluster MBeans 
  54.      System.out.println("Cluster MBeans Details:"); 
  55.      System.out.println("========================================="); 
  56.      // getMBeansDetails(canonicalName); 
  57.      String canonicalKeyPropList = objectName.getCanonicalKeyPropertyListString(); 
  58.     } 
  59.    } 
  60.    // ------------------------- system ---------------------- 
  61.    ObjectName runtimeObjName = new ObjectName("java.lang:type=Runtime"); 
  62.    System.out.println("廠商:"+ (String) mbsc.getAttribute(runtimeObjName, "VmVendor")); 
  63.    System.out.println("程序:"+ (String) mbsc.getAttribute(runtimeObjName, "VmName")); 
  64.    System.out.println("版本:"+ (String) mbsc.getAttribute(runtimeObjName, "VmVersion")); 
  65.    Date starttime = new Date((Long) mbsc.getAttribute(runtimeObjName,"StartTime")); 
  66.    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
  67.    System.out.println("啟動(dòng)時(shí)間:" + df.format(starttime)); 
  68.   
  69.    Long timespan = (Long) mbsc.getAttribute(runtimeObjName, "Uptime"); 
  70.    System.out.println("連續(xù)工作時(shí)間:" + JMXTest.formatTimeSpan(timespan)); 
  71.    // ------------------------ JVM ------------------------- 
  72.    // 堆使用率 
  73.    ObjectName heapObjName = new ObjectName("java.lang:type=Memory"); 
  74.    MemoryUsage heapMemoryUsage = MemoryUsage.from((CompositeDataSupport) mbsc.getAttribute(heapObjName,"HeapMemoryUsage")); 
  75.    long maxMemory = heapMemoryUsage.getMax();// 堆最大 
  76.    long commitMemory = heapMemoryUsage.getCommitted();// 堆當(dāng)前分配 
  77.    long usedMemory = heapMemoryUsage.getUsed(); 
  78.    System.out.println("heap:" + (double) usedMemory * 100 / commitMemory + "%");// 堆使用率 
  79.   
  80.    MemoryUsage nonheapMemoryUsage = MemoryUsage.from((CompositeDataSupport) mbsc.getAttribute(heapObjName,"NonHeapMemoryUsage")); 
  81.    long noncommitMemory = nonheapMemoryUsage.getCommitted(); 
  82.    long nonusedMemory = heapMemoryUsage.getUsed(); 
  83.    System.out.println("nonheap:" + (double) nonusedMemory * 100 / noncommitMemory + "%"); 
  84.   
  85.    ObjectName permObjName = new ObjectName("java.lang:type=MemoryPool,name=Perm Gen"); 
  86.    MemoryUsage permGenUsage = MemoryUsage.from((CompositeDataSupport) mbsc.getAttribute(permObjName, "Usage")); 
  87.    long committed = permGenUsage.getCommitted();// 持久堆大小 
  88.    long used = heapMemoryUsage.getUsed();// 
  89.    System.out.println("perm gen:" + (double) used * 100 / committed + "%");// 持久堆使用率 
  90.   
  91.    // -------------------- Session --------------- 
  92.    ObjectName managerObjName = new ObjectName("Catalina:type=Manager,*"); 
  93.    Set<ObjectName> s = mbsc.queryNames(managerObjName, null); 
  94.    for (ObjectName obj : s) { 
  95.     System.out.println("應(yīng)用名:" + obj.getKeyProperty("path")); 
  96.     ObjectName objname = new ObjectName(obj.getCanonicalName()); 
  97.     System.out.println("最大會(huì)話數(shù):" + mbsc.getAttribute(objname, "maxActiveSessions")); 
  98.     System.out.println("會(huì)話數(shù):" + mbsc.getAttribute(objname, "activeSessions")); 
  99.     System.out.println("活動(dòng)會(huì)話數(shù):" + mbsc.getAttribute(objname, "sessionCounter")); 
  100.    } 
  101.   
  102.    // ----------------- Thread Pool ---------------- 
  103.    ObjectName threadpoolObjName = new ObjectName("Catalina:type=ThreadPool,*"); 
  104.    Set<ObjectName> s2 = mbsc.queryNames(threadpoolObjName, null); 
  105.    for (ObjectName obj : s2) { 
  106.     System.out.println("端口名:" + obj.getKeyProperty("name")); 
  107.     ObjectName objname = new ObjectName(obj.getCanonicalName()); 
  108.     System.out.println("最大線程數(shù):" + mbsc.getAttribute(objname, "maxThreads")); 
  109.     System.out.println("當(dāng)前線程數(shù):" + mbsc.getAttribute(objname, "currentThreadCount")); 
  110.     System.out.println("繁忙線程數(shù):" + mbsc.getAttribute(objname, "currentThreadsBusy")); 
  111.    } 
  112.   } catch (Exception e) { 
  113.    e.printStackTrace(); 
  114.   } 
  115.  } 
  116.   
  117.  public static String formatTimeSpan(long span) { 
  118.   long minseconds = span % 1000; 
  119.   
  120.   span = span / 1000; 
  121.   long seconds = span % 60; 
  122.   
  123.   span = span / 60; 
  124.   long mins = span % 60; 
  125.   
  126.   span = span / 60; 
  127.   long hours = span % 24; 
  128.   
  129.   span = span / 24; 
  130.   long days = span; 
  131.   return (new Formatter()).format("%1$d天 %2$02d:%3$02d:%4$02d.%5$03d", days, hours, mins, seconds, minseconds).toString(); 
  132.  } 

Tomcat9 JVM參數(shù)調(diào)優(yōu)

修改配置

  1. #要添加在tomcat 的bin 下catalina.sh 里添加 
  2. JAVA_OPTS="-Xms1024m -Xmx2048m -Xss2048K -XX:PermSize=128m -XX:MaxPermSize=256m" 

參數(shù)說(shuō)明

  • -Xms 初始化內(nèi)存大小,一般設(shè)置為和Xmx一致,避免每次垃圾回收后重新分配內(nèi)存
  • -Xmx 最大可用內(nèi)存
  • -Xmn 年輕代大小
  • -Xss 設(shè)置每個(gè)線程棧的大小
  • -XX:MetaspaceSize=512M 初始元空間大小,達(dá)到該值就會(huì)觸發(fā)垃圾收集進(jìn)行類(lèi)型卸載,同時(shí)GC會(huì)對(duì)該值進(jìn)行調(diào)整:如果釋放了大量的空間,就適當(dāng)降低該值;如果釋放了很少的空間,那么在不超過(guò)MaxMetaspaceSize時(shí),適當(dāng)提高該值。
  • -XX:MaxMetaspaceSize=512M
  • -XX:+UseConcMarkSweepGC 并發(fā)標(biāo)記清除(CMS)收集器
  • -XX:+CMSClassUnloadingEnabled
  • -XX:+HeapDumpOnOutOfMemoryError 表示當(dāng)JVM發(fā)生OOM時(shí),自動(dòng)生成DUMP文件。
  • -XX:HeapDumpPath={目錄}/java_heapdump.hprof。如果不指定文件名,默認(rèn)為:java__heapDump.hprof。

Tomcat 相關(guān)參數(shù)優(yōu)化

連接數(shù),線程數(shù),緩存,修改server.xml

打開(kāi)被注釋的默認(rèn)連接池配置。

默認(rèn)配置如下所示:

  1. <!--   
  2. <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"   
  3. maxThreads="150" minSpareThreads="4"/>   
  4. -->   

修改實(shí)例:

  1. <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"   
  2.          maxThreads="150"  
  3.          minSpareThreads="100"    
  4.          prestartminSpareThreads="true"  
  5.          maxQueueSize="100"/>  

參數(shù)說(shuō)明:

  • name:線程名稱(chēng)
  • namePrefix:線程前綴
  • maxThreads:最大并發(fā)連接數(shù),不配置時(shí)默認(rèn)200,一般建議設(shè)置500~ 800 ,要根據(jù)自己的硬件設(shè)施條件和實(shí)際業(yè)務(wù)需求而定。
  • minSpareThreads:Tomcat啟動(dòng)初始化的線程數(shù),默認(rèn)值25
  • prestartminSpareThreads:在tomcat初始化的時(shí)候就初始化minSpareThreads的值, 不設(shè)置trueminSpareThreads 的值就沒(méi)啥效果了 。
  • maxQueueSize:最大的等待隊(duì)列數(shù),超過(guò)則拒絕請(qǐng)求

修改后的配置如下所示:

  1. <Connector port="8080" protocol="HTTP/1.1" 
  2.         connectionTimeout="20000"   
  3.         redirectPort="8443"    
  4.         executor="tomcatThreadPool"   
  5.         enableLookups="false"    
  6.         maxIdleTime="60000" 
  7.         acceptCount="100"    
  8.         maxPostSize="10485760"  
  9.         acceptorThreadCount="2"     
  10.         disableUploadTimeout="true"    
  11.         URIEncoding="utf-8" 
  12.         keepAliveTimeout ="6000"   
  13.         maxKeppAliveRequests="500"    
  14.       /> 

參數(shù)說(shuō)明:

  • port:連接端口。
  • protocol:連接器使用的傳輸方式。
  • executor:連接器使用的線程池名稱(chēng)
  • enableLookups:禁用DNS 查詢(xún)
  • maxIdleTime:線程空閑時(shí)間,超過(guò)該時(shí)間后,空閑線程會(huì)被銷(xiāo)毀,默認(rèn)值為6000(1分鐘),單位毫秒。
  • acceptCount:指定當(dāng)所有可以使用的處理請(qǐng)求的線程數(shù)都被使用時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過(guò)這個(gè)數(shù)的請(qǐng)求將不予處理,默認(rèn)設(shè)置 100 。
  • maxPostSize:限制 以FORM URL 參數(shù)方式的POST請(qǐng)求的內(nèi)容大小,單位字節(jié),默認(rèn)是 2097152(2兆),10485760 為 10M。如果要禁用限制,則可以設(shè)置為 -1。
  • acceptorThreadCount:用于接收連接的線程的數(shù)量,默認(rèn)值是1。一般這個(gè)指需要改動(dòng)的時(shí)候是因?yàn)樵摲?wù)器是一個(gè)多核CPU,如果是多核 CPU 一般配置為 2。
  • disableUploadTimeOut:允許Servlet容器,正在執(zhí)行使用一個(gè)較長(zhǎng)的連接超時(shí)值,以使Servlet有較長(zhǎng)的時(shí)間來(lái)完成它的執(zhí)行,默認(rèn)值為false。
  • keepAliveTimeout - 表示在下次請(qǐng)求過(guò)來(lái)之前,tomcat保持該連接多久。這就是說(shuō)假如客戶(hù)端不斷有請(qǐng)求過(guò)來(lái),且未超過(guò)過(guò)期時(shí)間,則該連接將一直保持。
  • maxKeepAliveRequests -表示該連接最大支持的請(qǐng)求數(shù)。超過(guò)該請(qǐng)求數(shù)的連接也將被關(guān)閉(此時(shí)就會(huì)返回一個(gè)Connection: close頭給客戶(hù)端).(maxKeepAliveRequests="1"代表禁用長(zhǎng)連接)(1表示禁用,-1表示不限制個(gè)數(shù),默認(rèn)100個(gè)。一般設(shè)置在100~200之間)

本文轉(zhuǎn)載自微信公眾號(hào)「冰河技術(shù)」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系冰河技術(shù)公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 冰河技術(shù)
相關(guān)推薦

2020-10-19 08:53:08

Redis性能指標(biāo)監(jiān)控

2022-05-02 08:56:04

前端性能指標(biāo)

2013-06-17 10:19:30

交換機(jī)性能交換機(jī)參數(shù)交換機(jī)

2010-09-08 11:38:27

2023-11-20 09:48:13

Linux性能指標(biāo)命令

2024-09-20 08:32:21

2011-05-04 13:53:08

jQuery

2011-06-07 14:16:38

雙絞線

2011-07-28 14:58:49

HP ProLiant服務(wù)器

2023-12-29 15:30:41

內(nèi)存存儲(chǔ)

2023-11-25 20:16:22

前端

2023-12-17 14:49:20

前端首屏?xí)r間

2021-01-13 08:08:18

ZabbixReport運(yùn)維

2013-08-09 10:37:31

代碼數(shù)據(jù)

2015-05-19 14:30:48

加密視頻加密億賽通

2009-12-11 15:17:35

2018-01-04 09:23:21

WEB服務(wù)器性能

2024-06-28 11:54:20

2017-02-22 11:51:11

FortiGate企業(yè)級(jí)防火墻NGFW

2023-09-08 15:37:29

軟件開(kāi)發(fā)性能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产日韩亚洲欧美| 国产三级精品三级在线观看国产| 不卡日本视频| 亚洲伊人伊色伊影伊综合网| 国产精品jvid在线观看蜜臀| 少妇伦子伦精品无吗| 97人妻精品视频一区| 亚洲大奶少妇| 18涩涩午夜精品.www| 国产suv精品一区二区三区88区| 国产在线a视频| 黄色精品免费看| 亚洲精品进入| 亚洲图片一区二区| 日韩精品久久久免费观看| 欧美三级韩国三级日本三斤在线观看 | 女女同性女同一区二区三区91| 日韩在线中文字幕视频| 国产成人精品一区二区三区视频 | 怡红院在线播放| 麻豆91在线观看| 在线观看日韩av| 一区二区三区国产免费| 天天摸夜夜添狠狠添婷婷| 欧美精品三区| 精品少妇一区二区三区免费观看 | 成人激情在线观看| 黄色录像免费观看| 久久精品xxxxx| 国产精品久久久久久久午夜片| 日本精品在线视频| 久久久久久激情| 在线日韩成人| 亚洲成在人线在线播放| 极品校花啪啪激情久久| www.com国产| 成人羞羞在线观看网站| 亚洲国语精品自产拍在线观看| 国产一区二区网| 涩涩视频在线观看免费| 日韩在线播放一区二区| 这里只有精品在线播放| 九一精品久久久| 欧美xxxx性xxxxx高清| 99久久久精品| 国产成人精品日本亚洲| 久草国产精品视频| 狠狠色丁香久久综合频道| 亚洲国产天堂久久综合| 亚洲av毛片在线观看| av资源中文在线天堂| 久久精品人人做人人爽人人| 成人激情视频在线观看| 中文字幕在线网址| 欧美视频导航| 欧美日韩高清区| 一本加勒比北条麻妃| 成人在线视频观看| 色88888久久久久久影院按摩| 杨幂一区欧美专区| 亚洲精品无amm毛片| 国产精品丝袜xxxxxxx| 色系列之999| 精品人妻伦一二三区久| 不卡亚洲精品| 欧美日韩中文字幕精品| 男人天堂手机在线视频| 欧美孕妇孕交| 国产午夜精品久久久久久久| 亚洲精品久久区二区三区蜜桃臀 | 美女福利一区二区| 亚洲欧洲日本在线| 国产又黄又爽免费视频| 四虎国产精品永远| 国产麻豆精品theporn| 97国产在线视频| 99自拍视频在线| 欧美一区不卡| 亚洲视频axxx| 亚洲av人人澡人人爽人人夜夜| 豆花视频一区二区| 亚洲欧美在线一区| 日本少妇aaa| 美女精品一区最新中文字幕一区二区三区 | 在线视频日韩精品| www.av成人| 日韩伦理一区二区三区| 日韩免费福利电影在线观看| 亚洲黄色a v| www久久久| 欧美日韩一区在线观看| 欧美视频国产视频| 老司机精品在线| 欧美大片在线观看| 精品少妇一区二区三区免费观| 成人免费在线播放| 欧美国产亚洲视频| 青娱乐国产盛宴| 99成人超碰| 中文字幕日韩专区| 真实国产乱子伦对白在线| 99国产精品免费视频观看| 欧美激情视频一区二区三区不卡 | 欧美精品日韩精品| 欧美午夜性生活| youjizzjizz亚洲| 日韩午夜在线影院| 不卡中文字幕在线观看| 黄色免费大全亚洲| 久久精品久久久久| 2025国产精品自拍| 视频一区二区不卡| 国产99久久久欧美黑人| 国产高潮流白浆喷水视频| 精品一二三四区| 成人中心免费视频| 国产精品久久777777换脸| 美腿丝袜亚洲三区| 成人免费视频网址| 青春有你2免费观看完整版在线播放高清 | 久久久久欧美| 五月激情婷婷网| 99精品国产91久久久久久 | 亚洲人成网亚洲欧洲无码| 久久艳片www.17c.com | 999在线视频| 国产精品理论在线观看| 99精品人妻少妇一区二区| 亚洲精华液一区二区三区| 欧美性猛交xxxx偷拍洗澡| 欧美三级午夜理伦三级| 国产一区二区三区影视| 欧美精三区欧美精三区| 国产精品国产三级国产专业不| 日韩精品免费一区二区三区| 毛片精品免费在线观看| 国产在线一区视频| 美女国产一区| 国产乱人伦真实精品视频| 国产视频一区二区三| 成人免费的视频| 日本一区二区在线视频观看| 91美女视频在线| 日本二三区不卡| av直播在线观看| 日韩欧美1区| 国产精品99久久久久久www| 女人天堂在线| ㊣最新国产の精品bt伙计久久| 成人午夜激情av| 欧美一区二区三区高清视频| 国产极品精品在线观看| 成人精品一区| 亚洲五码中文字幕| 亚洲成人av免费观看| 亚洲成人最新网站| 91精品国产色综合| 亚洲系列在线观看| 成人禁用看黄a在线| 亚洲电影网站| 欧洲精品久久久久毛片完整版| 日韩欧美中文字幕一区| 国产女人被狂躁到高潮小说| 国产宾馆实践打屁股91| 日本一区二区在线视频| 国产精品99久久久久久董美香| 中文字幕国产精品| 国产尤物视频在线观看| 久久夜色精品国产噜噜av | 欧美影视一区| 国产91社区| 国产视频福利在线| 亚洲国产精品久久艾草纯爱| 国产免费一区二区三区最新6| 在线视频精品| 97久久人人超碰caoprom欧美| 国产免费永久在线观看| 欧美日韩精品欧美日韩精品 | 久草热在线观看| 国产精品伦理在线| 无码av免费精品一区二区三区| 日韩电影免费在线观看| 亚洲综合社区网| 日本三级视频在线播放| 色激情天天射综合网| 影音先锋男人看片资源| 久久视频一区| 波多野结衣激情| 亚洲精品**不卡在线播he| 国产精品中文在线| av影视在线| 中文字幕日韩精品有码视频| 秋霞视频一区二区| 亚洲综合色婷婷| 天天久久综合网| 99久久婷婷| 久99久视频| 96视频在线观看欧美| 2019中文字幕在线观看| 午夜视频1000| 在线成人免费观看| 久久国产黄色片| 亚洲黄色性网站| 中文字幕一二三区| 首页国产欧美久久| 国产曰肥老太婆无遮挡| 色综合天天爱| 欧美精品123| 吞精囗交69激情欧美| 亚洲精品日韩久久久| 国偷自拍第113页| 91女厕偷拍女厕偷拍高清| 国产精品网站免费| 自产国语精品视频| caoporen国产精品| 日本电影在线观看| 中文字幕成人精品久久不卡| 在线观看xxx| 日韩欧美国产1| 一级视频在线播放| 在线观看视频一区二区欧美日韩| 伊人网在线视频观看| 日韩国产欧美在线观看| 免费看黄在线看| 亚洲最好看的视频| 99久久精品免费看国产四区| 日韩成人一区| 国产精品久久综合av爱欲tv| 国产1区在线| 精品国产一区二区三区不卡| 久久亚洲天堂网| 亚洲线精品一区二区三区八戒| 2014亚洲天堂| 国产精品嫩草99a| 日本爱爱爱视频| 91美女福利视频| 三级男人添奶爽爽爽视频| 肉色丝袜一区二区| 久草精品在线播放| 午夜精品一区二区三区国产| 日韩一区不卡| 精品欧美久久| 成人18视频| 日韩高清在线观看一区二区| 亚洲在线视频福利| 天堂精品在线视频| 99国产精品久久久久老师| 国产色99精品9i| 日韩av电影国产| 欧美电影免费看| 国产精品高潮粉嫩av| a天堂中文在线官网在线| 精品久久久999| av中文字幕在线观看| 九九精品视频在线| 国产后进白嫩翘臀在线观看视频 | 91精品免费久久久久久久久| 亚洲国产精选| 99中文视频在线| 麻豆一区二区麻豆免费观看| 精品欧美一区二区久久久伦| 亚洲大片精品免费| 丝袜足脚交91精品| 久久97久久97精品免视看秋霞| 国产日韩在线一区二区三区| 色999韩欧美国产综合俺来也| 国产三级精品网站| 日韩在线精品强乱中文字幕| 国产免费一区二区三区| 午夜a一级毛片亚洲欧洲| 欧美一区二区三区在线免费观看| 欧美日中文字幕| 超碰在线免费观看97| 欧美涩涩网站| 十八禁视频网站在线观看| 捆绑调教一区二区三区| 杨幂一区二区国产精品| 丰满白嫩尤物一区二区| 国产成人精品无码免费看夜聊软件| 国产成人免费视频网站| 超碰在线人人爱| 先锋影音久久| 亚洲理论电影在线观看| 欧美一级播放| 在线免费看污网站| 99热这里都是精品| 日韩欧美视频免费观看| 一区二区三区在线播| 亚洲第一精品在线观看| 欧美日韩午夜影院| 好吊视频一二三区| 欧美α欧美αv大片| 欧洲免费在线视频| 久久久精品999| 波多野结衣亚洲| 亚洲自拍高清视频网站| 欧美黑白配在线| 韩国成人一区| 91精品综合久久久久久久久久久| 霍思燕三级露全乳照| 久久99国产精品尤物| 日本高清久久久| 蜜臀99久久精品久久久久久软件| 深夜视频在线观看| 中文字幕va一区二区三区| 人人妻人人藻人人爽欧美一区| 国产精品欧美综合在线| 国产成人亚洲精品自产在线 | 国产中文精品久高清在线不| 久久国产手机看片| 91精品国产91久久久久久黑人| 欧美v在线观看| 国产91露脸合集magnet| 日本黄区免费视频观看| 黄网动漫久久久| www.中文字幕在线观看| 日韩一卡二卡三卡国产欧美| h网站在线免费观看| 88国产精品欧美一区二区三区| 免费看日产一区二区三区| 91嫩草免费看| 久久中文视频| 欧美在线观看黄| 亚洲国产专区校园欧美| 91av资源网| 岛国精品一区二区| 丝袜 亚洲 另类 欧美 重口| 欧美色综合网站| 成年网站在线| 国产精品91视频| 国产探花在线精品一区二区| 国产乱子伦农村叉叉叉| 三级欧美韩日大片在线看| 精品无码国产一区二区三区51安| 一级做a爱片久久| av中文字幕在线免费观看| 久久精品99久久久久久久久| 国产福利91精品一区二区| 日韩欧美亚洲在线| 久久不射网站| 免费污网站在线观看| 欧美视频国产精品| 欧美一区二区三区少妇| 欧美中文在线视频| 日韩美香港a一级毛片| 亚洲精品成人久久久998| 日韩成人伦理电影在线观看| 国产免费无遮挡吸奶头视频| 色素色在线综合| 成人影视在线播放| 国产精品久久久久久av福利软件| 精品精品99| 性chinese极品按摩| 大尺度一区二区| 亚洲国产精品午夜在线观看| 欧美性高清videossexo| 亚洲国产视频一区二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整| 榴莲视频成人app| www.国产在线播放| 97久久精品人人做人人爽| 在线观看日本视频| 日韩欧美一二三区| 久久亚洲资源| 蜜桃传媒视频第一区入口在线看| 久久久久国内| 91n在线视频| 欧美zozo另类异族| 欧美大胆性生话| 亚洲第一精品区| 大桥未久av一区二区三区中文| 中文字幕一区二区三区精品 | 四虎亚洲成人| 国产精品88a∨| 在线观看日韩| 日本护士做爰视频| 欧美性感一类影片在线播放| 九义人在线观看完整免费版电视剧| 51精品国产人成在线观看| 亚洲国产激情| www.日本高清视频| 欧美日韩一区二区精品| 精品黑人一区二区三区国语馆| 中文字幕不卡av| 51亚洲精品| 久久精品网站视频| 亚洲精品成人在线| 免费在线黄色网址| 亚洲精品免费av| 久久久久久自在自线| jizz亚洲少妇| 亚洲欧洲中文天堂| 婷婷视频一区二区三区| 欧美 日韩 国产 激情| 久久久久久久精| 久久国产黄色片| 久久夜精品va视频免费观看| 激情视频极品美女日韩| 亚洲欧美偷拍另类| 欧美日韩免费看|