国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

這次性能優(yōu)化, QPS 翻倍了

共 7886字,需瀏覽 16分鐘

 ·

2021-11-20 01:02

點擊上方藍色字體,選擇“設(shè)為星標”


回復(fù)”學(xué)習(xí)資料“獲取學(xué)習(xí)寶典

前段時間我們的服務(wù)遇到了性能瓶頸,由于前期需求太急沒有注意這方面的優(yōu)化,到了要還技術(shù)債的時候就非常痛苦了。

在很低的 QPS 壓力下服務(wù)器 load 就能達到 10-20,CPU 使用率 60% 以上,而且在每次流量峰值時接口都會大量報錯,雖然使用了服務(wù)熔斷框架 Hystrix,但熔斷后服務(wù)卻遲遲不能恢復(fù)。每次變更上線更是提心吊膽,擔心會成為壓死駱駝的最后一根稻草,導(dǎo)致服務(wù)雪崩。

在需求終于緩下來后,leader 給我們定下目標,限我們在兩周內(nèi)把服務(wù)性能問題徹底解決。近兩周的排查和梳理中,發(fā)現(xiàn)并解決了多個性能瓶頸,修改了系統(tǒng)熔斷方案,最終實現(xiàn)了服務(wù)能處理的 QPS 翻倍,能實現(xiàn)在極高 QPS(3-4倍)壓力下服務(wù)正常熔斷,且能在壓力降低后迅速恢復(fù)正常,以下是部分問題的排查和解決過程。

服務(wù)器高CPU、高負載

首先要解決的問題就是服務(wù)導(dǎo)致服務(wù)器整體負載高、CPU 高的問題。

我們的服務(wù)整體可以歸納為從某個存儲或遠程調(diào)用獲取到一批數(shù)據(jù),然后就對這批數(shù)據(jù)進行各種花式變換,最后返回。由于數(shù)據(jù)變換的流程長、操作多,系統(tǒng) CPU 高一些會正常,但平常情況下就 CPU us 50% 以上,還是有些夸張了。

我們都知道,可以使用 top 命令在服務(wù)器上查詢系統(tǒng)內(nèi)各個進程的 CPU 和內(nèi)存占用情況??墒?JVM 是 Java 應(yīng)用的領(lǐng)地,想查看 JVM 里各個線程的資源占用情況該用什么工具呢?

jmc 是可以的,但使用它比較麻煩,要進行一系列設(shè)置。我們還有另一種選擇,就是使用?jtop,jtop 只是一個 jar 包,它的項目地址在 yujikiriki/jtop, 我們可以很方便地把它復(fù)制到服務(wù)器上,獲取到 java 應(yīng)用的 pid 后,使用?java -jar jtop.jar [options]?即可輸出 JVM 內(nèi)部統(tǒng)計信息。

jtop 會使用默認參數(shù)?-stack n打印出最耗 CPU 的 5 種線程棧。

形如:

Heap?Memory:?INIT=134217728??USED=230791968??COMMITED=450363392??MAX=1908932608
NonHeap?Memory:?INIT=2555904??USED=24834632??COMMITED=26411008??MAX=-1
GC?PS?Scavenge??VALID??[PS?Eden?Space,?PS?Survivor?Space]??GC=161??GCT=440
GC?PS?MarkSweep??VALID??[PS?Eden?Space,?PS?Survivor?Space,?PS?Old?Gen]??GC=2??GCT=532
ClassLoading?LOADED=3118??TOTAL_LOADED=3118??UNLOADED=0
Total?threads:?608??CPU=2454?(106.88%)??USER=2142?(93.30%)
NEW=0??RUNNABLE=6??BLOCKED=0??WAITING=2??TIMED_WAITING=600??TERMINATED=0

main??TID=1??STATE=RUNNABLE??CPU_TIME=2039?(88.79%)??USER_TIME=1970?(85.79%)?Allocted:?640318696
????com.google.common.util.concurrent.RateLimiter.tryAcquire(RateLimiter.java:337)
????io.zhenbianshu.TestFuturePool.main(TestFuturePool.java:23)

RMI?TCP?Connection(2)-127.0.0.1??TID=2555??STATE=RUNNABLE??CPU_TIME=89?(3.89%)??USER_TIME=85?(3.70%)?Allocted:?7943616
????sun.management.ThreadImpl.dumpThreads0(Native?Method)
????sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:454)
????me.hatter.tools.jtop.rmi.RmiServer.listThreadInfos(RmiServer.java:59)
????me.hatter.tools.jtop.management.JTopImpl.listThreadInfos(JTopImpl.java:48)
????sun.reflect.NativeMethodAccessorImpl.invoke0(Native?Method)

????...?...

通過觀察線程棧,我們可以找到要優(yōu)化的代碼點。

在我們的代碼里,發(fā)現(xiàn)了很多 json 序列化和反序列化和 Bean 復(fù)制耗 CPU 的點,之后通過代碼優(yōu)化,通過提升 Bean 的復(fù)用率,使用 PB 替代 json 等方式,大大降低了 CPU 壓力。

熔斷框架優(yōu)化

服務(wù)熔斷框架上,我們選用了 Hystrix,雖然它已經(jīng)宣布不再維護,更推薦使用?resilience4j?和阿里開源的 sentinel,但由于部門內(nèi)技術(shù)棧是 Hystrix,而且它也沒有明顯的短板,就接著用下去了。

