免费黄色欧美视频-免费黄色美女视频-免费黄色毛片视频-免费黄色毛片-免费黄色国产视频-免费黄色大片在线观看

二維碼
企資網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁 » 企業(yè)資訊 » 行業(yè) » 正文

5秒到1秒_記一次效果“非?!憋@著的性能優(yōu)化

放大字體  縮小字體 發(fā)布日期:2021-08-29 22:25:44    作者:企資小編    瀏覽次數(shù):116
導(dǎo)讀

原創(chuàng)_小姐姐味道(微信公眾號(hào)ID_xjjdog)_歡迎分享_轉(zhuǎn)載請保留出處。性能優(yōu)化_有時(shí)候看起來是一個(gè)比較虛的技術(shù)需求。除非代碼慢的已經(jīng)讓人無法忍受_否則_很少有公司會(huì)有覺悟投入資源去做這些工作。即使你有了性能指

原創(chuàng)_小姐姐味道(微信公眾號(hào)ID_xjjdog)_歡迎分享_轉(zhuǎn)載請保留出處。

性能優(yōu)化_有時(shí)候看起來是一個(gè)比較的技術(shù)需求。除非代碼慢的已經(jīng)讓人無法忍受_否則_很少有公司會(huì)有覺悟投入資源去做這些工作。即使你有了性能指標(biāo)數(shù)據(jù)_也很難說服領(lǐng)導(dǎo)做一個(gè)由耗時(shí)300ms降低到150ms的改進(jìn)_因?yàn)樗龥]有業(yè)務(wù)價(jià)值。

這很讓人傷心_但這是悲催的現(xiàn)實(shí)。

性能優(yōu)化_通常由有技術(shù)追求的人發(fā)起_根據(jù)觀測指標(biāo)進(jìn)行的正向優(yōu)化。他們通常具有工匠精神_對(duì)每一毫秒的耗時(shí)都吹毛求疵_力求完美。當(dāng)然_前提是你得有時(shí)間。

1._優(yōu)化背景和目標(biāo)

我們本次的性能優(yōu)化_就是由于達(dá)到了無法忍受的程度_才進(jìn)行的優(yōu)化工作_屬于事后補(bǔ)救_問題驅(qū)動(dòng)的方式。這通常沒什么問題_畢竟業(yè)務(wù)第一嘛_迭代在填坑中進(jìn)行。

先說背景。本次要優(yōu)化的服務(wù)_請求響應(yīng)時(shí)間十分的不穩(wěn)定。隨著數(shù)據(jù)量的增加_大部分請求_要耗時(shí)5-6秒左右!超出了常人能忍受的范圍。

當(dāng)然需要優(yōu)化。

為了說明要優(yōu)化的目標(biāo)_我大體畫了一下她的拓?fù)浣Y(jié)構(gòu)。如圖所示_這是一套微服務(wù)架構(gòu)的服務(wù)。


其中_我們優(yōu)化的目標(biāo)_就處于一個(gè)比較靠上游的服務(wù)。她需要通過Feign接口_調(diào)用下游非常多的服務(wù)提供者_(dá)獲取數(shù)據(jù)后進(jìn)行聚合拼接_最終通過zuul網(wǎng)關(guān)和nginx_來發(fā)送到瀏覽器客戶端。

