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

記一次 某智能制造MES系統CPU 爆高分析

系統 其他OS
一般來說cpu的跌宕起伏都是由 thread 誘發的,一個好的思路就是看下此時各個線程都在做什么,可以使用 ~*e !clrstack 觀察,經過仔細對比發現有 4 處 SqlDataReader 貌似在讀什么東西,剛好對應到了 CPU 核數。

一:背景

1. 講故事

前段時間有位朋友找到我,說他 docker 中的web服務深夜cpu被打滿,讓我幫忙看一下,很多朋友問docker中怎么抓dump,我一般都推薦使用 procdump 這款自動化工具,誰用誰知道,有了 dump 之后,接下來就是分析了。

二:WinDbg 分析

1. cpu 真的爆高嗎

有很多朋友問 linux 上的dump可以用 windbg 分析嗎?這里統一回復下,是可以的,現在的 WinDbg 可以全平臺分析,不信看下圖:

圖片

不過有一點吐槽的是,Linux 不是微軟的,所以在 操作系統層級 上的調試支持是不夠的,也不是 WinDbg 能力所觸及范圍之內,所以相比 Windows 有很多的不便。

接下來我們用 !tp 看一下當前的 cpu 到底是多少?

0:000> !tp
CPU utilization: 393 %
Worker Thread: Total: 19 Running: 5 Idle: 10 MaxLimit: 32767 MinLimit: 4
Work Request in Queue: 0
--------------------------------------
Number of Timers: 4
--------------------------------------
Completion Port Thread:Total: 0 Free: 0 MaxFree: 8 CurrentLimit: 0 MaxLimit: 1000 MinLimit: 4

從卦中看當前的 cpu=393% ,這表示什么意思呢?在Linux上是這樣的,一個核占用 100%,可以理解成當前有 4 個核被打滿。

那當前 docker 中給了多少 cpu 核呢?在 Windows 平臺上可以用 !cpuid,在 Linux 上肯定用不了了,沒關系,熟悉 CLR 的朋友應該知道,ServerGC 的heap個數默認按照cpu 的個數來的,也就是說當前多少個heap,也就有多少個 cpu core。

有了這個思路,使用 !eeversion 來看下 gc 模式吧。

0:000> !eeversion
4.700.21.56803 (3.x runtime)
4.700.21.56803 @Commit: 28bb6f994c28bc91f09bc0ddb5dcb51d0f066806
Server mode with 4 gc heaps
SOS Version: 7.0.8.10101 retail build

從卦中的 Server mode with 4 gc heaps 來看,當前docker使用 4 個 cpu 核,所以 393% 就表示了當前被完全打滿。

2. 為什么會被打滿

一般來說cpu的跌宕起伏都是由 thread 誘發的,一個好的思路就是看下此時各個線程都在做什么,可以使用 ~*e !clrstack 觀察,經過仔細對比發現有 4 處 SqlDataReader 貌似在讀什么東西,剛好對應到了 CPU 核數,輸出如下:

0:000> ~*e !clrstack
OS Thread Id: 0x3f89 (24)
        Child SP               IP Call Site