先介紹一下基本情況,我們在控制器接口最外層和內(nèi)層 RPC 調(diào)用處添加了 Hystrix 注解,隔離方式都是線程池模式,接口處超時時間設(shè)置為 1000ms,最大線程數(shù)是 2000,內(nèi)部 RPC 調(diào)用的超時時間設(shè)置為 200ms,最大線程數(shù)是 500。

響應(yīng)時間不正常

要解決的第一個問題是接口的響應(yīng)時間不正常。在觀察接口的 access 日志時,可以發(fā)現(xiàn)接口有耗時為 1200ms 的請求,有些甚至達到了 2000ms 以上。由于線程池模式下,Hystrix 會使用一個異步線程去執(zhí)行真正的業(yè)務(wù)邏輯,而主線程則一直在等待,一旦等待超時,主線程是可以立刻返回的。所以接口耗時超過超時時間,問題很可能發(fā)生在 Hystrix 框架層、Spring 框架層或系統(tǒng)層。

這時候可以對運行時線程棧來分析,我使用 jstack 打印出線程棧,并將多次打印的結(jié)果制作成火焰圖(參見 應(yīng)用調(diào)試工具-火焰圖)來觀察。

[

如上圖,可以看到很多線程都停在?LockSupport.park(LockSupport.java:175)?處,這些線程都被鎖住了,向下看來源發(fā)現(xiàn)是?HystrixTimer.addTimerListener(HystrixTimer.java:106), 再向下就是我們的業(yè)務(wù)代碼了。

Hystrix 注釋里解釋這些 TimerListener 是 HystrixCommand 用來處理異步線程超時的,它們會在調(diào)用超時時執(zhí)行,將超時結(jié)果返回。而在調(diào)用量大時,設(shè)置這些 TimerListener 就會因為鎖而阻塞,進而導(dǎo)致接口設(shè)置的超時時間不生效。

接著排查調(diào)用量為什么 TimerListener 特別多。

由于服務(wù)在多個地方依賴同一個 RPC 返回值,平均一次接口響應(yīng)會獲取同樣的值 3-5 次,所以接口內(nèi)對這個 RPC 的返回值添加了 LocalCache。排查代碼發(fā)現(xiàn) HystrixCommand 被添加在了 LocalCache 的 get 方法上,所以單機 QPS 1000 時,會通過 Hystrix 調(diào)用方法 3000-5000 次,進而產(chǎn)生大量的 Hystrix TimerListener。

代碼類似于:

@HystrixCommand(
????????????fallbackMethod?=?"fallBackGetXXXConfig",
????????????commandProperties?=?{
????????????????????@HystrixProperty(name?=?"execution.isolation.thread.timeoutInMilliseconds",?value?=?"200"),
????????????????????@HystrixProperty(name?=?"circuitBreaker.errorThresholdPercentage",?value?=?"50")},
????????????threadPoolProperties?=?{
????????????????????@HystrixProperty(name?=?"coreSize",?value?=?"200"),
????????????????????@HystrixProperty(name?=?"maximumSize",?value?=?"500"),
????????????????????@HystrixProperty(name?=?"allowMaximumSizeToDivergeFromCoreSize",?value?=?"true")})
????public?XXXConfig?getXXXConfig(Long?uid)?{
????????try?{
????????????return?XXXConfigCache.get(uid);
????????}?catch?(Exception?e)?{
????????????return?EMPTY_XXX_CONFIG;
????????}
????}

修改代碼,將 HystrixCommand 修改到 localCache 的 load 方法上來解決這個問題。此外為了進一步降低 Hystrix 框架對性能的影響,將 Hystrix 的隔離策略改為了信號量模式,之后接口的最大耗時就穩(wěn)定了。而且由于方法都在主線程執(zhí)行,少了 Hystrix 線程池維護和主線程與 Hystrix 線程的上下文切換,系統(tǒng) CPU 使用率又有進一步下降。

但使用信號量隔離模式也要注意一個問題:信號量只能限制方法是否能夠進入執(zhí)行,在方法返回后再判斷接口是否超時并對超時進行處理,而無法干預(yù)已經(jīng)在執(zhí)行的方法,這可能會導(dǎo)致有請求超時時,一直占用一個信號量,但框架卻無法處理。

服務(wù)隔離和降級

另一個問題是服務(wù)不能按照預(yù)期的方式進行服務(wù)降級和熔斷,我們認為流量在非常大的情況下應(yīng)該會持續(xù)熔斷時,而 Hystrix 卻表現(xiàn)為偶爾熔斷。

最開始調(diào)試 Hystrix 熔斷參數(shù)時,我們采用日志觀察法,由于日志被設(shè)置成異步,看不到實時日志,而且有大量的報錯信息干擾,過程低效而不準確。后來引入 Hystrix 的可視化界面后,才提升了調(diào)試效率。

Hystrix 可視化模式分為服務(wù)端和客戶端,服務(wù)端是我們要觀察的服務(wù),需要在服務(wù)內(nèi)引入?hystrix-metrics-event-stream?包并添加一個接口來輸出 Metrics 信息,再啟動?hystrix-dashboard?客戶端并填入服務(wù)端地址即可。

[

通過類似上圖的可視化界面,Hystrix 的整體狀態(tài)就展示得非常清楚了。

由于上文中的優(yōu)化,接口的最大響應(yīng)時間已經(jīng)完全可控,可以通過嚴格限制接口方法的并發(fā)量來修改接口的熔斷策略了。假設(shè)我們能容忍的最大接口平均響應(yīng)時間為 50ms,而服務(wù)能接受的最大 QPS 為 2000,那么可以通過?2000*50/1000=100?得到適合的信號量限制,如果被拒絕的錯誤數(shù)過多,可以再添加一些冗余。

這樣,在流量突變時,就可以通過拒絕一部分請求來控制接口接受的總請求數(shù),而在這些總請求里,又嚴格限制了最大耗時,如果錯誤數(shù)過多,還可以通過熔斷來進行降級,多種策略同時進行,就能保證接口的平均響應(yīng)時長了。

熔斷時高負載導(dǎo)致無法恢復(fù)

接下來就要解決接口熔斷時,服務(wù)負載持續(xù)升高,但在 QPS 壓力降低后服務(wù)遲遲無法恢復(fù)的問題。

在服務(wù)器負載特別高時,使用各種工具來觀測服務(wù)內(nèi)部狀態(tài),結(jié)果都是不靠譜的,因為觀測一般都采用打點收集的方式,在觀察服務(wù)的同時已經(jīng)改變了服務(wù)。例如使用 jtop 在高負載時查看占用 CPU 最高的線程時,獲取到的結(jié)果總是 JVM TI 相關(guān)的棧。

不過,觀察服務(wù)外部可以發(fā)現(xiàn),這個時候會有大量的錯誤日志輸出,往往在服務(wù)已經(jīng)穩(wěn)定好久了,還有之前的錯誤日志在打印,延時的單位甚至以分鐘計。大量的錯誤日志不僅造成 I/O 壓力,而且線程棧的獲取、日志內(nèi)存的分配都會增加服務(wù)器壓力。而且服務(wù)早因為日志量大改為了異步日志,這使得通過 I/O 阻塞線程的屏障也消失了。

之后修改服務(wù)內(nèi)的日志記錄點,在打印日志時不再打印異常棧,再重寫 Spring 框架的 ExceptionHandler,徹底減少日志量的輸出。結(jié)果符合預(yù)期,在錯誤量極大時,日志輸出也被控制在正常范圍,這樣熔斷后,就不會再因為日志給服務(wù)增加壓力,一旦 QPS 壓力下降,熔斷開關(guān)被關(guān)閉,服務(wù)很快就能恢復(fù)正常狀態(tài)。

Spring 數(shù)據(jù)綁定異常

另外,在查看 jstack 輸出的線程棧時,還偶然發(fā)現(xiàn)了一種奇怪的棧。

at?java.lang.Throwable.fillInStackTrace(Native?Method)
at?java.lang.Throwable.fillInStackTrace(Throwable.java:783)
??-?locked?<0x00000006a697a0b8>?(a?org.springframework.beans.NotWritablePropertyException)
??...
org.springframework.beans.AbstractNestablePropertyAccessor.processLocalProperty(AbstractNestablePropertyAccessor.java:426)
at?org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:278)
??...
at?org.springframework.validation.DataBinder.doBind(DataBinder.java:735)
at?org.springframework.web.bind.WebDataBinder.doBind(WebDataBinder.java:197)
at?org.springframework.web.bind.ServletRequestDataBinder.bind(ServletRequestDataBinder.java:107)
at?org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)
?...
at?org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)

