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

ASP.NET中的Session會產生的性能問題淺析

開發 后端
ASP.NET中的Session會產生的性能問題是指什么呢?那么在實際的應用當中有什么是要注意的呢,那么本文就是把這些經驗向你詳細講解。

ASP.NET中的Session會有什么性能問題呢?你的站點有被客戶投訴很慢嗎?是不是查了很多遍還是沒有完全解決?是不是數據庫沒有發現異常,CPU也沒有異常,內存占用量沒有異常,GC計數沒有異常,硬盤IO也沒有異常,帶寬沒有異常,線路沒有異常,沒有丟包,但就是被投訴?而且還是陣發性的,有某個用戶投訴慢的時候,你訪問卻很快,本地又復現不出來?今天你訪問了博客園真是太幸運了,也許這里就有你想要的一個答案——假如你的站點動態處理了圖片或者其他原本不會動態處理的非網頁資源的話。沒想到吧,這是Session惹的禍!

我們公司某個站點訪問量一直很大,幾年前就已經發現客戶經常投訴說很慢,而這個問題我們一直都在排查和解決。從線路問題,到數據庫連接泄露,到數據庫死鎖、索引,以及程序的優化問題,我們都查找過,并且解決過。然而,這個問題總還是存在。比如說,在IIS日志中,就會經常看到time-taken大于10秒鐘的訪問。而最近我們的KPI要求解決這個問題,不得已,再次踏上這趟艱難的排查之旅。

之所以說艱難,是因為這個現象在本地幾乎無法復現,一個是這個現象是陣發性的,第二個是本地訪問量或者數據量不夠大。我們也嘗試過在本地加載線上服務器的數據庫,然后拿服務器的IIS的Log文件重播,結果確實是偶爾發現IIS日志中的time-taken也會比較長,但是本地服務器性能不如線上服務器的,比如說IO就差很遠,于是總說不清楚到底是什么問題。而線上服務器也不方便用做Dump的形式查找:第一是因為線上一做Dump,站點就會在幾分鐘內失去響應,這樣我們客服的電話就會被打爆;另一個原因還是陣發性的問題,我們不可能一直盯著性能看,然后在發生問題的瞬間做Dump。再說了,看性能也看不出來,因為那些響應時間很長的訪問,其前后附近的響應都特別的快。不可避免的,我們只能夠在代碼里面塞入一些調試和日志的代碼,以期望能夠得到一些有用的信息。

最開始的時候,我們認為最可能的原因是數據庫阻塞,比如正好某一個訪問鎖住某個數據庫對象(比如一張表或者某幾行),如果這個時候訪問特定的頁面,可能就會比較慢。于是在數據庫層塞入了一堆代碼,這些代碼會在數據庫連接數量多,或者某個數據庫連接時間特別長的時候,將所有數據庫連接的當前訪問語句、連接持續總時間,以及這些連接當前的堆棧情況都輸出到文件中。與此同時,我們還打開Sql profiler對這個數據庫進行監視,將持續時間超過1秒鐘的都記錄下來。然而跑了一天之后,卻發現什么都沒有被記錄下來,但IIS日志中仍然在這段時間內出現許多10秒以上的訪問。這個時候,我們就意識到,可能方向錯了。

ASP.NET中的Session還有什么呢?接著,我們就開始塞另外一段代碼:一個IHttpModule。這個模塊就只是截獲每一個頁面訪問的完整生命周期中的所有事件,比如BeginRequest、PreAuthenticateRequest等。同時在BeginRequest開始的時候設置一個定時器,每隔一秒鐘就會出發一個事件,來記錄本次訪問過程中,本模塊收集到的所有線程中當前的堆棧情況。最后,在EndRequest的時候,如果訪問時間超過5秒,就將之前截獲的所有信息輸出到文件中。這一下子問題就變得非常的清晰了,比如說,下面這種輸出(片斷)就是非常典型的一個情況:

  1. #Steps:  
  2. #Fields: date time threadId stepName  
  3. #---------------------------------------------------  
  4. 2009-07-09 16:48:01.752 0024 BeginRequest  
  5. 2009-07-09 16:48:01.752 0024 AuthenticateRequest  
  6. 2009-07-09 16:48:01.752 0024 PostAuthenticateRequest  
  7. 2009-07-09 16:48:01.752 0024 AuthorizeRequest  
  8. 2009-07-09 16:48:01.752 0024 PostAuthorizeRequest  
  9. 2009-07-09 16:48:01.752 0024 ResolveRequestCache  
  10. 2009-07-09 16:48:01.752 0024 PostResolveRequestCache  
  11. 2009-07-09 16:48:01.752 0024 PostMapRequestHandler  
  12. 2009-07-09 16:48:06.284 0007 AcquireRequestState  
  13. 2009-07-09 16:48:06.284 0007 PostAcquireRequestState  
  14. 2009-07-09 16:48:06.284 0007 PreRequestHandlerExecute  
  15. 2009-07-09 16:48:06.284 0007 EndRequest  
  16. #---------------------------------------------------  
  17. #End of steps. 