為了觀測服務(wù)之間的調(diào)用關(guān)系和監(jiān)控?cái)?shù)據(jù)_我們接入了Skywalking調(diào)用鏈平臺(tái)和Prometheus監(jiān)控平臺(tái)_收集重要的數(shù)據(jù)以便能夠進(jìn)行優(yōu)化決策。要進(jìn)行優(yōu)化之前_我們需要首先看一下優(yōu)化需要參考的兩個(gè)技術(shù)指標(biāo)。

  • 吞吐量_單位時(shí)間內(nèi)發(fā)生的次數(shù)。比如QPS、TPS、HPS等。
  • 平均響應(yīng)時(shí)間_每個(gè)請求的平均耗時(shí)。


    平均響應(yīng)時(shí)間自然是越小越好_她越小_吞吐量越高。吞吐量的增加還可以合理利用多核_通過并行度增加單位時(shí)間內(nèi)的發(fā)生次數(shù)。

    我們本次優(yōu)化的目標(biāo)_就是減少某些接口的平均響應(yīng)時(shí)間_降低到1秒以內(nèi);增加吞吐量_也就是提高QPS_讓單實(shí)例系統(tǒng)能夠承接更多的并發(fā)請求。

    2._通過壓縮讓耗時(shí)急劇減少

    我想要先介紹讓系統(tǒng)飛起來最重要的一個(gè)優(yōu)化手段_壓縮。

    通過在chromeinspect中查看請求的數(shù)據(jù)_我們發(fā)現(xiàn)一個(gè)關(guān)鍵的請求接口_每次要傳輸大約10MB的數(shù)據(jù)。這得塞了多少東西。

    這么大的數(shù)據(jù)_光下載就需要耗費(fèi)大量時(shí)間。如下圖所示_是我請求juejin主頁的某一個(gè)請求_其中的content_download_就代表了數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸時(shí)間。如果用戶的帶寬非常慢_那么這個(gè)請求的耗時(shí)_將會(huì)是非常長的。


    為了減少數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸時(shí)間_可以啟用gzip壓縮。gzip壓縮是屬于時(shí)間換空間的做法。對(duì)于大多數(shù)服務(wù)來說_最后一環(huán)是nginx_大多數(shù)人都會(huì)在nginx這一層去做壓縮。她的主要配置如下_

    gzip_on;gzip_vary_on;gzip_min_length_10240;gzip_proxied_expired_no-cache_no-store_private_auth;gzip_types_text/plain_text/css_text/xml_text/javascript_application/x-javascript_application/xml;gzip_disable_"MSIE_[1-6]\.";

    壓縮率有多驚人呢?我們可以看一下這張截圖。可以看到_數(shù)據(jù)壓縮后_由8.95MB縮減到了368KB!瞬間就能夠被瀏覽器下載下來。


    但是等等_nginx只是最外面的一環(huán)_還沒完_我們還可以讓請求更快一些。

    請看下面的請求路徑_由于采用了微服務(wù)_請求的流轉(zhuǎn)就變得復(fù)雜起來_nginx并不是直接調(diào)用了相關(guān)得服務(wù)_她調(diào)用的是zuul網(wǎng)關(guān)_zuul網(wǎng)關(guān)才真正調(diào)用的目標(biāo)服務(wù)_目標(biāo)服務(wù)又另外調(diào)用了其他服務(wù)。內(nèi)網(wǎng)帶寬也是帶寬_網(wǎng)絡(luò)延遲也會(huì)影響調(diào)用速度_同樣也要壓縮起來。

    nginx->zuul->服務(wù)A->服務(wù)E

    要想Feign之間的調(diào)用全部都走壓縮通道_還需要額外的配置。我們是springboot服務(wù)_可以通過okhttp的透明壓縮進(jìn)行處理。

    加入她的依賴_

    <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-okhttp</artifactId></dependency>

    開啟服務(wù)端配置_

    server:  port:8888  compression:    enabled:true    min-response-size:1024    mime-types:["text/html","text/xml","application/xml","application/json","application/octet-stream"]

    開啟客戶端配置_

    feign:  httpclient:    enabled:false  okhttp:    enabled:true

    經(jīng)過這些壓縮之后_我們的接口平均響應(yīng)時(shí)間_直接從5-6秒降低到了2-3秒_優(yōu)化效果非常顯著。

    當(dāng)然_我們也在結(jié)果集上做了文章_在返回給前端的數(shù)據(jù)中_不被使用的對(duì)象和字段_都進(jìn)行了精簡。但一般情況下_這些改動(dòng)都是傷筋動(dòng)骨的_需要調(diào)整大量代碼_所以我們在這上面用的精力有限_效果自然也有限。

    3._并行獲取數(shù)據(jù)_響應(yīng)飛快

    接下來_就要深入到代碼邏輯內(nèi)部進(jìn)行分析了。上面我們提到_面向用戶的接口_其實(shí)是一個(gè)數(shù)據(jù)聚合接口。她的每次請求_通過Feign_調(diào)用了幾十個(gè)其他服務(wù)的接口_進(jìn)行數(shù)據(jù)獲取_然后拼接結(jié)果集合。

    為什么慢?因?yàn)檫@些請求全部是串行的!Feign調(diào)用屬于遠(yuǎn)程調(diào)用_也就是網(wǎng)絡(luò)I/O密集型調(diào)用_多數(shù)時(shí)間都在等待_如果數(shù)據(jù)滿足的話_是非常適合并行調(diào)用的。

    首先_我們需要分析這幾十個(gè)子接口的依賴關(guān)系_看一下她們是否具有嚴(yán)格的順序性要求。如果大多數(shù)沒有_那就再好不過了。

    分析結(jié)果喜憂參半_這堆接口_按照調(diào)用邏輯_大體上可以分為A_B類。首先_需要請求A類接口_拼接數(shù)據(jù)后_這些數(shù)據(jù)再供B類使用。但在A_B類內(nèi)部_是沒有順序性要求的。


    也就是說_我們可以把這個(gè)接口_拆分成順序執(zhí)行的兩部分_在某個(gè)部分都可以并行的獲取數(shù)據(jù)。

    那就按照這種分析結(jié)果改造試試吧_使用concurrent包里的CountDownLatch_很容易的就實(shí)現(xiàn)了并取功能。

    CountDownLatch latch _ new CountDownLatch(jobSize);//submit jobexecutor.execute(() -> {     //job code latch.countDown(); }); executor.execute(() -> {  latch.countDown(); }); ...//end submitlatch.await(timeout, TimeUnit.MILLISECONDS); 

    結(jié)果非常讓人滿意_我們的接口耗時(shí)_又減少了接近一半!此時(shí)_接口耗時(shí)已經(jīng)降低到2秒以下。

    你可能會(huì)問_為什么不用Java的并行流呢?關(guān)于并行流的坑_可以參考這篇文章。非常不建議你使用她。

    《parallelStream的坑_不踩不知道_一踩嚇一跳》

    并發(fā)編程一定要小心_尤其是在業(yè)務(wù)代碼中的并發(fā)編程。我們構(gòu)造了專用的線程池_來支撐這個(gè)并發(fā)獲取的功能。

    final ThreadPoolExecutor executor _ new ThreadPoolExecutor(100, 200, 1,             TimeUnit.HOURS, new ArrayBlockingQueue<>(100)); 

    壓縮和并行化_是我們本次優(yōu)化中_最有效的手段。她們直接砍掉了請求大半部分的耗時(shí)_非常的有效。但我們還是不滿足_因?yàn)槊看握埱骭依然有1秒鐘以上呢。

    4._緩存分類_進(jìn)一步加速

    我們發(fā)現(xiàn)_有些數(shù)據(jù)的獲取_是放在循環(huán)中的_有很多無效請求_這不能忍。

    for(List){    client.getData();}

    如果將這些常用的結(jié)果緩存起來_那么就可以大大減少網(wǎng)絡(luò)IO請求的次數(shù)_增加程序的運(yùn)行效率。

    緩存在大多數(shù)應(yīng)用程序的優(yōu)化中_作用非常大。但由于壓縮和并行效果的對(duì)比_緩存在我們這個(gè)場景中_效果不是非常的明顯_但依然減少了大約三四十毫秒的請求時(shí)間。

    我們是這么做的。

    首先_我們將一部分代碼邏輯簡單_適合Cache_Aside_Pattern模式的數(shù)據(jù)_放在了分布式緩存Redis中。具體來說_就是讀取的時(shí)候_先讀緩存_緩存讀不到的時(shí)候_再讀數(shù)據(jù)庫;更新的時(shí)候_先更新數(shù)據(jù)庫_再刪除緩存(延時(shí)雙刪)。使用這種方式_能夠解決大部分業(yè)務(wù)邏輯簡單的緩存場景_并能解決數(shù)據(jù)的一致性問題。

    但是_僅僅這么做是不夠的_因?yàn)橛行I(yè)務(wù)邏輯非常的復(fù)雜_更新的代碼發(fā)非常的分散_不適合使用Cache_Aside_Pattern進(jìn)行改造。我們了解到_有部分?jǐn)?shù)據(jù)_具有以下特點(diǎn)_

    1. 這些數(shù)據(jù)_通過耗時(shí)的獲取之后_在極端的時(shí)間內(nèi)_會(huì)被再次用到
    2. 業(yè)務(wù)數(shù)據(jù)對(duì)她們的一致性要求_可以控制在秒級(jí)別以內(nèi)
    3. 對(duì)于這些數(shù)據(jù)的使用_跨代碼、跨線程_使用方式多樣

    針對(duì)于這種情況_我們設(shè)計(jì)了存在時(shí)間極短的堆內(nèi)內(nèi)存緩存_數(shù)據(jù)在1秒之后_就會(huì)失效_然后重新從數(shù)據(jù)庫中讀取。加入某個(gè)節(jié)點(diǎn)調(diào)用服務(wù)端接口是1秒鐘1k次_我們直接給降低到了1次。

    在這里_使用了Guava的LoadingCache_減少的Feign接口調(diào)用_是數(shù)量級(jí)的。

    LoadingCache<String, String> lc _ CacheBuilder      .newBuilder()      .expireAfterWrite(1,TimeUnit.SECONDS)      .build(new CacheLoader<String, String>() {      @Override      public String load(String key) throws Exception {            return slowMethod(key);}});

    5._MySQL索引的優(yōu)化

    我們的業(yè)務(wù)系統(tǒng)_使用的是MySQL數(shù)據(jù)庫_由于沒有專業(yè)DBA介入_而且數(shù)據(jù)表是使用JPA生成的。在優(yōu)化的時(shí)候_發(fā)現(xiàn)了大量不合理的索引_當(dāng)然是要優(yōu)化掉。

    由于SQL具有很強(qiáng)的敏感性_我這里只談一些在優(yōu)化過程中碰到的索引優(yōu)化規(guī)則問題_相信你一樣能夠在自己的業(yè)務(wù)系統(tǒng)中進(jìn)行類比。

    索引非常有用_但是要注意_如果你對(duì)字段做了函數(shù)運(yùn)算_那索引就用不上了。常見的索引失效_還有下面兩種情況_

  • 查詢的索引字段類型_與用戶傳遞的數(shù)據(jù)類型不同_要做一層隱式轉(zhuǎn)換。比如varchar類型的字段上_傳入了int參數(shù)
  • 查詢的兩張表之間_使用的字符集不同_也就無法使用關(guān)聯(lián)字段作為索引

    MySQL的索引優(yōu)化_最基本的是遵循最左前綴原則_當(dāng)有a、b、c三個(gè)字段的時(shí)候_如果查詢條件用到了a_或者a、b_或者a、b、c_那么我們就可以創(chuàng)建(a_b_c)一個(gè)索引即可_她包含了a和ab。當(dāng)然_字符串也是可以加前綴索引的_但在平常應(yīng)用中較少。

    有時(shí)候_MySQL的優(yōu)化器_會(huì)選擇了錯(cuò)誤的索引_我們需要使用force_index指定所使用的索引。在JPA中_就要使用nativeQuery_來書寫綁定到MySQL數(shù)據(jù)庫的SQL語句_我們盡量的去避免這種情況。

    另外一個(gè)優(yōu)化是減少回表。由于InnoDB采用了B+樹_但是如果不使用非主鍵索引_會(huì)通過二級(jí)索引(secondary_index)先查到聚簇索引(clustered_index)_然后再定位到數(shù)據(jù)。多了一步_產(chǎn)生回表。使用覆蓋索引_可以一定程度上避免回表_是常用的優(yōu)化手段。具體做法_就是把要查詢的字段_與索引放在一起做聯(lián)合索引_是一種空間換時(shí)間的做法。

    6._JVM優(yōu)化

    我通常將JVM的優(yōu)化放在最后一環(huán)。而且_除非系統(tǒng)發(fā)生了嚴(yán)重的卡頓_或者OOM問題_都不會(huì)主動(dòng)對(duì)其進(jìn)行過度優(yōu)化。

    很不幸的是_我們的應(yīng)用_由于開啟了大內(nèi)存(8GB+)_在JDK1.8默認(rèn)的并行收集器下_經(jīng)常發(fā)生卡頓。雖然不是很頻繁_但動(dòng)輒幾秒鐘_已經(jīng)嚴(yán)重影響到部分請求的平滑性。

    程序剛開始_是光禿禿跑在JVM下的_GC信息_還有OOM_什么都沒留下。為了記錄GC信息_我們做了如下的改造。

    第一步_加入GC問題排查的各種參數(shù)。

    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath_/opt/xxx.hprof  -DlogPath_/opt/logs/ -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintTenuringDistribution -Xloggc:/opt/logs/gc__p.log -XX:ErrorFile_/opt/logs/hs_error_pid_p.log

    這樣_我們就可以拿著生成的GC文件_上傳到gceasy等平臺(tái)進(jìn)行分析??梢圆榭碕VM的吞吐量和每個(gè)階段的延時(shí)等。

    第二步_開啟SpringBoot的GC信息_接入Promethus監(jiān)控。

    在pom中加入依賴。

    <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-actuator</artifactId></dependency>

    然后配置暴露點(diǎn)就可以了。這樣_我們就擁有了實(shí)時(shí)的分析數(shù)據(jù)_有了優(yōu)化的依據(jù)。

    management.endpoints.web.exposure.include_health,info,prometheus


    在觀測了JVM的表現(xiàn)之后_我們切換成了G1垃圾回收器。G1有最大停頓目標(biāo)_可以讓我們的GC時(shí)間更加的平滑。她主要有以下幾個(gè)調(diào)優(yōu)參數(shù)_

  • -XX:MaxGCPauseMillis_設(shè)置目標(biāo)停頓時(shí)間_G1會(huì)盡力達(dá)成。
  • -XX:G1HeapRegionSize_設(shè)置小堆區(qū)大小。這個(gè)值為2的次冪_不要太大_也不要太小。如果是在不知道如何設(shè)置_保持默認(rèn)。
  • -XX:InitiatingHeapOccupancyPercent_當(dāng)整個(gè)堆內(nèi)存使用達(dá)到一定比例(默認(rèn)是45_)_并發(fā)標(biāo)記階段就會(huì)被啟動(dòng)。
  • -XX:ConcGCThreads_并發(fā)垃圾收集器使用的線程數(shù)量。默認(rèn)值隨JVM運(yùn)行的平臺(tái)不同而不同。不建議修改。

    切換成G1之后_這種不間斷的停頓_竟然神奇的消失了!期間_還發(fā)生過很多次內(nèi)存溢出的問題_不過有MAT這種神器的加持_最終都很easy的被解決了。

    7._其他優(yōu)化

    在工程結(jié)構(gòu)和架構(gòu)方面_如果有硬傷的話_那么代碼優(yōu)化方面_起到的作用其實(shí)是有限的_就比如我們這種情況。

    但主要代碼還是要整一下容得。有些處于高耗時(shí)邏輯中的關(guān)鍵的代碼_我們對(duì)其進(jìn)行了格外的關(guān)照。按照開發(fā)規(guī)范_對(duì)代碼進(jìn)行了一次統(tǒng)一的清理。其中_有幾個(gè)印象比較深深刻的點(diǎn)。

    有同學(xué)為了能夠復(fù)用map集合_每次用完之后_都使用clear方法進(jìn)行清理。

    map1.clear();map2.clear();map3.clear();map4.clear();

    這些map中的數(shù)據(jù)_特別的多_而clear方法有點(diǎn)特殊_她的時(shí)間復(fù)雜度事O(n)的_造成了較高的耗時(shí)。

    public void clear() {    Node<K,V>[] tab;    modCount++;    if ((tab _ table) !_ null && size > 0) {        size _ 0;        for (int i _ 0; i < tab.length; ++i)            tab[i] _ null;    }}

    同樣的線程安全的隊(duì)列_有ConcurrentlinkedQueue_她的size()方法_時(shí)間復(fù)雜度非常高_(dá)不知怎么就被同事給用上了_這都是些性能殺手。

    public int size() {        restartFromHead: for (;;) {            int count _ 0;            for (Node<E> p _ first(); p !_ null;) {                if (p.item !_ null)                    if (++count __ Integer.MAX_VALUE)                        break;  // @see Collection.size()                if (p __ (p _ p.next))                    continue restartFromHead;            }            return count;        }}

    另外_有些服務(wù)的web頁面_本身響應(yīng)就非常的慢_這是由于業(yè)務(wù)邏輯復(fù)雜_前端Javascript本身就執(zhí)行緩慢。這部分代碼優(yōu)化_就需要前端的同事去處理了_如圖_使用chrome或者firefox的performance選項(xiàng)卡_可以很容易發(fā)現(xiàn)耗時(shí)的前端_代碼。


    8._總結(jié)

    性能優(yōu)化_其實(shí)也是有套路的_但一般團(tuán)隊(duì)都是等發(fā)生了問題才去優(yōu)化_鮮有未雨綢繆的。但有了監(jiān)控和APM就不一樣_我們能夠隨時(shí)拿到數(shù)據(jù)_反向推動(dòng)優(yōu)化過程。

    有些性能問題_能夠在業(yè)務(wù)需求層面_或者架構(gòu)層面去解決。凡是已經(jīng)帶到代碼層_需要程序員介入的優(yōu)化_都已經(jīng)到了需求方和架構(gòu)方不能再亂動(dòng)_或者不想再動(dòng)的境地。

    性能優(yōu)化首先要收集信息_找出瓶頸點(diǎn)_權(quán)衡CPU、內(nèi)存、網(wǎng)絡(luò)、、IO等資源_然后盡量的減少平均響應(yīng)時(shí)間_提高吞吐量。

    緩存、緩沖、池化、減少鎖沖突、異步、并行、壓縮_都是常見的優(yōu)化方式。在我們的這個(gè)場景中_起到最大作用的_就是數(shù)據(jù)壓縮和并行請求。當(dāng)然_加上其他優(yōu)化方法的協(xié)助_我們的業(yè)務(wù)接口_由5-6秒的耗時(shí)_直接降低到了1秒之內(nèi)_這個(gè)優(yōu)化效果還是非??捎^的。估計(jì)在未來很長一段時(shí)間內(nèi)_都不會(huì)再對(duì)她進(jìn)行優(yōu)化了。


    推薦閱讀_

    1._玩轉(zhuǎn)Linux
    2._什么味道專輯

    3._藍(lán)牙如夢
    4._殺機(jī)!
    5._失聯(lián)的架構(gòu)師_只留下一段腳本
    6._架構(gòu)師寫的BUG_非比尋常

  •  
    (文/企資小編)
    免責(zé)聲明
    本文僅代表作發(fā)布者:企資小編個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
     

    Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號(hào)

    粵ICP備16078936號(hào)

    微信

    關(guān)注
    微信

    微信二維碼

    WAP二維碼

    客服

    聯(lián)系
    客服

    聯(lián)系客服:

    在線QQ: 303377504

    客服電話: 020-82301567

    E_mail郵箱: weilaitui@qq.com

    微信公眾號(hào): weishitui

    客服001 客服002 客服003

    工作時(shí)間:

    周一至周五: 09:00 - 18:00

    反饋

    用戶
    反饋

    主站蜘蛛池模板: 探花视频在线版播放免费观看 | 国产影片中文字幕 | 欧美性猛交aaaa片黑人 | 国产 欧美 日本 | 国产精品久久一区二区三区 | 国产馆在线观看 | 国产精品一区二区吃奶在线观看 | 久久久久99精品成人片三人毛片 | 久久久久久无码午夜精品直播 | ass阿娇裸体pics | 波多野结衣一区二区三区中文字幕 | 一本一道久久a久久精品综合 | 曰韩精品一区二区 | 一级中国毛片 | www国产视频 | 中文字幕狠狠干 | 人人玩人人添人人澡超碰 | 国产精品高潮呻吟久久av野狼 | 午夜性做爰免费看 | 日韩精品网址 | 丰满人妻被黑人猛烈进入 | 亚洲国产精品免费 | √最新版天堂资源网在线 | 日本欧美亚洲 | 日本理论片a级奶大 | 免费a级毛片在线看 | 精品国产三级a∨在线 | 麻花传媒mv在线观看 | 亚洲欧美日韩国产精品 | 国产大片黄在线观看私人影院 | 一区二区美女 | 日韩av成人免费看 | 日本不卡免费在线 | 美女福利影院 | 91欧美精品成人综合在线观看 | 久久国产柳州莫菁门 | 东北女人啪啪对白 | 亚洲天堂av一区二区 | 最近中文字幕mv免费高清在线 | 福利片一区二区三区 | 天天做天天摸天天爽天天爱 | 他揉捏她两乳不停呻吟在线播放 | 91精品国产综合婷婷香蕉 | 我和岳疯狂性做爰全过程视频 | 少妇福利在线 | 无套内谢少妇高潮免费 | 亚洲国产精品成人av在线 | 国产又黄又硬又湿又黄的网站免费 | 亚洲国产精品成人综合久久久 | 国产aⅴ一区二区三区 | 欧美寡妇性猛交ⅹxxx | 男女18禁啪啪无遮挡激烈网站 | 中国浓毛少妇毛茸茸 | 亚洲熟妇av日韩熟妇在线 | 亚洲精品毛片av | 成人区人妻精品一区二区不卡视频 | 国产爆初菊在线观看免费视频网站 | 久久蜜桃资源一区二区老牛 | 美女初尝巨物嗷嗷叫自拍视频 | 夜夜操av | 亚洲精品主播一区二区三区 | 免费级毛片 | 99久久99久久久精品齐齐 | 国产无套粉嫩白浆 | 超碰2023| 闺蜜张开腿让我爽了一夜 | 97久久精品人人澡人人爽 | 国产在线播放一区二区 | 老熟女重囗味hdxx70星空 | 黄色国产大片 | 91精品国产色综合久久不卡98最新章节 | 亚洲一级片av | 亚洲国产精品午夜久久久 | 乱人伦精品视频在线观看 | 女人的黄 色视频 | 中文字幕人成人乱码亚洲电影 | 日本三级韩国三级三级a级按摩 | 成人男女做爰免费视频网老司机 | 久久夜色精品国产www红杏 | 色翁荡息又大又硬又粗又爽电影 | 四月婷婷 | 久久久久久亚洲国产精品 | 欧美视频精品在线 | 捆绑紧缚一区二区三区在线观看 | 中文字幕在线视频观看 | 一二三区中文字幕 | 人与拘一级a毛片 | 日韩欧美三级 | 国产人妖tscd合集 | 波多野结衣50连登视频 | 日本老太婆做爰视频 | 中文字幕亚洲乱码熟女在线萌芽 | 天天操夜夜操夜夜操 | 四虎av在线播放 | 欧美第一页草草影院 | 内射极品少妇xxxxxhd | 男女羞羞视频软件 | 日本三级理论片 | 色视频网站免费看 | 亚洲精品一区二区三区婷婷月 | 五月天久草 | 琪琪色18| 欧美韩日一区二区 | 91精品国产福利在线观看的优点 | 欧美xxxxx高潮喷水麻豆 | 日韩欧美精品在线 | 激情女主播 | 天天干天天操天天拍 | 精品人妻二区中文字幕 | 欧美另类一区二区 | 天堂中文字幕av | 国产视频你懂的 | 少妇精品一区二区三区在线观看 | 91精品国产九九九久久久亚洲 | 日本美女一级片 | 国产精品久久网站 | 欧美色插 | 亚洲手机av| 蜜桃视频中文字幕 | 涩爱av蜜臀夜夜嗨av | 欧洲熟妇色xxxxx视频 | 韩国黄色片网站 | 羞羞视频日本 | 少妇做爰xxxⅹ性视频 | 猫咪www免费人成人入口 | 99久久久国产精品免费蜜臀 | 精品一区二区日韩 | 欧美成人高清在线播放 | 一级黄片毛片 | 国产呦小j女精品视频 | 成人精品视频网站 | 亚洲一区二区黄色 | 久草在线免费资源 | 蜜臀久久精品久久久久久酒店 | 日本黄视频网站 | 特黄一毛二片一毛片 | 日韩女优网站 | 国产精品国产亚洲精品看不卡 | 韩国精品久久久 | 成人77777| 尤物视频网站在线观看 | 亚洲欧洲巨乳清纯 | 中文字幕一精品亚洲无线一区 | 日韩福利在线 | 孕妇性开放bbwbbwbbw | 成人免费大片黄在线播放 | 成人区精品一区二区婷婷 | 亚洲中文字幕无码不卡电影 | 一道本久在线中文字幕 | 东方av正在进入 | 国产精品一二三 | 欧亚av在线 | 日韩一级免费观看 | 日韩久久影视 | 成年人黄色av| 国产黄频在线观看 | 精品国产伦一区二区三区免费 | 一区二区日本视频 | 黄色应用在线观看 | 无码人妻精品一区二区三区在线 | 日韩精品一区二区三区蜜臀 | 69视频污 | 国产丶欧美丶日本不卡视频 | 无码aⅴ精品一区二区三区浪潮 | 日本三级韩国三级美三级91 | 亚洲国产精品久久久久秋霞1 | 国产精品99久久久精品 | 中国中文字幕伦av在线看片 | 四川话毛片少妇免费看 | 亚洲一区二区三区四区五区午夜 | 国产精品免费一区二区三区都可以 | 亚洲看片lutube在线观看 | 国产后进极品圆润翘臀在后面玩 | 黄色片网站免费观看 | 网曝91综合精品门事件在线 | 337p粉嫩大胆噜噜噜亚瑟影院 | 91超薄丝袜肉丝一区二区 | 91看片淫黄大片在线天堂最新 | 亚洲国产精品久久久久婷婷老年 | 国产亚洲一区二区在线观看 | 黄网站在线播放 | 五月激情丁香婷婷 | 天天想夜夜爽 | 国产精品永久 | 91chinese video永久地址 | 亚洲精品aⅴ | 欧美精品亚洲精品日韩专区 | 中文文字幕文字幕高清 | 少妇中文字幕乱码亚洲影视 | 国产精品久久麻豆 | 91成人国产 | 91在线勾搭足浴店女技师 | 新片速递丨最新合集bt伙计 | 国产av寂寞骚妇 | 色88888久久久久久影院 | 插插射啊爱视频日a级 | 亚洲色偷偷偷综合网 | 双腿张开被9个黑人调教影片 | 五月天激情视频 | 亚洲国产精品无码久久久 | 天堂视频中文在线 | 成人免费xyz网站 | 日韩成人av网| 午夜久久久久久禁播电影 | 91在线观看视频 | 青青草污| 久久亚洲精品成人无码 | 三级免费观看 | 午夜男女无遮挡拍拍视频 | 国内少妇偷人精品视频 | 青青草十七色 | 4438激情网| 微拍 福利 视频 国产 | 成人久久久久久久久久久 | 在线中文av | 91视频二区| 快射视频在线观看 | 亚洲精品国偷拍自产在线麻豆 | 欧洲a老妇女黄大片 | 撕开少妇裙子猛然进入 | 四虎国产永久在线精品 | 日韩美一区二区三区 | 中文一级片 | 国产精品入口a级 | 国产精品一二区 | 三级视频网站 | 日韩av无码一区二区三区 | 亚洲黑人巨大videos | 国产精品无套呻吟在线 | 免费一级全黄裸片 | 久热一区 | 白嫩嫩翘臀美女在线视频 | 夜夜嗨av一区二区三区免费区 | 欧美人与zoxxxx视频 | 爱插视频 | 国产午夜成人免费看片 | 手机av网 | 九九99精品视频 | 中文字幕一区二区三区四区五区 | 久久精品国产一区二区三区肥胖 | 亚洲另类无码专区首页 | a天堂v| 91黑丝视频 | a资源在线 | 欧美一区在线看 | 国产又黄又猛又粗又爽视频 | 黄色av网| 自拍偷拍中文字幕 | 日本三级全黄少妇三2023 | 国产午夜精品一区二区三区不卡 | 欧美做受xxxxxⅹ性视频 | 国偷自产视频一区二区久 | 亚洲男人精品 | 精品一区二区三区自拍图片区 | 国产精品一区二区久久久久 | 可以直接看av的网址 | 无码人妻丰满熟妇片毛片 | 国产精品国产对白熟妇 | 成年人网站免费观看 | 国产成年网站 | 国产一区在线播放 | 国产又粗又猛又色 | 少妇久久人人爽人人爽人人片欧美 | 日韩精品91亚洲二区在线观看 | 操综合| 国产精品区一区二区三区 | 99精品久久毛片a片 在线亚洲高清揄拍自拍一品区 | 二三区视频 | 亚洲高清揄拍自拍午夜婷婷 | 大荫蒂欧美精品另类 | www.亚洲高清| 日本美女日b视频 | 日韩黄色精品 | 久久99热这里只频精品6 | 日本特级黄色录像 | 亚洲国产精品久久艾草 | 亚洲精品人成无码中文毛片 | 少妇一级淫片免费放播放 | 少妇人妻无码专区视频 | 四虎影视8848hh | 含羞草传媒mv免费观看视频 | 高h av| 在线不卡aⅴ片免费观看 | 天堂网视频在线 | 四虎影视永久在线观看 | 日本少妇做爰全过程毛片 | 可以免费观看的av网站 | 性欧美另类 | 狠狠躁18三区二区一区ai明星 | 男女啪啪无遮挡 | 亚洲精品午夜国产va久久成人 | 18禁免费观看网站 | 色眯眯影视| 色中色av | 丰满爆乳无码一区二区三区 | 国产一区二区三区免费看 | 亚洲精品欧洲 | 永久免费快色 | 男女吻胸做爰摸下身 | 精品国产欧美一区二区三区不卡 | 青草青草久热精品视频在线观看 | 国产精品三级赵丽颖 | 亚洲最大成人网4388xx | 六月婷婷激情 | 日韩精品一区二区三区免费视频观看 | 欧美va亚洲va在线观看 | 日本不卡1 | 伊人手机视频 | 日本大乳奶做爰洗澡三级 | 国产 日韩 欧美 中文 在线播放 | 亚洲日韩精品欧美一区二区 | 欧美性色黄大片在线观看 | 丁香在线| 香蕉网伊 | 欧美人与性动交α欧美片 | 精产国品一区二区三区四区 | 日本免费福利视频 | 国产女高清在线看免费观看 | 天摸夜夜添久久精品亚洲人成 | 在线中文字幕日韩 | 暴操白丝美女 | 久艹久久 | 国产亚洲系列 | 综合色爱 | 三级免费观看 | 插插插操操操 | 婷婷伊人久久大香线蕉av | 亚洲视频久久久 | 97夜夜澡人人双人人人喊 | 18禁超污无遮挡无码免费游戏 | 欧美极品少妇 | 国产盗摄一区二区三区 | 成人性生生活性生交全黄 | 亚洲成人精品 | 国产成人精品电影在线观看 | 欧美一级片观看 | 国内精品卡一卡二卡三 | 波多野结衣一区 | 亚洲国产综合久久久 | 亚洲一区免费看 | 狠狠色综合tv久久久久久 | 亚洲天堂99 | 友田真希中文字幕在线视频中 | 国产一级片av大片 | 国产亚洲精品久久久久5区 成熟了的熟妇毛茸茸 | 欧美一级夜夜爽 | 岛国a视频 | 国内黄色一级片 | 18禁男女爽爽爽午夜网站免费 | 国产成人手机视频 | 国产igao为爱做激情国外 | 强行撕衣强行糟蹋三级韩国 | 天天燥日日燥 | 伊人天天干 | 亚洲乱妇熟女爽到高潮的片 | 国产亚洲精品aaaa片小说 | 佐山爱在线视频| 日韩精品一卡2卡3卡4卡乱码的功能 | 超碰97人人做人人爱少妇 | 成人综合在线观看 | 亚洲成色 | 天天色天天看 | 玛雅精品福利视频在线导航 | 丁香五月缴情综合网 | 国产伦理片在线观看 | 久久精品国产99久久6动漫亮点 | 国内综合精品午夜久久资源 | 亚洲精品无码高潮喷水在线 | 老子影院午夜伦不卡大全 | 狠狠操av | 国产一区二区免费视频 | 97久久精品人人澡人人爽 | 亚洲色在线无码国产精品不卡 | 亚洲最新在线观看 | 亚洲精品视频在线免费播放 | 欧美成人在线影院 | 黄网页在线观看 | 好色综合 | 国内精品久久久久影院薰衣草 | 久久久伊人网 | 无毛av| 男阳茎进女阳道视频大全 | 国偷自产av一区二区三区麻豆 | 午夜精品久久久久久久传媒 | zzijzzij亚洲日本少妇熟睡 | 日韩国产一区二区三区四区 | 久久久精品视频一区二区三区 | 久久久看片 | 亚洲一区,二区 | 亚洲桃色视频 | 找av导航| 亚洲一区二区三区写真 | 国产美女91呻吟求 | 久久99精品久久久久久秒播 | 好吊妞精品视频 | 无码国产成人午夜电影在线观看 | 色片网站在线观看 | 国产欧美一区二区三区不卡视频 | 精品 日韩 国产 欧美 视频 | av国产网站 | 亚洲最新av在线 | 日本中文字幕网 | 久久久一区二区三区四区 | 污污的网站在线观看 | 日本十八少妇毛片视频 | 黄色在线免费观看视频 | 欧美肥老妇视频九色 | 久久精品亚洲国产奇米99 | 国产综合在线观看 | 韩国一区二区三区视频 | www欧美在线| 成人在线免费网址 | 国产午夜伦鲁鲁 | 国产乱淫av免费观看 | 成人做受视频试看60秒 | 国产露脸老熟高潮在线 | 日韩精品你懂的 | 男人的天堂网av | 少妇太爽了在线观看 | 久久久久久久女国产乱让韩 | 99色在线| 日本国产忘忧草一区在线 | 亚洲国产精品大学美女久久久爽 | 国产亚洲精品久久久久久久 | 亚洲国产午夜 | 一区二区三区视频 | 夜夜躁狠狠躁日日躁202小说 | 国产伦精品一区二区三区四区视频_ | 消息称老熟妇乱视频一区二区 | 国产在热线精品av | 青青青手机频在线观看 | 少妇超碰 | eeuss鲁片一区二区三区小说 | 国产精品盗摄!偷窥盗摄 | 99视频在线精品免费观看2 | 色鬼成人免费网站视频 | 一本大道久久东京热无码av | 欧美黄色特级视频 | 欧洲中文字幕 | 五月天丁香色 | 五月婷婷一区二区 | 人妻中文字幕在线网站 | 丝袜足脚交91精品 | 伊人久久大香线蕉无码 | 久久一本日日摸夜夜添 | 爱插美女网 | 亚洲免费不卡视频 | 99re热精品视频 | 亚洲精品国产精品国自产网站按摩 | 国产边打电话边被躁视频 | 日韩国产成人无码av毛片 | 国产寡妇亲子伦一区二区三区四区 | www.av在线播放 | 日本 欧美 国产 | 福利免费视频 | 国产乱淫av片免费 | 国产精品亚洲一区二区三区天天看 | 日日夜夜狠狠 | 欧美视频在线观看,亚洲欧 欧美视频在线观看视频 | 国产美女视频免费观看的软件 | 老子午夜精品无码 | 91精品国产91久久久久游泳池 | 绯色av蜜臀一区二区中文字幕 | 国产精品伦一区二区 | 第一区免费在线观看 | 国产精品视频第一页 | 久久99精品久久久久久国产越南 | 四虎影视国产精品免费久久 | 精品国产一区二区三区久久久蜜月 | 特级做a爰片毛片免费看 | 欧美日韩在线免费 | 一交一性一色一伦一区二 | av中文资源| 在线资源站| 欧美裸体xxxx极品少妇 | 国产女主播一区二区 | 亚洲视频手机在线观看 | 欧美日激情 | 久久视频免费在线观看 | 色偷偷一区二区无码视频 | 久久婷婷五月综合色一区二区 | 蜜桃视频一区二区在线观看 | 久久久久久久久久久影院 | 一本色道无码道在线观看 | 肉色欧美久久久久久久免费看 | 亚洲福利专区 | 性色av极品无码专区亚洲 | 国产91福利在线观看 | 无遮挡国产高潮视频免费观看 | 午夜片在线 | 国产91精品露脸国语对白 | 国产无精乱码一区二区三区 | 老司机免费在线视频 | 国产无套粉嫩白浆内谢的出处 | 午夜国人精品av免费看 | 欧美日韩在线第一页 | 国产精品 日韩精品 | 成人性生交大片免费4 | 国产无套粉嫩白浆在线观看 | 亚洲精品国产精品乱码不卡 | 色屁屁www影院免费观看 | 国产精品久久久免费视频 | 日本最新偷拍小便视频 | 97精品国产97久久久久久粉红 | 麻豆影视免费观看 | 摸摸大奶子 | 一本岛高清乱码2020叶美 | 污网在线观看 | 亚洲不卡在线播放 | 中国美女囗交视频免费看 | 毛片一级视频 | 九色激情网 | 伊人22| 精品香蕉久久久午夜福利 | 中文字幕在线有码 | 国产精品久久久久久久久久久久冷 | 欧美伊人精品成人久久综合97 | 少妇又紧又黄又刺激视频 | 欧美白丰满老太aaa片 | 色综合久久久无码中文字幕 | 98久9在线 | 免费 | 中国人与牲禽动交精品 | 国产一国产二国产三 | 香蕉午夜福利院 | 麻豆av在线免费观看 | 中文字幕一区二区三区精品 | 国产免费专区 | 精久久久久久 | 日韩精品视频在线一区 | 亚洲在线免费观看视频 | 国产对白国语对白 | 91精彩刺激对白露脸偷拍 | 欧美一级二级在线观看 | 中出av在线| 揄拍成人国产精品视频 | 88欧产日产国产精品 | 91精品成人久久 | 精品国产一区二区三区免费 | 久久成人影院精品777 | 无码av天堂一区二区三区 | 已婚少妇美妙人妻系列 | 香蕉视频国产精品 | 夜夜涩| а天堂中文最新一区二区三区 | 婷婷五月色综合 | 一本色道亚洲精品aⅴ | 久久第一页 | 国产精品性做久久久久久 | 国内精品伊人久久久久7777 | 激情六月综合 | 国产高清自拍av | 成人综合婷婷国产精品久久蜜臀 | 农村妇女av | 少妇伦子伦情品无吗 | www.天天操| 91爱视频 | 九九九九九热 | 26uuu国产精品视频 | 久久96视频 | 久久久久久久久久久久久国产 | jizz成熟丰满日本少妇 | 国产精品成人一区二区三区 | 国产精品久久久久久久一区二区 | 日本护士╳╳╳hd少妇 | 性欧美videos另类艳妇3d | 蜜桃视频在线观看免费视频网站www | 爱爱二区 | 婷婷丁香色综合狠狠色 | 国产激情综合在线观看 | 亚洲欧美激情精品一区二区 | 国产视频亚洲精品 | 少妇特黄v一区二区三区图片 | 久久久久亚洲精品国产 | 国产黄大片在线观看 | 久热精品在线视频 | 天天干天天操天天干 | 国产乡下妇女做爰视频 | 欧美 日韩 国产 在线 | 一级片在线观看免费 | 黑人性猛爱xxxxx免费 | brazzers欧美极品少妇 | 成人一区二区三区在线观看 | 香蕉视频在线视频 | 性色av免费网站 | 最新av中文字幕 | 97精产国品一二三 | 欧美一区二区高清视频 | 在线看日韩 | 人妻巨大乳一二三区 | 懂色av一区二区在线播放 | 一区二区国产视频 | 精品网站999| 无码精品一区二区三区免费视频 | 欧美人与性动交g欧美精器 狠狠躁18三区二区一区ai明星 | 国产精品苏妲己野外勾搭 | 国产www精品 | 色综合社区| 黄色大片中文字幕 | 精品国内自产拍在线观看 | 91丨九色丨蝌蚪丨老板 | 日本xxxxl码在中国是几码 | 久久久久99精品国产片 | 成年女人色毛片 | 中文字幕一区二区三区手机版 | 青青青草视频在线 | 无码精品国产一区二区三区免费 | 日本性高潮视频 | 亚洲无人区码一码二码三码的含义 | 国产二区三区在线 | 国产精品丰满 | 可以在线观看的av网站 | 国产亚洲一卡2卡3卡4卡网站 | 中字幕视频在线永久在线观看免费 | 三男玩一个饥渴少妇爽叫视频播放 | 日韩一级视频 |