jstack 的一次輸出中,可以看到多個線程的棧頂都停留在 Spring 的異常處理,但這時候也沒有日志輸出,業(yè)務(wù)也沒有異常,跟進代碼看了一下,Spring 竟然偷偷捕獲了異常且不做任何處理。

List?propertyAccessExceptions?=?null;
??List?propertyValues?=?(pvs?instanceof?MutablePropertyValues??
??????((MutablePropertyValues)?pvs).getPropertyValueList()?:?Arrays.asList(pvs.getPropertyValues()));
??for?(PropertyValue?pv?:?propertyValues)?{
????try?{
??????//?This?method?may?throw?any?BeansException,?which?won't?be?caught
??????//?here,?if?there?is?a?critical?failure?such?as?no?matching?field.
??????//?We?can?attempt?to?deal?only?with?less?serious?exceptions.
??????setPropertyValue(pv);
????}
????catch?(NotWritablePropertyException?ex)?{
??????if?(!ignoreUnknown)?{
????????throw?ex;
??????}
??????//?Otherwise,?just?ignore?it?and?continue...
????}
????...?...
??}

結(jié)合代碼上下文再看,原來 Spring 在處理我們的控制器數(shù)據(jù)綁定,要處理的數(shù)據(jù)是我們的一個參數(shù)類 ApiContext。

控制器代碼類似于:

@RequestMapping("test.json")
?public?Map?testApi(@RequestParam(name?=?"id")?String?id,?ApiContext?apiContext)?{}

按照正常的套路,我們應(yīng)該為這個 ApiContext 類添加一個參數(shù)解析器(HandlerMethodArgumentResolver),這樣 Spring 會在解析這個參數(shù)時會調(diào)用這個參數(shù)解析器為方法生成一個對應(yīng)類型的參數(shù)??墒侨绻麤]有這么一個參數(shù)解析器,Spring 會怎么處理呢?