也就是說,在PostMapRequestHandler之后,AcquireRequestState之前,有一大段的等待時間。而這個報告后面的堆棧情況,則顯得很奇怪:線程7從第一次截快照的時候開始,一直到結束都是空白的!甚至在其他的一些報告中甚至會發現這個線程已經被分派處理其他頁面的工作了(堆棧中的調用很明顯指出是另一個aspx頁面的代碼)。結果一Google“PostMapRequestHandler”和“AcquireRequestState”這兩個關鍵字,就找到了國外另一個有類似遭遇的受害者:

http://forums.iis.net/t/1147300.aspx

這個樓主是一個aspx頁面里面有好幾個iframe,并且每一個iframe里面都是訪問同一個Web應用下的Aspx頁面。現象就是iframe內的頁面會一個個蹦出來,尤其是這些頁面都比較慢的時候。和我這里截獲到的情況一樣,也是PostMapRequestHandler事件到AcquireRequestState之間有很長的空白時間。順藤摸瓜,又找到了這么一個帖子:

http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.dotnet.framework.aspnet&mid=7f56033f-caac-47c2-bd9c-95512aa14b47

理解ASP.NET中的Session,原來,在AcquireRequestState之前,需要等待上一個同SessionId的頁面處理完畢之后,才會繼續處理當前頁面。其根本原因是:同一個SessionId下面的Session對象不應該被同時寫入,否則就會全亂套了,原理和多線程競爭是一樣的。因此在設計上,同一個SessionId的頁面(或者IHttpHandler)就會順序執行。

好了,到這里真相又一次大白了!(指不定還有別的問題,還會有下一次大白的時候)在我們的系統中,由于特殊的原因,對圖片的輸出我們會通過Asp.Net來處理,比如說加上一些合適的緩存標記,甚至會動態生成圖片輸出(令人驚訝的是,這個動態輸出的總時間消耗甚至不到100毫秒,所以不要說動態生成是一種不好的實施方式)。但是,由于沒有經過特殊處理,ASP.NET底層認為這些訪問時需要對Session進行寫操作的,于是就在AcquireRequestState之前掛起,等待上一次同SessionId訪問結束。可想而知,圖片多了就會導致排隊,甚至排很長的隊。如果在排隊結束之前訪問下一個頁面,正好系統又沒有丟掉之前的隊列,則這次訪問就會變得比較漫長了。那么怎么做呢? 在一次順藤摸瓜,找到了確切的說法:

http://msdn.microsoft.com/en-us/library/ms178581.aspx

注意下面的這段話:

Concurrent Requests and Session State
Access to ASP.NET session state is exclusive per session, which means that if two different users make concurrent requests, access to each separate session is granted concurrently. However, if two concurrent requests are made for the same session (by using the same SessionID value), the first request gets exclusive access to the session information. The second request executes only after the first request is finished. (The second session can also get access if the exclusive lock on the information is freed because the first request exceeds the lock time-out.) If theEnableSessionState value in the @ Page directive is set to ReadOnly, a request for the read-only session information does not result in an exclusive lock on the session data. However, read-only requests for session data might still have to wait for a lock set by a read-write request for session data to clear.

也就是說,對于頁面,我們可以簡單的在Aspx上的﹤% @Page %>內設置EnableSessionState=”false”,或者EnableSessionState=”ReadOnly”,就可以減輕這種問題的癥狀。前一種設置將會禁止對Session的訪問,而后一種設置則只能允許只讀訪問(你不能夠對Session進行寫操作)。正好,我們剛才提到的IHttpHandler中,對圖片進行處理的部分,是不需要對Session進行寫操作的,但是卻需要讀取Session(根據狀態不同,而需要獲取一些特殊信息),因此可以采取上述的措施來解決問題。