00007F9FA14A0628 00007fa4803e2a93 System.Data.SqlClient.TdsParser.TrySkipValue(System.Data.SqlClient.SqlMetaDataPriv, Int32, System.Data.SqlClient.TdsParserStateObject) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs @ 4399]
00007F9FA14A0640 00007fa47f9a5e03 System.Data.SqlClient.TdsParser.TrySkipRow(System.Data.SqlClient._SqlMetaDataSet, Int32, System.Data.SqlClient.TdsParserStateObject) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs @ 4334]
00007F9FA14A0670 00007fa4803d2fba System.Data.SqlClient.SqlDataReader.TryCleanPartialRead() [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs @ 760]
00007F9FA14A0690 00007fa47f99e424 System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean, Boolean ByRef) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs @ 3286]
00007F9FA14A06F0 00007fa4804742e5 System.Data.SqlClient.SqlDataReader+c__DisplayClass190_0.b__1(System.Threading.Tasks.Task) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs @ 4448]
00007F9FA14A0720 00007fa480a239ea System.Data.SqlClient.SqlDataReader+c__DisplayClass194_0`1[[System.Boolean, System.Private.CoreLib]].b__0(System.Threading.Tasks.Task`1<System.Object>) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs @ 4804]
00007F9FA14A0770 00007fa4803fa6ce System.Threading.Tasks.ContinuationResultTaskFromResultTask`2[[System.__Canon, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib]].InnerInvoke() [/_/src/System.Private.CoreLib/shared/System/Threading/Tasks/TaskContinuation.cs @ 191]
00007F9FA14A07B0 00007fa4803d5551 System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) [/_/src/System.Private.CoreLib/shared/System/Threading/ExecutionContext.cs @ 315]
00007F9FA14A07F0 00007fa4803d1c2c System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread) [/_/src/System.Private.CoreLib/shared/System/Threading/Tasks/Task.cs @ 2421]
00007F9FA14A0870 00007fa4803b99a9 System.Threading.ThreadPoolWorkQueue.Dispatch() [/_/src/System.Private.CoreLib/shared/System/Threading/ThreadPool.cs @ 699]
00007F9FA14A0C80 00007fa4f11512df [DebuggerU2MCatchHandlerFrame: 00007f9fa14a0c80] 
OS Thread Id: 0x3f8a (25)
        Child SP               IP Call Site
00007F9FA3154580 00007fa4803bc857 System.Data.SqlClient.TdsParser.TryGetTokenLength(Byte, System.Data.SqlClient.TdsParserStateObject, Int32 ByRef) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs @ 5889]
...
00007F9FA3154670 00007fa4803d2fba System.Data.SqlClient.SqlDataReader.TryCleanPartialRead() [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs @ 760]
00007F9FA3154690 00007fa47f99e424 System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean, Boolean ByRef) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs @ 3286]
...
00007F9FA3154870 00007fa4803b99a9 System.Threading.ThreadPoolWorkQueue.Dispatch() [/_/src/System.Private.CoreLib/shared/System/Threading/ThreadPool.cs @ 699]
00007F9FA3154C80 00007fa4f11512df [DebuggerU2MCatchHandlerFrame: 00007f9fa3154c80] 
OS Thread Id: 0x5211 (37)
        Child SP               IP Call Site
00007F9FD2FFC570 00007fa4803bc921 System.Data.SqlClient.TdsParserStateObject.TryReadUInt16(UInt16 ByRef) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs @ 1519]
00007F9FD2FFC580 00007fa4803bc891 System.Data.SqlClient.TdsParser.TryGetTokenLength(Byte, System.Data.SqlClient.TdsParserStateObject, Int32 ByRef) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs @ 5889]
00007F9FD2FFC5C0 00007fa4803e2c06 System.Data.SqlClient.TdsParser.TrySkipValue(System.Data.SqlClient.SqlMetaDataPriv, Int32, System.Data.SqlClient.TdsParserStateObject) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs @ 4399]
00007F9FD2FFC640 00007fa47f9a5e03 System.Data.SqlClient.TdsParser.TrySkipRow(System.Data.SqlClient._SqlMetaDataSet, Int32, System.Data.SqlClient.TdsParserStateObject) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs @ 4334]
...
00007F9FD2FFC870 00007fa4803b99a9 System.Threading.ThreadPoolWorkQueue.Dispatch() [/_/src/System.Private.CoreLib/shared/System/Threading/ThreadPool.cs @ 699]
00007F9FD2FFCC80 00007fa4f11512df [DebuggerU2MCatchHandlerFrame: 00007f9fd2ffcc80] 
OS Thread Id: 0x5212 (38)
        Child SP               IP Call Site
00007F9FB3FFE580 00007fa4803bc839 System.Data.SqlClient.TdsParser.TryGetTokenLength(Byte, System.Data.SqlClient.TdsParserStateObject, Int32 ByRef) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs @ 5889]
00007F9FB3FFE5C0 00007fa4803e2c06 System.Data.SqlClient.TdsParser.TrySkipValue(System.Data.SqlClient.SqlMetaDataPriv, Int32, System.Data.SqlClient.TdsParserStateObject) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs @ 4399]
00007F9FB3FFE640 00007fa47f9a5e03 System.Data.SqlClient.TdsParser.TrySkipRow(System.Data.SqlClient._SqlMetaDataSet, Int32, System.Data.SqlClient.TdsParserStateObject) [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs @ 4334]
00007F9FB3FFE670 00007fa4803d2fba System.Data.SqlClient.SqlDataReader.TryCleanPartialRead() [/_/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs @ 760]
...
00007F9FB3FFE7F0 00007fa4803d1c2c System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread) [/_/src/System.Private.CoreLib/shared/System/Threading/Tasks/Task.cs @ 2421]
00007F9FB3FFE870 00007fa4803b99a9 System.Threading.ThreadPoolWorkQueue.Dispatch() [/_/src/System.Private.CoreLib/shared/System/Threading/ThreadPool.cs @ 699]
00007F9FB3FFEC80 00007fa4f11512df [DebuggerU2MCatchHandlerFrame: 00007f9fb3ffec80]

從卦中看,雖然異步寫的很爽,可逆向分析起來真的是上刀山下火海。。。接下來思路在哪里呢?可以這么想,既然是和 SqlDataReader 有關系,那就挖一挖,看看里面有什么sql。

0:025> !dso
OS Thread Id: 0x3f8a (25)
RSP/REG          Object           Name
rdx              00007fa128ad9c08 System.Data.SqlClient.SNI.TdsParserStateObjectManaged
rdi              00007fa128ad9c08 System.Data.SqlClient.SNI.TdsParserStateObjectManaged
r9               00007fa128ad9c08 System.Data.SqlClient.SNI.TdsParserStateObjectManaged
r12              00007fa128ad9c08 System.Data.SqlClient.SNI.TdsParserStateObjectManaged
r13              00007fa128ad9b70 System.Data.SqlClient.TdsParser
...
00007F9FA31546B0 00007fa3297b8fb8 System.Data.SqlClient.SqlDataReader
...

0:025> !DumpObj /d 00007fa3297b84d0
Name:        System.String
MethodTable: 00007fa477db0f90
EEClass:     00007fa477d1e230
Size:        2496(0x9c0) bytes
File:        /usr/share/dotnet/shared/Microsoft.NETCore.App/3.1.22/System.Private.CoreLib.dll
String:      select xxx,xxx,xxx,xxx from template_xxxreport where 1=1 
Fields:
              MT    Field   Offset                 Type VT     Attr            Value Name
00007fa477daa0e8  400022a        8         System.Int32  1 instance             1237 _stringLength
00007fa477da6f00  400022b        c          System.Char  1 instance               73 _firstChar
00007fa477db0f90  400022c      108        System.String  0   static 00007fa027fff360 Empty

從 sql 看貌似是讀了 template_xxxreport 表, 而且還沒有篩選條件,看樣子是深夜跑什么數據把 CPU 給抬起來了,那接下里的問題是什么地方會執行這條sql呢?

3. 到底在哪里執行的

剛才的線程棧看不到一句用戶代碼,我們還可以用 !gcroot 追蹤下這個 sql 的祖宗,可能會有新的發現哦。

0:025> !gcroot 00007fa3297b84d0
    00007F9FA3154770 00007FA4803FA6CE System.Threading.Tasks.ContinuationResultTaskFromResultTask`2[[System.__Canon, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib]].InnerInvoke() [/_/src/System.Private.CoreLib/shared/System/Threading/Tasks/TaskContinuation.cs @ 191]
        rbx: 
            ->  00007FA233579680 System.Threading.Tasks.ContinuationResultTaskFromResultTask`2[[System.Object, System.Private.CoreLib],[System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]], System.Private.CoreLib]]
            ->  00007FA233579748 System.Threading.Tasks.UnwrapPromise`1[[System.Boolean, System.Private.CoreLib]]
            ...
            ->  00007FA329BE4BB0 System.Threading.Tasks.StandardTaskContinuation
            ->  00007FA329BE4B18 System.Threading.Tasks.ContinuationTaskFromResultTask`1[[System.Boolean, System.Private.CoreLib]]
            ->  00007FA329BE4AD8 System.Action`1[[System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]], System.Private.CoreLib]]
            ->  00007FA329BE2AE8 System.Data.SqlClient.SqlDataReader+<>c__DisplayClass195_0`1[[System.Boolean, System.Private.CoreLib]]
            ->  00007FA32982AE50 System.Threading.Tasks.TaskCompletionSource`1[[System.Boolean, System.Private.CoreLib]]
            ->  00007FA32982AE68 System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]]
            ->  00007FA3297B91B0 System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[xxx.xxx.Template_xxxxReport, xxx.xxx],[Dapper.SqlMapper+<QueryRowAsync>d__34`1[[xxx.xxxx.Template_xxxxReport, xxx.xxxx]], Dapper]]
            ->  00007FA3297B84D0 System.String

從引用鏈條看,這條sql使用 Dapper 的 QueryRowAsync 查詢,實體類是 xxx.xxxx.Template_xxxxReport,有了這些信息就好辦了,反饋給朋友后,讓朋友看下這是哪里的sql和model。

據朋友調查后,說是用的某商業數據訪問sdk 內部邏輯不嚴謹造成的,參考代碼如下:

public async Task<T> FindEntity<T>(object param) where T : class
    {
        //核心問題
        if (param == null)
        {
            param = new { };
        }

        var parameters = param.ToObject();

        //參數拼接
        foreach (var item in parameters)
        {
            // xxxxx
        }
    }

當 param =null 時,底層用 param = new { }; 當無參數處理,這就導致全表sql的發生,朋友說現在想想都有點后怕。。。

圖片

三:總結

這次事故主要是由 某商業數據訪問sdk 在異常參數處理時邏輯不嚴謹所致,畢竟 拋異常 比 全量查詢 要好得多,大家在買商業組件的時候,且行且珍惜。

責任編輯:武曉燕 來源: 一線碼農聊技術
相關推薦

2024-08-08 11:21:01

2021-10-27 07:30:32

.NETCPU論壇

2022-10-24 07:48:37

.NETCPUGC

2024-03-15 15:15:53

.NETCPU系統

2023-07-31 22:29:20

CPU.NETAPI

2021-05-17 07:43:06

Web站 CPU.NET

2024-12-31 09:36:06

2023-11-01 10:46:12

.NET線程同步

2021-04-21 07:38:41

CPU游戲站程序

2022-10-10 17:52:08

CPUERP系統

2024-11-29 10:06:59

2022-02-23 10:12:58

CPUWeb.NET

2023-05-08 08:25:52

2024-03-28 12:56:36

2023-04-06 10:52:18

2023-09-26 01:11:58

MES非托管泄露

2023-03-26 20:24:50

ERP網站系統

2024-03-26 00:44:53

.NETCIM系統

2024-07-09 11:51:20

Windows線程池源碼

2024-07-01 13:00:24

.NET網絡邊緣計算
點贊
收藏

51CTO技術棧公眾號

久久久久久久久久一区| 国产视频精品网| 国产一区二区三区视频播放| 日韩毛片网站| 午夜视频一区二区| 水蜜桃亚洲精品| 精品久久人妻av中文字幕| 99riav1国产精品视频| 亚洲性69xxxbbb| 红桃视频一区二区三区免费| 日本在线影院| 亚洲视频图片小说| 蜜桃av噜噜一区二区三| 亚洲图片欧美在线| 亚洲美女视频在线免费观看| 日韩中文字幕在线观看| 在线xxxxx| 啪啪av大全导航福利综合导航| 亚洲丝袜制服诱惑| 日本高清不卡三区| 亚洲精品国产手机| 毛片一区二区三区| 91国自产精品中文字幕亚洲| 九九这里只有精品视频| 香蕉一区二区| 欧美va在线播放| 天天综合天天添夜夜添狠狠添| 国产伦理精品| 一区二区三区四区在线播放| 无码免费一区二区三区免费播放 | 欧洲午夜精品| 色婷婷综合久久| 欧美在线一区视频| 日韩精品卡一| 综合久久国产九一剧情麻豆| 欧美系列一区| 凸凹人妻人人澡人人添| 国产精品99久久久久久久女警| 国产精品看片资源| 日日噜噜噜噜人人爽亚洲精品| 精品白丝av| 久久国产精品久久国产精品| 国产在线免费av| 国产成人精品一区二区免费看京 | 欧美激情视频在线播放| 久久精品欧美一区二区三区不卡| 国产精品一区在线播放| www.av在线.com| 国产麻豆9l精品三级站| 国产啪精品视频网站| 无码人妻久久一区二区三区| 午夜亚洲伦理| 秋霞av国产精品一区| 色播视频在线播放| 亚洲人成在线影院| 久久久久女教师免费一区| 深夜福利影院在线观看| 亚洲最新色图| 久久综合久久美利坚合众国| 日本高清不卡免费| 在线看片不卡| 麻豆国产va免费精品高清在线| 一区二区三区影视| 91精品久久久久久久蜜月| 日韩一区二区av| 久艹在线观看视频| 97精品在线| 久久天天躁狠狠躁老女人| 性欧美疯狂猛交69hd| 综合色一区二区| 久久乐国产精品| www.日本精品| 日韩精品午夜视频| 国产欧美亚洲视频| 国产suv精品一区二区69| 国产精品亚洲一区二区三区妖精| 超碰97国产在线| 欧美在线 | 亚洲| 久久婷婷综合激情| 一本久道久久综合狠狠爱亚洲精品| av资源种子在线观看| 日韩美女啊v在线免费观看| 成人在线观看毛片| 久草在线资源福利站| 日韩欧美在线网址| wwwwwxxxx日本| 伊人久久大香线蕉av超碰| 亚洲精品电影久久久| 国产免费一区二区三区网站免费| 91一区二区| 欧美黑人巨大xxx极品| 国产美女激情视频| 六月丁香婷婷久久| 国产三区精品| 色的视频在线免费看| 一区二区三区美女视频| 任你操这里只有精品| av在线亚洲一区| 欧美videossexotv100| 无码人妻精品一区二区中文| 亚洲激情中文| 国产99久久精品一区二区 夜夜躁日日躁| 又骚又黄的视频| 成人免费视频播放| 日韩亚洲视频| 国产一线二线在线观看| 欧美婷婷六月丁香综合色| 91视频免费入口| 精品久久不卡| 午夜精品理论片| 国产精品无码一区二区桃花视频| 91网站黄www| 亚洲色图都市激情| 亚洲日本在线观看视频| 亚洲第五色综合网| av最新在线观看| 美女黄网久久| 精品高清视频| 欧美高清另类hdvideosexjaⅴ| 欧美三级欧美一级| 日韩在线免费观看av| 亚洲性感美女99在线| 国产一区二区香蕉| 国产在线中文字幕| 午夜精品福利一区二区三区蜜桃| 天天久久综合网| 凹凸成人精品亚洲精品密奴| 欧美一二三视频| 免费国产羞羞网站视频| 亚洲三级免费电影| 久久这里只精品| 国产一区二区三区网| 97热精品视频官网| 亚洲AV无码精品国产| 日韩理论在线观看| 中文字幕国产免费| 色小子综合网| 国产精品网红福利| 国产高清视频在线| 日本乱人伦aⅴ精品| 欧洲一级黄色片| 日韩午夜高潮| 国产一区在线免费| 变态调教一区二区三区| 欧美成人一区二区三区在线观看| 三级av在线免费观看| 久久se精品一区精品二区| 色吧亚洲视频| 最新日韩一区| 色狠狠av一区二区三区香蕉蜜桃| 91视频在线视频| 久久九九久精品国产免费直播| 鲁一鲁一鲁一鲁一澡| 卡一精品卡二卡三网站乱码| 久久久久免费精品国产| 日韩中文字幕影院| 午夜精品福利一区二区蜜股av| 美女搡bbb又爽又猛又黄www| 激情欧美国产欧美| 精品国产综合久久| 日本а中文在线天堂| 亚洲片av在线| 亚洲高清视频免费观看| 中文字幕在线不卡一区二区三区| 在线观看日本一区二区| 亚洲国产精品久久久久蝴蝶传媒| 亚洲最大福利视频网| 国产后进白嫩翘臀在线观看视频| 欧美精品一区二区三区在线播放| www.av麻豆| 国产亚洲欧洲997久久综合| 99sesese| 国产精品vip| 黑人另类av| 99九九久久| 欧美另类xxx| 五月激情婷婷网| 欧美性色aⅴ视频一区日韩精品| 99久久99久久精品免费| 国产精品一二三区在线| 国产a级一级片| 日韩av片子| 91九色视频在线观看| 福利影院在线看| 中文字幕无线精品亚洲乱码一区 | 久久久久久久久久久久久av| 久久影音资源网| 天堂av在线8| 在线国产精品一区| 亚洲精品中文字幕在线| 试看120秒一区二区三区| 69精品小视频| 麻豆视频在线| 亚洲精品小视频| 国产乱色精品成人免费视频 | 一级全黄裸体免费视频| 亚洲国产中文字幕| 国产无遮挡在线观看| 成人在线一区二区三区| 欧美国产日韩在线播放| 综合国产在线| 日韩中文一区二区三区| 永久免费精品视频| 国产欧美一区二区| 校园春色亚洲| 欧美精品在线免费观看| 高清av在线| 亚洲精品v天堂中文字幕 | 狠狠色丁香久久婷婷综| 北条麻妃69av| 欧美视频日韩| 一区二区日本伦理| 亚洲人成精品久久久 | 欧美另类亚洲| 亚洲高清不卡一区| 欧美色图五月天| 91影视免费在线观看| 免费福利视频一区二区三区| 色综合久久88| 免费在线你懂的| 亚洲天堂av综合网| 午夜视频在线播放| 精品伦理精品一区| 国产日韩精品suv| 欧美日韩一区在线| 精品人妻一区二区色欲产成人| 一区二区三区 在线观看视频| 欧美性猛交xxxx乱大交少妇| 久久久久久久久岛国免费| 亚洲av成人精品一区二区三区 | 亚洲综合在线中文字幕| 天天做天天爱天天高潮| 亚洲婷婷噜噜| 丝袜情趣国产精品| 国产日韩精品在线看| 亚洲成人av中文字幕| 99国产在线播放| 欧美日韩精品欧美日韩精品一| 日本视频在线观看免费| 午夜一区二区三区在线观看| 欧美毛片在线观看| 亚洲精品国产无天堂网2021| 日韩三级在线观看视频| 中文字幕一区二区三区色视频| 亚洲精品一区二区三区影院忠贞| 久久影院视频免费| 亚洲精品视频久久久| 久久毛片高清国产| 国产在线一区二区三区四区| 日本一级片免费| 99久久综合精品| 国产精品成人无码专区| 成人国产电影网| 强迫凌虐淫辱の牝奴在线观看| 成人网在线免费视频| 中文字幕第3页| 97精品国产97久久久久久久久久久久| 男女性杂交内射妇女bbwxz| www.欧美.com| 精品人妻无码一区二区三区 | 一级成人国产| 红桃av在线播放| 日韩va欧美va亚洲va久久| 天天干天天干天天干天天干天天干| 蜜臀a∨国产成人精品| av中文字幕网址| 国产精品99久久久久久久vr| 日本天堂在线播放| 久久亚洲精华国产精华液| 中文字幕第20页| 国产精品美女久久久久久久网站| 亚洲一二三四五六区| 一区二区三区资源| 激情五月色婷婷| 91久久香蕉国产日韩欧美9色| 亚洲一线在线观看| 日韩女优电影在线观看| 色婷婷综合视频| 国产一区二区三区在线观看视频| 日韩免费啪啪| 欧美激情a∨在线视频播放| 草草在线视频| 国产精品人成电影| 欧美一级片网址| 麻豆久久久av免费| 天天做天天爱综合| 国产毛片视频网站| 日本欧美一区二区| 少妇搡bbbb搡bbb搡打电话| xnxx国产精品| √天堂中文官网8在线| 五月综合激情婷婷六月色窝| 中文在线最新版天堂| 日韩精品一区二区三区四区视频| 日韩精品一二| 欧美成人精品一区| 欧美影视资讯| 国产精品久久国产三级国电话系列| 性欧美xxxx免费岛国不卡电影| 一区二区不卡在线视频 午夜欧美不卡' | 色综合久久久久网| av大片免费在线观看| 欧美性猛交xxxxxx富婆| 国产自产一区二区| 日日摸夜夜添一区| 美女av在线免费看| 91免费国产网站| 国产欧美日韩影院| 一本久道高清无码视频| 老汉av免费一区二区三区| 黄色av网址在线观看| 日韩理论片中文av| 色老头一区二区| 日韩成人激情视频| 91福利国产在线观看菠萝蜜| 国产精品久久999| 欧美绝顶高潮抽搐喷水合集| 在线观看污视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 一区二区三区少妇| 亚洲一区视频在线观看视频| 中文字幕一区二区久久人妻| 日韩电视剧在线观看免费网站| av网站在线免费看推荐| 国产女同一区二区| 欧美日韩播放| 黄色免费视频大全| 成人av网站免费观看| 五月婷婷一区二区| 在线电影院国产精品| av网站无病毒在线| 国产成人中文字幕| 亚洲精品一级二级三级| 很污的网站在线观看| 国产成人在线视频网址| 午夜三级在线观看| 欧美嫩在线观看| 免费在线看黄网站| 91久久中文字幕| 婷婷综合伊人| 午夜一级免费视频| 中文字幕日韩av资源站| 一级片在线观看视频| 日韩在线激情视频| 日韩一级特黄| 免费观看黄色大片| 国产在线观看免费一区| 亚洲色偷偷综合亚洲av伊人| 在线播放日韩导航| 91极品在线| 国产精品乱码一区二区三区| 亚洲二区免费| 污污内射在线观看一区二区少妇| 亚洲福利电影网| 天天综合网在线观看| 国产91|九色| 国产在线日韩精品| 一区二区三区 日韩| 国产精品久久久久久一区二区三区 | 精品无码人妻一区二区免费蜜桃| 色综合久久88色综合天天免费| 免费国产在线视频| 国产精品美女久久久免费| 日韩一区二区三区免费播放| 色91精品久久久久久久久| 亚洲免费在线视频一区 二区| 国内毛片毛片毛片毛片| 国内精品久久久久久久久| 欧美一级色片| 免费看a级黄色片| 成人免费在线视频观看| 亚洲欧美激情另类| 欧美中在线观看| 91影院成人| 一边摸一边做爽的视频17国产| 欧美性精品220| 日本在线免费网| 国产精品久久精品视| 久久天堂成人| 欧美大片xxxx| 日韩精品中文字幕视频在线| 国产韩日精品| 国产色一区二区三区| 国产女主播一区| 国内精品偷拍视频| 国产精品99久久99久久久二8| 91精品国产乱码久久久久久| 亚洲av无码一区二区三区网址| 欧美性受xxxx黑人xyx性爽| 亚洲h片在线看| 日本成人看片网址| 福利电影一区二区| 少妇一级淫片日本| 欧美激情久久久| 残酷重口调教一区二区| 久久精品无码专区| 欧美性大战久久久久久久蜜臀| 国产盗摄精品一区二区酒店| 五月天久久综合网| 91一区二区三区在线观看|