答案就是會使用上面的那段”奇怪”代碼,先創(chuàng)建一個空的 ApiContext 類,并將所有的傳入?yún)?shù)依次嘗試 set 進這個類,如果 set 失敗了,就 catch 住異常繼續(xù)執(zhí)行,而 set 成功后,就完成了 ApiContext 類內(nèi)一個屬性的參數(shù)綁定。

而不幸的是,我們的接口上層會為我們統(tǒng)一傳過來三四十個參數(shù),所以每次都會進行大量的”嘗試綁定”,造成的異常和異常處理就會導(dǎo)致大量的性能損失,在使用參數(shù)解析器解決這個問題后,接口性能竟然有近十分之一的提升。

小結(jié)

性能優(yōu)化不是一朝一夕的事,把技術(shù)債都堆到最后一塊解決絕不是什么好的選擇。平時多注意一些代碼寫法,在使用黑科技時注意一下其實現(xiàn)有沒有什么隱藏的坑才是正解,還可以進行定期的性能測試,及時發(fā)現(xiàn)并解決代碼里近期引入的不安定因素。

來源 |?https://zhenbianshu.github.io/

后臺回復(fù)?學(xué)習(xí)資料?領(lǐng)取學(xué)習(xí)視頻


瀏覽 54
點贊
評論
收藏
分享