上述參考文獻中,并沒有說明如何對不是Page的IHttpHandler如何設置,這里我特別說明一下。對于自定義的一個實現了IHttpHandler接口的類,只要同時實現IReadOnlySessionState,即可達到EnableSessionState="ReadOnly"的效果。同時,如果沒有實現IRequiresSessionState,則等價于EnableSessionState=”false”的效果。

注意:本文所說的,不是說你在代碼里面有沒有用到Session,Asp.Net不會掃描你的代碼看看有沒有訪問Session,或者在你第一次訪問Session的時候才會加鎖。Asp.Net是在AcquireRequestState事件之前就首先申請這個鎖——只要你的頁面沒有設置EnableSessionState=”false”或EnableSessionState=”ReadOnly”,或者你的IHttpHandler實現了IRequiresSessionState卻沒有實現IReadOnlySessionState接口就會這樣。回復中有很多同學說“只要我不用Session不就行了嗎?”或者“我從來不用Session”,這么想完全是錯誤的,只能說你沒有理解這背后的機制,甚至可能連Asp.net生命周期都不太清楚。Asp.Net之所以在你的頁面代碼開始執行之前就鎖定,是要保證整個環境的完整性,避免部分執行的情況。當然,也正如上面的一些引用中所提到的,你可以自己寫一個SessionProvider而不做任何的鎖工作,但這樣做肯定有不確定性的風險,到時候只能你自己承擔,并且更難復現和調試。

后記:

可能有不少人都知道ASP.NET中的Session是什么,也有很多人知道ASP.NET的生命周期都包含哪些,比如一搜索"PostMapRequestHandler AcquireRequestState",就會出來很多中文的頁面介紹HttpApplication類都有哪些事件,以及生命周期等等。而說到Session會造成特殊情況下站點性能問題的,似乎中文界我這還真是第一篇。當然了,這個問題可能比較偏,因為一般大家都只會處理Aspx頁面而不會處理圖片,甚至用Aspx頁面來動態輸出圖片的機會都比較少,英文的似乎也只有文中提到的唯一一個同志提出來了。

不過,有一個很常見的場景會受這個問題的影響,那就是“驗證碼”。如果驗證碼生成速度很慢,同時客戶端瀏覽器選擇長連接而服務器也接受長連接,則可能會影響在輸出驗證碼完畢之前訪問下一個頁面的速度。反過來,我們也經常可以體驗到,驗證碼出來的速度總是特別慢,總是“蹦”出來的,尤其是當前頁面特別復雜的時候,似乎頁面沒有加載完就總不會出現驗證碼。估計我說的問題就是原因之一。

不過驗證碼的問題還不是特別好解決,因為為了避免信息泄露的問題,驗證碼的答案通常是存在在Session里面的,而通常的設計也是一訪問驗證碼圖片,就會將驗證碼答案寫到Session里面。所以,很不幸,文中提到的那個解決辦法是行不通的,至少不是能夠直接行得通的。這個問題有沒有救藥?有,當然有了。怎么救?哈,那就有勞你自己開動腦筋了,我這里算是點到即止了。

【編輯推薦】

  1. ASP.NET數據庫緩存淺析
  2. ASP.NET源碼之自定義控件DateTimePicker
  3. ASP.NET文件下載函數使用淺析
  4. 構建ASP.NET線程安全集合淺析
  5. ASP.NET線程安全與靜態變量的生命周期淺談
責任編輯:仲衡 來源: 博客園
相關推薦

2009-07-10 09:39:25

ASP.NET網站性能

2009-08-03 10:07:20

ASP.NET Ses

2009-07-20 17:21:43

Session狀態ASP.NET

2009-07-22 14:23:39

URL RewriteASP.NET

2009-07-27 10:18:12

TypeResolveASP.NET

2009-07-27 15:34:11

MembershipASP.NET

2009-07-29 10:19:48

Session StaASP.NET

2009-07-22 18:03:00

ASP.NET ASP

2009-07-22 18:02:26

ASP.NET Ses

2009-04-08 09:58:07

ASP.NET MVCTempData框架

2009-07-27 09:29:38

ASP.NET中Jav

2009-07-27 10:22:16

ASP.NET中Coo

2009-07-28 10:59:13

ASP.NET IIS

2010-08-06 08:50:21

ASP.NET

2009-07-29 14:12:45

ASP.NET tra

2009-07-30 14:03:04

ASP.NET中的se

2009-07-31 12:43:59

ASP.NET MVC

2009-08-05 15:50:13

ASP.NET優點

2009-07-24 13:41:15

ASP.NET AJA

2009-08-05 18:36:12

ASP.NET Che
點贊
收藏

51CTO技術棧公眾號

国产综合激情| 草莓福利社区在线| 免费视频一区二区三区在线观看| 日韩电影在线观看中文字幕| 欧美极品欧美精品欧美| 看电影就来5566av视频在线播放| 日韩主播视频在线| 久久中文字幕国产| 精品视频站长推荐| 成人不卡视频| 一区二区三区日韩在线观看| 裸模一区二区三区免费| 91精品国产乱码久久久久| 欧美日韩1区| 亚洲性视频网址| 337p日本欧洲亚洲大胆张筱雨 | 亚洲av综合色区| 五月婷婷六月激情| 国产一区视频网站| 51久久精品夜色国产麻豆| 国产精品麻豆免费版现看视频| 综合伊人久久| 亚洲免费黄色| 亚洲欧美日韩国产综合在线| 福利精品视频| 中文字幕 国产| 亚洲国产综合在线看不卡| 综合国产在线观看| 日韩网站在线播放| 亚洲乱码一区| 欧洲精品中文字幕| 大陆极品少妇内射aaaaa| a毛片在线观看| 国产农村妇女毛片精品久久麻豆| 国产精品麻豆免费版| 一级黄在线观看| 久久午夜视频| 2019亚洲男人天堂| 日韩少妇高潮抽搐| 国产一区二区三区四区三区四| 色偷偷综合社区| 成人乱码一区二区三区av| 97久久亚洲| 日韩欧美黄色影院| 色呦色呦色精品| 亚洲精品一区三区三区在线观看| 精品女同一区二区三区在线播放| 成年丰满熟妇午夜免费视频| 午夜在线免费观看视频| 国产日韩欧美精品在线| 日本高清不卡一区二区三| 牛牛热在线视频| 久久婷婷国产综合国色天香| 国模精品娜娜一二三区| 蜜桃在线一区二区| 成人97人人超碰人人99| 国产精品一区二区a| 性生活免费网站| 国产精品一区二区在线播放 | 一区二区网站| 日韩欧美成人午夜| 少妇高潮一69aⅹ| 精品国产一区二| 一区二区视频欧美| 欧美一区二区私人影院日本| 污污的网站免费| 粉嫩91精品久久久久久久99蜜桃 | 欧美乱妇40p| 九九视频在线观看| 亚洲经典自拍| 97在线看福利| 无码人妻久久一区二区三区| 首页欧美精品中文字幕| 国产精品久久久久久久9999| 中文字幕在线网站| 九九国产精品视频| 91在线在线观看| 成人毛片在线免费观看| www.在线欧美| 日本一区二区三区四区高清视频| h视频网站在线观看| 亚洲色图制服诱惑| 国产一区二区三区小说| 国产激情视频在线看| 色成人在线视频| 中国黄色片一级| 99精品国产一区二区三区2021| 亚洲精品国产免费| 免费在线观看a视频| 国产精品毛片久久| 久久男人的天堂| 69亚洲精品久久久蜜桃小说 | 亚洲熟妇一区二区| 亚洲精品一级二级三级| 日韩一区二区三区xxxx| 久久精品国产av一区二区三区| 亚洲欧美不卡| 成人网在线视频| 污污视频在线观看网站| 国产精品视频观看| 91国产视频在线| 日韩三级小视频| 美女视频一区在线观看| 福利视频一区二区三区| 日本在线视频www| 飘雪影院手机免费高清版在线观看| 国产欧美一区二区三区沐欲| 97国产精品久久| 怡红院成永久免费人全部视频| 麻豆9191精品国产| 亚洲专区国产精品| 青青草成人免费| 一区精品久久| 国产中文字幕日韩| www.av网站| 久久精品人人做人人爽电影蜜月| 亚州欧美日韩中文视频| 精品少妇一二三区| 成人情趣视频网站| 日韩一区二区免费高清| 91免费视频黄| 中文字幕在线观看1| 精品日产免费二区日产免费二区| 亚洲午夜视频在线观看| 亚洲字幕一区二区| 免费成年人视频在线观看| 澳门av一区二区三区| 久久久五月婷婷| 国产成人免费av| 五级黄高潮片90分钟视频| 国产网友自拍视频导航网站在线观看| 麻豆精品一二三| 久久精品成人欧美大片古装| 欧美婷婷久久| 国产69视频在线观看| 素人一区二区三区| 亚洲精品色图| 久久97精品久久久久久久不卡 | 久久不射网站| 精品国产一区二区三区麻豆小说 | 五月天福利视频| 一区二区三区中文在线观看| 亚洲18在线看污www麻豆 | 99久久久成人国产精品| 国产一区二区三区视频在线观看| 四虎成人在线观看| 99精品在线免费| av免费观看国产| aaa国产精品视频| 欧美黑人极品猛少妇色xxxxx| 国产福利影院在线观看| 女女色综合影院| 欧美午夜在线一二页| 免费看黄色av| 美女mm1313爽爽久久久蜜臀| 一区二区三区四区| 欧美系列精品| www.久久撸.com| 国产一区二区在线视频聊天| 日韩理论片一区二区| 超碰中文字幕在线观看| 欧美日韩国产亚洲一区| 高清国语自产拍免费一区二区三区| 超免费在线视频| 亚洲精品99久久久久| 国产无套丰满白嫩对白| 国产网站一区二区| 亚洲人视频在线| 中文字幕免费一区二区| 粉嫩av免费一区二区三区| 黄网站在线观| 亚洲美女视频网站| 最新国产中文字幕| 亚洲视频图片小说| 欧美丰满熟妇bbb久久久| 日韩视频在线一区二区三区 | 国产精品免费小视频| 2021av在线| 日韩免费观看高清完整版在线观看| 国产一级在线播放| 久久久久久夜精品精品免费| 一区二区三区网址| 欧美日本一区二区高清播放视频| 国内精品国语自产拍在线观看| 成人亚洲欧美| 日韩中文字幕久久| 丰满肉肉bbwwbbww| 在线中文字幕一区| 国产这里有精品| 久久午夜老司机| 99精品视频国产| 亚洲麻豆一区| 亚洲一区二区高清视频| 成人h动漫免费观看网站| 国产成人av在线| aa在线视频| 亚洲天堂av电影| 国产叼嘿视频在线观看| 色综合久久久久综合99| 暗呦丨小u女国产精品| 日本高清视频在线播放| 欧美精品亚洲二区| 国产欧美日韩另类| 中文字幕在线一区二区三区| 97香蕉碰碰人妻国产欧美| 麻豆精品视频在线观看视频| 日本中文字幕网址| 久久亚洲国产| 麻豆久久久av免费| 伊人久久影院| 国产精品自产拍在线观| 免费在线小视频| 九九精品视频在线观看| 川上优的av在线一区二区| 精品国产第一区二区三区观看体验 | 青草青草久热精品视频在线观看| 在线播放蜜桃麻豆| 中文日韩在线观看| 视频国产在线观看| 精品国产1区2区3区| 国产一区二区三区视频免费观看| 欧美视频在线免费| 日韩精品――中文字幕| 一区二区在线观看免费| 亚洲欧美另类日本| 国产欧美一区二区三区网站| 亚洲精品乱码久久| 国产成a人亚洲精| 九九热精品国产| 日本va欧美va欧美va精品| 亚洲熟妇av日韩熟妇在线| 激情六月综合| 男人日女人的bb| 99热在线成人| 亚洲一区二区精品在线观看| 国产中文精品久高清在线不| 久久婷婷人人澡人人喊人人爽| 亚洲一区二区三区在线免费| 成人欧美在线视频| 日韩综合av| 国产在线a不卡| 九九热这里有精品| 国产欧美日韩精品专区| 成人精品国产亚洲| 国产美女精品视频免费观看| 性欧美1819sex性高清| 国产suv精品一区二区三区88区| 国产夫妻在线播放| 69影院欧美专区视频| 女人高潮被爽到呻吟在线观看| 国内精品久久久久伊人av| 成年人在线网站| 国内自拍欧美激情| 在线视频cao| 日韩av电影免费观看高清完整版| 丁香六月激情网| 好吊视频一区二区三区四区| 欧美无砖专区免费| 999亚洲国产精| 免费在线a视频| 丝袜美腿亚洲一区二区图片| 国产一线二线三线在线观看| 日韩不卡一二三区| 福利片一区二区三区| 国产资源精品在线观看| 少妇熟女视频一区二区三区| 成人av电影在线| 无码h肉动漫在线观看| 国产精品情趣视频| 婷婷社区五月天| 亚洲国产日韩av| 一级片免费在线播放| 欧美性大战久久| 99在线观看精品视频| 亚洲国产成人在线视频| 涩爱av在线播放一区二区| 在线播放国产一区中文字幕剧情欧美 | 欧洲成人一区| 亚洲一区二区三| 卡通动漫精品一区二区三区| 日韩av在线电影观看| 99久久夜色精品国产亚洲狼| 人妻av无码专区| 久热精品视频| 一级做a爱视频| av色综合久久天堂av综合| 一级特黄曰皮片视频| 亚洲精品va在线观看| 在线观看亚洲欧美| 欧美日韩亚洲综合在线 | 欧美 日韩 亚洲 一区| 日韩经典中文字幕一区| 国产精品二区视频| 久久午夜羞羞影院免费观看| 日韩欧美国产成人精品免费| 午夜精品爽啪视频| 91激情在线观看| 亚洲精品91美女久久久久久久| 色的视频在线免费看| 韩国福利视频一区| 日韩伦理一区二区| 麻豆91蜜桃| 国内自拍一区| www.com黄色片| 99精品国产99久久久久久白柏| 青青操在线播放| 婷婷综合另类小说色区| 国产69精品久久久久999小说| 欧美成人中文| 污污网站免费看| 99re视频精品| 久久久久成人精品无码| 欧美丝袜自拍制服另类| 熟妇高潮一区二区高潮| 久久中文字幕一区| 亚洲四虎影院| 久久另类ts人妖一区二区| 亚洲综合婷婷| 亚洲36d大奶网| 国产午夜精品一区二区三区四区| 麻豆一区二区三区精品视频| 欧美日韩亚洲综合| 久蕉在线视频| 51午夜精品视频| 欧美调教在线| 国产美女永久无遮挡| 国产精品一二一区| 天天鲁一鲁摸一摸爽一爽| 在线国产电影不卡| 免费人成在线观看网站| 91av国产在线| 国产精品色在线网站| 日韩精品一区二区在线视频| 黄色小说综合网站| 黄色录像一级片| 欧美日韩专区在线| 在线免费观看黄色网址| 日韩av电影在线播放| 久久不见久久见免费视频7| 妞干网在线视频观看| 成人午夜看片网址| 久久久综合久久| 日韩精品一区二区三区视频播放| dy888亚洲精品一区二区三区| 国产免费亚洲高清| 成人3d动漫在线观看| 999在线免费视频| 国产日产精品1区| 黄色一级视频免费看| 亚洲日本aⅴ片在线观看香蕉| 亚洲精品**中文毛片| 欧美一区二区三区电影在线观看| 奶水喷射视频一区| 国产成人av一区二区三区不卡| 日本道色综合久久| 成在在线免费视频| 国产精品久久久久久婷婷天堂 | 伊人久久精品视频| 国精品产品一区| 性欧美18一19内谢| 国产乱理伦片在线观看夜一区| 国产精品白嫩白嫩大学美女| 亚洲成成品网站| 亚洲美女尤物影院| 日本不卡一区| 激情五月婷婷综合网| 亚洲色图综合区| 亚洲第一福利网站| 欧美极品免费| 一区二区日本| 国产成人一级电影| wwwxxx亚洲| 永久555www成人免费| 欧美不卡在线观看| 97视频在线免费| 欧美一区三区| 91视频网页| 一区在线免费观看| 在线免费观看麻豆| 欧美精品成人一区二区三区四区| 一二三四区在线观看| 国产欧美丝袜| 日本美女一区二区| 日本妇女毛茸茸| 亚洲欧美日韩天堂一区二区| 日韩黄色在线| 欧美变态另类刺激| 一区二区中文视频| 日本精品久久久久| 国产成人免费av| 国产精品久久| 亚洲黄色网址大全| 亚洲国产精品成人av| 久久久久伊人| 丁香花在线影院观看在线播放| 国产欧美日韩精品一区| 精品国产免费无码久久久| 欧美一区二区三区免费观看| 小处雏高清一区二区三区| 伊人网综合视频|