手機掃一掃分享

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

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 国产欧美性爱| 在线免费亚洲视频| 国产一级一片免费播放放a| 日韩无码A片| 免费中文字幕AV| 操美女大逼| 最近中文字幕无码| 国产性受XXXXXYX性爽| 日韩精品一区二区三| 成人超碰在线| 成人一区二区三区四区| 国产成人三级片| 浮力影院欧美| 探花无码| 人人天天操| 亚洲秘无码一区二区三区电影| 人妻免费在线视频| 色五月婷婷五月天激情| 蜜桃影视| 无码秘蜜桃一区二区| 成人爱爱视频| 精品人妻一区二区免费蜜桃视频| 亚洲无码黄色| 色婷婷成人| 韩日一区二区三区| 精产国品一区二区三区| 天天激情站| 干老女人逼| 四川少妇搡BBw搡BBBB搡| 人妻少妇91精品一区黑人| 五月婷婷色| 黄色小电影在线观看| 日韩一级a| 国产一区二区三区无码| 色逼综合| 天堂网2014| 日韩欧美在线不卡| 国产高潮白浆喷| 日本在线无码| 蜜臀AV午夜精品| 91亚洲国产成人精品一区二区三| 天堂中文资源在线观看| 香蕉成人网站在线观看| 国产精品亚洲一区| 抠逼网站| 天天三级片| 欧美亚洲黄色| 亚洲第一色在线| 成人AV免费观看| 国产色五月视频| 亚洲一级电影| 伊人成人在线视频| 人人精品| 人人精品| 91成人在线观看学生和老师| 亚洲在线播放| 成人在线观看网站| 色中文字幕| 欧美级毛片一进一出| 不卡的av| 亚洲天堂精品在线观看| 中文字幕在线观看免费高清完整版在线观看 | 最新一区二区三区| 污视频免费在线观看| 国产在线小电影| 精品九九九九| 猫咪AV成人永久网站| 波多野结衣视频在线| 久草久| 无码精品视频在线观看| 99超碰在线观看| 中文字幕久久人妻无码精品蜜桃| 操逼在线免费观看| 亚洲AV动漫| 91久久久久久久| 婷婷色亚洲| 在线观看视频91| 国产在线观看av| 丝袜美腿亚洲综合| 91丨熟女丨首页| 黄色一级片视频| 国产精品无码专区| 91人妻人人澡| 欧美激情一区二区三区| 久久黄色视频网站| 97毛片| 精品日韩| 中文字幕高清| 欧美日韩在线观看一区| 三级黄色小视频| 91香蕉国产成人App| 99AV| 午夜福利AV电影| 岛国无码AV在线观看| 秘蜜桃色一区二区三区在线观看| 亚洲视频在线观看网站| 国产在线看| 亚洲有码中文字幕| 韩国三级HD中文字幕的背景音乐 | 人妻碰碰| H片在线免费观看| 国产乱轮视频| 99热国产精品| 99九九网| 韩国三级中文字幕HD久久精品| 欧美一级夜夜爽| 这里视频很精彩免费观看电视剧最新 | jt33免费观看高清| 黄色a片视频| 狠狠狠狠狠操| 99re这里| 中文在线永久免费观看| 国产AV中文字幕| 九九热精品在线视频| 狠狠的日| 招土一级黄色片| 99极品视频| 校园春色成人| 免费av播放| 九九亚洲精品| 水果派解说av| 久久视频国产| 欧美淫乱视频| 偷拍一区二区| 爱爱打炮影院| 综合影院| 99久久精彩视频| 国精品无码一区二区三区在线秋菊 | 91视频亚洲| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 免费在线观看视频黄| 日韩高清无码三级片| 天天色天天爱| 一区二区高清视频| 国产在线观看免费视频| 黄片网址| 黄片免费无码| 久久久久久久久毛片| 久久艹伊人| 免费一级大片| 久久亭亭| 日本黄色视频在线播放| 影音先锋成人在线| 黄色片免费视频网站| 思思精品视频| 国产中文字幕免费| 中文字幕手机在线视频| 波多野结衣在线网站| 色播五月婷婷| 黑人内射人妖| 人人妻人人做| 狼色视频| 亚洲色,天堂网| 国产亲子乱XXXXinin| 第一福利视频| 国产三级| 免费日韩AV| 亚洲AV无码成人片在线| 51妺嘿嘿午夜福利在线| 97人妻在线视频| 国产熟女乱伦视频| 伊人999| 久久av一区二区三区| 青娱乐偷窥成| 欧美老熟妇BBBBB搡BBB| 亚洲成a| 欧一美一婬一伦一区二区三区黑人 | 2014AV天堂网| 亚洲精品秘一区二区三区蜜桃久 | 国产成人精品a视频| 在线免费观看成人网站| 中文字幕亚洲欧美| 欧美在线黄色| 黄片Av| 国产精品视频色| 一本色综合亚洲精品| 另类罕见稀奇videos| 嫩BBB嗓BBBB榛BBBB| 日本成人黄色| 一本到在线视频| 无码少妇视频| 看国产AA免费| 97人人爽人人爽人人爽| 精品国产午夜福利在线观看| 天天爽视频| 五月婷婷俺來也| 国产69视频在线观看| 亚洲女人视频| 亚洲成人三级片| 亚洲操逼无码| 日韩一区二区三区无码电影| 老女人日逼视频| 成人免费毛片AAAAAA片| 特猛特黄AAAAAA片| 日韩在线第—页| 欧美图片小说| 色悠悠久久| 色哟哟一区| 成人片免费| 无码av在线播放| 久久人妻无码| 天天激情站| 亚洲欧美精品在线| 超碰在线| 四虎成人精品永久免费AV九九| 香蕉AV777XXX色综合一区| 无码AV在线播放| 乱子伦一区二区三区视频在线观看| 啪啪免费网| 视频一区二区三区免费| 中文字幕++中文字幕明步| 精品久久无码中文字幕| 国产色呦呦| 亚洲色情电影| 七区九区一区在线| 亚洲成a| 亚洲精品视频无码| 又大又长又粗91| 黄在观看线| 亚洲国产中文字幕| 日逼网站国产| 我爱大香蕉| 国内成人精品| 在线免费三级| 日韩第1页| 最近最好的2019中文| 欧美一区三区视频z| 国产高清在线| 水蜜桃视频网站在线观看| 777国产盗摄偷窥精品0000| 欧美日韩中文字幕视频| 91在线日韩| 日韩欧美视频一区国产欧美在线| 中文字幕亚洲天堂| 西西444WWW无码大胆| 懂色成人av影院| 激情色色| 91亚洲国产成人精品一区| 伊人春色网| 五月丁香婷婷啪啪| 97A片在线观看播放| 午夜亚洲福利视频| 大香蕉天天操| 操逼一级片| 国产黄色一区| 先锋资源在线视频| 国产日批| 日韩精品中文无码| 羽月希无码| 丁香四月婷婷| 亚洲H| 三级国产| 五月丁香色色网| 老熟妇一区二区三区啪啪| 51黄片| 亚洲3p| 成人黄片视频| 麻豆传媒av| 国产无码黄片| 一级欧美一级日韩| 91无码国产成人精品| 亚洲性爱网址| 伊人蕉| 国产一级麻豆| 亚洲成人无码视频| 91无码一区二区三区| 国产色情网站| 欧美在线观看一区二区| 91丝袜一区在线观看| 大香蕉电影网| 伊人黄色片| 免费一区| 亚洲AV久久无码| www四虎com| 免费中文字幕| 一本到在线视频| 欧美色图88| 操逼网址大全| 17c精品麻豆一区二区免费| 尤物av在线| 青草国产视频| 国产欧美在线综合| 国产人妻精品一二三区| 久久人体| 国产乱╳╳AⅤ毛片| 亚洲女人被黑人巨大进入| 国产在线观看mv免费全集电视剧大全| 人人摸人人插| 人妻少妇偷人精品无码免费| 久热免费| 四虎网站| 欧美小黄片| 豆花成人社区,视频| 在线操逼视频| 狼友在线观看| 在线日韩一区二区| 五月婷久久| 超碰在线日韩| 高潮国产视频| 在线看操逼| 亚洲69p| 日韩中文毛片| 亚洲日本中文| 国产中文字幕亚洲综合欧美| 污视频网站在线观看| 中文字幕视频2023| 国产精品色在线| 蜜桃免费视频| 成人精品秘久久久按摩下载| 久久久久成人片免费观看蜜芽| 一级a毛片| 亚洲黄色在线视频| 嫩草视频在线播放| 69式荫蒂被添全过程频| 天天射天天干天天| 国产免费黄色片| 国产精品亚洲一区| 免费看v片| 欧美成人精品一级| 国产操比视频| 91精品国产综合久久久蜜臀图片| 人人上人人干| 亚洲欧美日韩不卡| 伊人久久免费| 亚洲午夜影院在线| 大香蕉手机在线视频| 超碰午夜| seseav| 内射网站在线观看| 久久国产精品网站| 大肉大捧一进一出免费阅读| 国产丨熟女丨国产熟女视频| 爱爱视频免费网站| 亚洲一级黄| 17c白丝喷水自慰| 一区二区三区视频免费| 操B电影| 人人操人人色| 大香蕉a片| 丝袜制服中文字幕无码专区| 日韩高清无码毛片| 国产91一区在线精品| 国产V视频| 最新中文字幕在线播放| 亚洲精品成人av无码| 国模无码在线| 男女日比视频| 91精品视频在线免费观看| 人人插人人操| 国产精品美女在线观看| 丁香五月激情综合| 国产做受91电影| 久久久久亚洲AV成人片| 亚洲午夜在线观看| 影音先锋男人| 79色色| 熟女资源网| 亚洲成人一区二区三区| 99热这里只有精品7| 屌国产精品| 一级黄色电影免费观看| 人人澡人人妻人人爽| 国产成人AV在线播放| 日韩一区二区视频在线观看| 香蕉久久久| 婷婷午夜精品久久久久久性色| 天天做| 亚洲天堂精品在线| 99久久综合九九| 俺来也俺去了| 欧美一区在线视频| 午夜激情在线观看| 天天日,天天干,天天操| 美女视频黄a视频全免费不卡| 国产棈品久久久久久久久久九秃| 久操B| 老欧性老太色HD大全| 一级少女免费播放电视剧韩剧TV | 国产精品久久77777| 亚洲性爱自拍| 中文字幕VA| 秋霞一区二区三区无码| 操碰视频在线| 高潮91PORN蝌蚪九色| 国产精品久久久久毛片SUV| 日本成人电影在线观看| 国产精品久久久精品| 一级特黄色片| 奇米av在线| 色国产在线| www.av在线| 色综合婷婷| 久久成人电影| 看一级黄色片| 120分钟婬片免费看| 亚洲激情综合网| A级毛片视频| 亚洲色视频| 亚洲欧美日韩激情| 日韩资源网| 五月激情六月丁香| 97干在线| 人人看人人干| 久久亚洲综合| 天天操天天射天天爽| 日韩欧美中文在线| 欧美成人免费在线| 羞羞色院91蜜桃| 国产V视频| 久操B| 日本精品视频在线观看| 日韩中出视频| 亚洲丁香五月激情| 神马午夜精品| 五月丁香综合在线| 黄片免费视频| 欧美日韩国内| www.色中色| 500部大龄熟乱4K视频| 精品成人久久| 亚洲视频欧洲视频| 国产在线资源| 亚洲先锋影音| 五月婷婷色欲| 热久久久久| 男人的天堂青青草| 天天操免费| 口爆吞精在线观看| 国产一区二区三区免费观看| 丰满人妻一区二区三区视频在线不卡 | 五月丁香无码| 天天插天天干| 亚洲日韩三级片| 噜噜噜噜射| 青青草精品| 亚洲色五月天| 亚洲日韩欧美国产| 国产色AV| 不卡无线在一区| 老鸭窝久久| 日本黄色三级片| 久激情内射婷内射蜜桃欧美一级 | 国产综合亚洲精品一区二| 理论片熟女奶水哺乳| 无码欧美成人AAAA三区在线| 黄色大片av| 久久波多野结衣| 大香蕉性爱网| 天天干天天日蜜臀色欲av| 国产一级特黄A片| A片大香蕉| 大香蕉福利在线| 久久久国产精品视频| 久久99精品久久久久久水蜜桃| 国产成人午夜福利视频| 成人在线观看网站| 国产乱子伦-区二区三区四区| 另类老妇奶性生BBwBBw偷拍| 欧美一区二区| 国产高清无码一区二区三区| 欧美日韩国产成人电影| 欧美日韩在线观看一区| 国产精品欧美7777777| 四川少妇bbbbbbbbb| 最新毛片网站〖网:.〗| 亚洲国产成人精品女人| 日本三级韩三级99久久| A级毛片视频| 成人国产欧美日韩在线视频| 高清AV无码| 国产三级免费观看| 精品免费黄色视频| 伊人网视频在线观看| 熟妇人妻丰满久久久久久久无码 | 久久不射| 亚洲成人精品AV| 蜜桃成人AV| 国产免费黄色电影| 国产精品国三级国产a11| 国产婬片lA片www777| 午夜无码鲁丝片午夜精品| 亚洲成人av在线观看| 俺来也av| 北条麻妃无码视频在线| 日韩视频一区| 999久久久| 91人妻人人澡人人爽人人爽| 国产aaaaaaaaaaaaa| 91内射| 人人肏| 草草视频在线观看| 精品狼友| 国产日韩欧美综合精品在线观看| 亚洲国产中文字幕| 久久久精品午夜人成欧洲亚洲韩国| 三级影片在线观看性| 婷婷丁香五月激情一区综合网| 影音先锋日韩资源| 午夜69成人做爱视频网站| 少妇高潮一区二区三区99| 奶头和荫蒂添的好舒服囗交漫画| 午夜看片| 91丨牛牛丨国产| A片黄色| 东京热无码高清| 成人一级A片| 人人操久久| 青草视频网| 午夜av电影| 亚洲国产高清在线观看视频| 国产1区2区| 福利色播| 五月乱伦| 天天视频亚洲| 92午夜福利天堂视频2019| 久久五月天婷婷| 中文字幕+乱码+中文字幕电视剧 | 波多野结衣成人网站| 国产福利av| 国产色五月| www.91AV| 91久久久久久久久久| 中文字幕网在线| 欧美性爱小说| 丰滿人妻一区二区三区| 亚洲AV无码精品久久一区二区 | 激情丁香六月| 悠悠久久久| 西西人体444www| 一起操逼| 99精品视频免费观看| 亚洲清高毛无码毛片| 国产精品久久久久精| 亚洲在线资源| 午夜成人国产| footjobvk| 亚洲天堂成人| 中文字幕人妻一区| 成人AV十八亚洲二区| AV第一福利大全导航| www.91超碰在线| 操久久久久久| 亚洲欧美成人在线| 一级黄色电影网| 日韩精品人妻中文字幕第4区| 在线亚洲AV| 樱桃Av| 精品国产乱子伦一区二区三区,小小扐| 在线无码免费| 久久综合五月| 午夜久久久久久久久久久久91| 国产高清中文字幕| 一区二区三区四区成人| 婷婷成人小说| 99久久国内精品成人免费| 日本无码人妻| 国产精品人妻AⅤ在线看| 国产精品乱子伦一区二区三区视频| 欧美日韩久久久| 国产在线欧美| 亚洲精品三级在线观看| 久久成人电影| 大香蕉综合在线| 亚洲一区在线播放| 亚洲av播放| 亚洲AV免费电影| 亚洲日韩在线中文字幕| 欧美成人日韩| 91巨乳| 天天爽夜夜爽精品成人免费| 秋霞福利| 色人人| 免费高清无码在线观看| 爱爱视频欧美| 黄色电影a片| 91蜜桃传媒在线观看| 少妇高潮日韩| 色综合社区| 777国产盗摄偷窥精品0000| 蝌蚪AV| 天堂在线视频| 精品三区| 中文字幕1区| 韩国无码专区| 特级西西444WWW视频| 想要xx| 三级内射| 黄色电影视频在线| 无码国产99精品久久久久网站| 在线日韩| 欧美偷拍一区二区| 日本50路熟女| 国产xxxx| 操逼欧美| 天天日天天舔| 操屄视频在线观看| 婷婷五月天国产| 日韩无码免费看| 日韩大香蕉视频| 欧美性爱69| 日本一级黄色A片| 日韩欧美视频在线播放| 翔田千里一区二区三区精品播放 | 麻豆999| 国产黄色视频在线播放| 微拍福利一区二区| 手机AV网站| 欧美夜夜草视频| 99性爱视频| www.狠狠操| 国产成人无码A片免费看| 亚洲自拍偷拍视频| 日韩高清一区二区| 久久久成人视频| 色婷婷在线视频观看| 日本伊人大香蕉| 国产AV日韩AV| 一区二区三区无码高清| 三级片高清无码| 人人做人人做人人做,人人做全句下一| 桃花岛tⅴ+亚洲品质| 精品精品精品| 夜夜爽7777精品国产三级| 日本无码成人片在线播放| 黑人精品XXX一区一二区| h在线网站| 日韩无码一卡二卡| 亚洲AV秘无码一区在线| 安徽妇搡BBBB搡BBB| 国产精品无码激情视频| 91久久久裸身美女| 精品国产乱码久久久久夜深人妻| 久久久久久久香蕉视频| 亚洲AV无码一区二区三竹菊| 99久久99久国产黄毛片| 久久亚洲中文字幕乱码| 欧美色成人免费在线视频| 日韩中文字幕在线| 亚洲成人影片| 久久久精品| 91视频网站| 国产黄色大片| 夜夜撸| 日本操逼在线播放| 午夜撸一撸| 香蕉黄色三级片| 字幕一区二区久久人妻网站| 狠狠干高清成人二区三区| 中文视频免费播放| 中文字幕在线看成人电影| 欧美爆操视频| 亚洲无码高清在线观看视频| 久久人妻无码中文字幕系列| 欧美AAAAAA视频| 亚洲国产另类精品| 好吊一区二区| 亚洲AV色香蕉一区二区三区| 91探花精品偷拍在线播放| 蜜芽av在线观看| 日韩黄色电影在线| 亚洲一区图片| 91丨精品丨国产丨丝袜| 国产日逼片| 国产一级婬乱A片| 欧美A级成人婬片免费看| 欧美人成人无码| 国产成人无码Av片在线公司| 中文字幕高清无码在线| 肏屄一区| 亚洲日韩AV无码| 色哟哟无码| 粉嫩小泬BBBBBB免费| 牛牛影视av| 久久性爱网| 日本免费黄色电影| 亚洲人成在线观看| 青草福利视频| 中文字幕观看| 黄色色情小说| 佐山爱人妻无码蜜桃| 亚洲AAA电影| 69激情网| 人人妻人人爱人人| 中文字幕第一页av| 青草一区| 国产伦精品一区二区三区视频女 | 久操国产| 男女日逼视频| 悠悠无码一区日韩妇女| A片久久久| 欧美色图狠狠操| 欧美系列在线| 日日久视频| 日韩在线你懂的| 亚洲中文字幕视频在线| 亚洲熟妇视频| 日韩AV综合| 大荫蒂HD大荫蒂视频| 大香蕉久久草| 久久久久亚洲| 免费一级婬片AA片观看| 中国一级黄片| 亚洲国产精品成人综合色在线婷婷 | 婷婷综合亚洲| 国产凹凸视频| 亚洲小说区图片区| 国产精成人品| 中文字幕第一页在线| 欧美美女视频网站| 97超碰色| 欧美性爱AAA| 国产乱子伦无码视频免费| 探花在线综合| 无码三| 成人无码动漫A片| 国产日韩精品无码去免费专区国产| 樱桃码一区二区三区| 亚洲一区欧美二区gay| 五月花在线视频| 日韩第22页| 国产欧美成人在线| 色五月AV| 日本内射网站| 国产十八岁在线观看| 日本Sm/调教/捆绑/紧缚| 欧美打炮网| 欧美操日本| 久久久精品中文字幕麻豆发布| 天天天天天天天操| 操逼视频网址| 成人午夜毛片| 日韩人妻无码视频| 女同二人91| 国产黄色片网站| 影音先锋三区| 久久国产热视频| 黄色综合网| 中文AV在线播放| 影音先锋成人在线| 国产精品久久久久久亚洲毛片| 苍井空精毛片精品久久久| 91影音先锋| 欧美三级网站在线观看| 日本熟妇一区二区三区| 特级西西西西4444级酉西88wwww特 | 成人网站一区二区| 久久9视频| caopeng97| 欧美老逼| 日韩一级片在线观看| 安徽妇搡BBBB搡BBBB,另类老妇| 黄色草莓视频| 精品少妇人妻一区二区| 日韩黄片免费看| 欧美一级免费| 免费视频一区| www.wuma| 美女国产精品| 亚洲九区| 嫩草AV| 青青青操| 日本一区二区三区四区| 在线观看国产一级片| 大香蕉AV在线观看| 怡红院一区| 五月天成人社区| 亚洲精品97久久| 天天看高清无码| 日韩无码不卡视频| 北岛玲在线视频| 水果派AV解说| 欧美亚洲黄色| 久久久91人妻无码精品蜜桃ID | 国产中文字幕视频| 美女黄色视频永费在线观看网站| 噼里啪啦免费观看视频大全| 亚洲天堂无码AV| 成人网站毛片| 亚洲激情网| 国产欧美精品在线观看| 久久秘成人久久无码| 狠狠操免费视频| 日本91视频| 亚洲欧美色图| 黄片精品| 人人天天爽| 一区二区视频在线| 欧美性爱小说| 日韩一级无码毛片| 青青草狠狠干| 69婷婷国产精品| 亚洲成人A片| 小泽玛利亚一区二区免费| 成人A片免费在线观看| 亚洲视频欧美| 日韩五码| 欧美黄色激情视频网站| 96精品| 久草性爱| 日韩成人一区| av逼网| 无码免费毛片| 豆花在线视频| 人人草人人草| 成人网一区二区| 日韩一区二区高清无码| 久久在线精品| 性BBwBBwBBwBBw禽| 日韩高清精品在线| 国产成人无码一区二区在线播放 | 国产精品免费一区二区三区四区视频 | 久久久成人免费视频| 亚洲精品婷婷| 一本大道香蕉av久久精东影业 | 人人操人人爱人人妻| 国产欧美日韩一区二区三区| 成人免费视频18| 国产欧美日韩成人| 亚洲有码在线视频| 亚洲中文婷婷| 欧美一区二区无码视频| 一本色道久久综合狠狠| 国产成人亚洲综合AV婷婷| 日韩一级免费毛片| 老师机性爱视频在线播放| www.色色网| 四虎成人网址| 狠狠躁日日躁夜夜躁A片无码视频 强伦轩一区二区三区四区播放方式 | 精品探花| 丁香婷婷色五月| 午夜理论在线| 97无码精品人妻一区二区三区| 中文字幕在线观看免费高清完整版在线观看 | 嫩草国产在线| 射死你天天日| 操逼操| jizz在线观看免费视频| 中文字幕在线播放视频| 中文av字幕| 日韩91在线视频| 操逼爽| 东京热视频一区| www.色欲av| 北条麻妃在线一区二区| 久久久久久久亚洲| 欧美性视频网站| 国产乱╳╳AⅤ毛片| 操片免费| aaa少妇| 人妻夜夜爽天天爽| 伊人视频在线观看| 黄色大片AV在线| 操逼免费视频网站| 国产香蕉在线观看| 日韩女人性爱| 九九久久精品视频| 九色国产视频| 韩国高清无码60.70.80| 一本色道久久综合无码人妻四虎 | 黄色在线免费看| 成人国产无码| a免费观看| 国产成人久久777777黄蓉| 亚洲国产成人精品女人久久| 国产av不卡| 做爱网站| 骚骚肥肥一区二区三区| 综合色婷婷| 大香蕉国产| 无码人妻一区二区三区蜜桃视频| 欧美特黄AAAAAAAAA片| 日韩精品在线免费视频| 成人免费网站在线观看| 成人日韩欧美| 欧美作爱| 青青草精品在线视频| 大鸡巴在线观看| 乱伦乱伦乱伦中文字幕| 亚洲美女操| 色婷婷亚洲| 人妻丰满精品一区二区| 少妇视频一区| 全部免费黄色视频| 我爱大香蕉| 免费一级a片| 婷婷激情六月| 久久丁香五月| 详情:绿帽夫妻多人运动开淫啪-91n| 亚洲第一黄色视频| 人人澡人人干| 学生妹作爱片| 日韩亚洲中文字幕| 一区二区三区日韩| 成人无码网站在线观看| 蜜桃精品在线观看| 欧美日韩精品一区二区三区| 无码人妻丰满熟妇精品| 97资源在线| av天堂中文| 影音先锋资源站|