成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 基于SQL Server OS的任務(wù)調(diào)度機制詳解

基于SQL Server OS的任務(wù)調(diào)度機制詳解

熱門標(biāo)簽:慶陽地圖標(biāo)注 電銷外呼系統(tǒng)軟件功能 承德地圖標(biāo)注公司名需要花錢嗎 美團地圖標(biāo)注商戶認證注冊 浙江穩(wěn)定外呼系統(tǒng)供應(yīng)商 北京400電話辦理多少錢 咸陽電腦外呼系統(tǒng)運營商 榕城市地圖標(biāo)注 怎么給高德做地圖標(biāo)注
簡介

     SQL Server OS是在Windows之上,用于服務(wù)SQL Server的一個用戶級別的操作系統(tǒng)層次。它將操作系統(tǒng)部分的功能從整個SQL Server引擎中抽象出來,單獨形成一層,以便為存儲引擎提供服務(wù)。SQL Server OS主要提供了任務(wù)調(diào)度、內(nèi)存分配、死鎖檢測、資源檢測、鎖管理、Buffer Pool管理等多種功能。本篇文章主要是談一談SQL OS中所提供的任務(wù)調(diào)度機制。

搶占式(Preemptive)調(diào)度與非搶占式(non-Preemptive)調(diào)度

    數(shù)據(jù)庫層面的任務(wù)調(diào)度的起源是ACM上的一篇名為“Operating System Support for Database Management”。但是對于Windows來說,在操作系統(tǒng)層面專門加入支持數(shù)據(jù)庫的任務(wù)調(diào)度,還不如在SQL Server中專門抽象出來一層進行調(diào)度,既然可以抽象出來一層進行數(shù)據(jù)庫層面的任務(wù)調(diào)度,那么何不在這個抽象層進行內(nèi)存和IO等的管理呢?這個想法,就是SQL Server OS的起源。

    在Windows NT4之后,Windows任務(wù)調(diào)度是搶占式的,也就是說Windows任務(wù)是根據(jù)任務(wù)的優(yōu)先級和時間片來決定。如果一個任務(wù)的時間片用完,或是有更高優(yōu)先級的任務(wù)正在等待,那么操作系統(tǒng)可以強制剝奪正在運行的線程(線程是任務(wù)調(diào)度的基本單位)所占用的CPU,將CPU資源讓給其它線程。

    但是對于SQL Server來說,這種非合作式的、基于時間片的任務(wù)調(diào)度機制就不那么合適了。如果SQL Server使用Windows內(nèi)的任務(wù)調(diào)度機制來進行任務(wù)調(diào)度的話,Windows不會根據(jù)SQL Server的調(diào)度機制進行優(yōu)化,只是根據(jù)時間片和優(yōu)先級來中斷線程,這會導(dǎo)致如下兩個缺陷:

Windows不會知道SQL Server中任務(wù)(也就是SQL OS中的Task,會在文章后面講到)的最佳中斷點,這勢必會造成更多的Context Switch(Context Switch代價非常非常高昂,需要線程字用戶態(tài)和核心態(tài)之間轉(zhuǎn)換),因為Windows調(diào)度不是線程本身決定是否該出讓CPU,而是由Windows決定。Windows并不會知道當(dāng)前數(shù)據(jù)庫中對應(yīng)的線程是否正在做關(guān)鍵任務(wù),只會不分青紅皂白的奪取線程的CPU。 連入SQL Server的連接不可能一直在執(zhí)行,每一個Batch之間會有大量空閑時間。如果每個連接都需要單獨占用一個線程,那么SQL Server維護這些線程就需要消耗額外的資源,這是很不明智的。

     而對于SQL Server OS來說,線程調(diào)度采用的合作模式而不是搶占模式。這是因為這些數(shù)據(jù)庫內(nèi)的任務(wù)都在SQL Server這個SandBox之內(nèi),SQL Server充分相信其內(nèi)線程,所以除非線程主動放棄CPU,SQL Server OS不會強制剝奪線程的CPU。這樣一來,雖然Worker之間的切換依然是通過Windows的Context Switch進行,但這種合作模式會大大減少所需Context Switch的次數(shù)。

    SQL Server決定哪一個時間點哪一個線程運行,是通過一個叫Scheduler的東西進行的,下面讓我們來看Scheduler。

Scheduler

    SQL Server中每一個邏輯CPU都有一個與之對應(yīng)的Scheduler,只有拿到Scheduler所有權(quán)的任務(wù)才允許被執(zhí)行,Scheduler可以看做一個隊SQLOS來說的邏輯CPU。您可以通過sys.dm_os_schedulers這個DMV來看系統(tǒng)中所有的Scheduler,如圖1所示。
 

    圖1.查看sys.dm_os_schedulers

   我的筆記本是一個i7四核8線程的CPU,對應(yīng)的,可以看到除了DAC和運行系統(tǒng)任務(wù)的HIDDEN Scheduler,剩下的Scheduler一共8個,每個對應(yīng)一個邏輯CPU,用于處理內(nèi)部Task。當(dāng)然,您也可以通過設(shè)置Affinity來將某些Scheduler Offline,如圖2所示。注意,這個過程是在線的,無需重啟SQL Server就能實現(xiàn)。

    圖2.設(shè)置Affinity

    此時,無需重啟實例就能看到4個Scheduler被Offline,如圖3所示:
 

    圖3.在線Offline 4個Scheduler

    一般來說,除非您的服務(wù)器上運行其他實例或程序,否則不需要控制Affinity。

    在圖1中,我們還注意到,除了Visible的Scheduler之外,還有一些特殊的Scheduler,這些Scheduler的ID都大于255,這類Scheduler都用于系統(tǒng)內(nèi)部使用,比如說資源管理、DAC、備份還原操作等。另外,雖然Scheduler和邏輯CPU的個數(shù)一致,但這并不意味著Scheduler和固定的邏輯CPU相綁定,而是Scheduler可以在任何CPU上運行,只有您設(shè)置了Affinity Mask之后,Scheduler才會被固定在某個CPU上。這樣的一個好處是,當(dāng)一個Scheduler非常繁忙時,可能不會導(dǎo)致只有一個物理CPU繁忙,因為Scheduler會在多個CPU之間移動,從而使得CPU的使用傾向于平均。

    這意味著對于一個比較長的查詢,可以前半部分在CPU0上執(zhí)行,而后半部分在CPU1上執(zhí)行。

    另外,在每一個Scheduler上,同一時間只能有一個Worker運行,所有的資源都就緒但沒有拿到Scheduler,那么這個Worker就處于Runnable狀態(tài)。下面讓我們來看一看Worker。

Worker

    每一個Worker可以看做是對應(yīng)一個線程(或纖程),Scheduler不會直接調(diào)度線程,而是調(diào)度Worker。Worker會隨著負載的增加而增加,換句話說,Worker是按需增加,直到增加到最大數(shù)字。在SQL Server中,默認的Worker最大數(shù)是由SQL Server進行管理的。根據(jù)32位還是64位,以及CPU的數(shù)量來設(shè)置最大Worker,具體的計算公式,您可以參閱BOL:http://msdn.microsoft.com/zh-cn/library/ms187024(v=sql.105).aspx。當(dāng)然您也可以設(shè)置最大Worker數(shù)量,如圖4所示。

   

    圖4.設(shè)置最大Worker數(shù)量  

    如果是自動配置,那么SQL Server的最大工作線程數(shù)量可以在sys.dm_os_sys_info中看到,如圖5所示。

     

     圖5.查看自動配置的最大Worker數(shù)量

    一般來說,這個值您都無需進行設(shè)置,但也有一些情況,需要設(shè)置這個值。那就是Worker線程用盡,此時除了DAC之外,您甚至無法連入SQL Server。

    Worker實際上會對應(yīng)Windows上的一個線程,并與某個特定Scheduler綁定,每一個Worker只要開始執(zhí)行Task,除非Task完成,否則Worker永遠不會放棄這個Task,如果一個Task在運行過程由于鎖、IO等陷入等待,那么實際上Worker就會陷入等待。

    此外,同一個連接內(nèi)的多個Batch之間傾向于使用同一個Worker,比如第一個Batch使用了Worker 100,那么第二個Batch也同樣傾向于是用Worker 100,但這并不絕對。

    正在運行的任務(wù)所是用的Worker,我們可以通過DMV sys.dm_exec_requests查看正在運行的任務(wù),其中的Task_Address列可以看到正在運行的Task,再通過sys.dm_os_tasks的Worker_Address來查看對應(yīng)的Worker。

    SQL Server會為每一個Worker保留大約2M左右的內(nèi)存,對于每一個Scheduler上所能有的Worker數(shù)量是服務(wù)器的最大Worker數(shù)量/在線的Scheduler,每一個Scheduler所綁定的Worker會形成Worker池,這意味著每一個Scheduler需要Worker時,首先在Worker池中中查找空閑的Worker,如果沒有空閑的Worker時,才會創(chuàng)建新的Worker。這個行為會和連接池類似。

    那么當(dāng)一個Scheduler空閑超過15分鐘,或是Windows面臨內(nèi)存壓力時。SQL Server就會嘗試Trim這個Worker池來釋放被Worker所占用的內(nèi)存。

Task

    Task是Worker上運行的最小任務(wù)單元。只能拿到Worker的Task才能夠運行。我們可以看下面一個簡單的例子,如代碼1所示。

SELECT @@VERSION goSELECT @@SPID go

    代碼1.一個連接上的兩個Batch

    代碼1中的兩個Batch屬于一個連接,每一個Batch中都是一個簡單的Task,如我們前面所說,這兩個Task更傾向于復(fù)用同一個Worker,因為他們屬于同一個連接。但也有可能,這兩個Task使用了不同的Worker,甚至是不同的Scheduler。

    除了用戶所用的Task之外,還有一些永久的系統(tǒng)Task,這類Task會永遠占據(jù)Worker,這些Task包括死鎖檢測、Lazy Writer等。

Task在Scheduler上的平均分配

    新的Task還會嘗試在Scheduler之間平均分配,可以通過sys.dm_os_schedulers來看到一個load_factor列,這列的值就是用于供Task向Scheduler進行分配時,用來參考。

    每次一個新的Task進入Node時,會選擇負載最少的的Scheduler。但是,如果每次都來做一次選擇,那么就會在Task入隊時造成瓶頸(這個瓶頸類似于TempDB SGAM頁爭搶)。因此SQL OS對于每一個連接,都會記住上次運行的Scheduler ID,在新的Task進入時作為提示(Hint)。但如果一個Scheduler的負載大于所有Scheduler平均值的20%,則會忽略這個提示。負載可以通過上面提到的load_factor列來看,對于某個Task運行的時間比較長,則很有可能造成Scheduler上Task分配的不均勻。

Worker的Yield

    由于SQL Server是非搶占式調(diào)度,那么就不能為了完成某個Task,讓W(xué)orker占據(jù)Scheduler一直運行。如果是這樣,那么處于Runnable的Worker將會饑餓,這不利于大量并發(fā),也違背了SQL OS調(diào)度的初衷。

    因此,在合適的時間點讓出Scheduler就是關(guān)鍵。Worker讓出CPU使得其它Worker可以運行的過程稱之為yield。yield大體可分為兩種,一種是所謂的“natural yield”,這種方式是Worker在運行過程中被鎖或是某些資源阻塞,此時,該Worker就會讓出Scheduler來讓其它Worker運行。另外一種情況是Worker沒有遇到阻塞,但在時間片到了之后,主動讓出Scheduler,這就是所謂的“voluntarily yield”,這也就是SOS_SCHEDULER_YIELD等待類型的由來,一個Worker由RUNNING狀態(tài)轉(zhuǎn)到WAITING狀態(tài)的過程被稱之為switching。SQL OS的一個基本思想就是,要多進行switching,來保證高并發(fā)。下面我們來看幾種常見的yield場景:

基于時間片的voluntarily yield大概使得Worker每4秒yield一次。這個值可以通過sys.dm_os_schedulers的quantum_length_us列看到。
每64K結(jié)果集排序,就做一次yield。
語句complie,會做yield。
讀取數(shù)據(jù)頁時
batch中每一句話做完,就會做一次yield。
如果客戶端不能及時取走數(shù)據(jù),worker也會做yield。

SQL Server OS中的搶占式任務(wù)調(diào)度
    對于一些代碼來說,SQL Server會存在一些搶占式代碼。如果您在等待類型中看到“PREEMPTIVE_*”類型的等待,說明這里面的代碼正在運行在搶占式任務(wù)調(diào)度模式。這類任務(wù)包括擴展存儲過程、調(diào)用Windows API、日志增長(日志填0)。我們知道,合作式的任務(wù)調(diào)度需要任務(wù)本身Yield,但這類代碼在SQL Server 之外,如果讓他們運行在合作式任務(wù)調(diào)度這個SandBox之內(nèi),這類代碼如果不yield,則會永遠占用Scheduler。這是非常危險的。

    因此,在進入搶占式模式之前,首先需要將Scheduler的控制權(quán)交給在Runable隊列中的下一個Worker。此時,搶占式模式運行的代碼不再由SQL OS控制,轉(zhuǎn)而由Windows任務(wù)調(diào)度系統(tǒng)控制。因此一個Task的生命周期如果再加上轉(zhuǎn)到搶占式任務(wù)調(diào)度模式,則會如圖6所示。

  
 圖6.一個Task完整的生命周期

每一個Scheduler的任務(wù)調(diào)度

    對于每一個Scheduler的調(diào)度,一個簡單的模型如圖7所示。   

圖7.一個Scheduler的調(diào)度周期模型

小結(jié)
    SQL Server OS在Windows之上抽象出一套非搶占式的任務(wù)調(diào)度機制,從而減少了Context Switch。同時,又有一套線程自己的yield機制,相比Windows隨機搶占數(shù)據(jù)庫之內(nèi)的線程而言,讓線程自己來yield則會大量減少Context Switch,從而提升了并發(fā)性。

您可能感興趣的文章:
  • SqlServer如何通過SQL語句獲取處理器(CPU)、內(nèi)存(Memory)、磁盤(Disk)以及操作系統(tǒng)相關(guān)信息
  • SQL Server 2008 R2占用cpu、內(nèi)存越來越大的兩種解決方法
  • SQL Server誤區(qū)30日談 第12天 TempDB的文件數(shù)和需要和CPU數(shù)目保持一致
  • 我的服務(wù)器SQL2000的sqlserver占用了90%的cpu,怎么查是那個庫?
  • sql server中的任務(wù)調(diào)度與CPU深入講解

標(biāo)簽:新鄉(xiāng) 上海 昭通 重慶 貴州 呼和浩特 拉薩 江蘇

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于SQL Server OS的任務(wù)調(diào)度機制詳解》,本文關(guān)鍵詞  基于,SQL,Server,的,任務(wù),調(diào)度,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于SQL Server OS的任務(wù)調(diào)度機制詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于SQL Server OS的任務(wù)調(diào)度機制詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    51久久精品夜色国产麻豆| 国产乱人伦偷精品视频不卡| av日韩精品| 丝瓜av网站精品一区二区| 欧美视频www| av成人免费在线| 国产又粗又长又黄| 国产精品一区二区久久久| 潘金莲一级淫片aaaaa免费看| 亚洲欧洲日本mm| 黄页网站一区| 天堂在线免费观看| 91免费在线视频| 最新不卡av在线| 久久久久久亚洲精品不卡| 欧美色成人综合| 久久一区二区三区喷水| 国产精品久久999| 国产精品欧美一区二区| 国产精品三级a三级三级午夜| 日本成人黄色免费看| 国产在线观看第一页| 亚洲精品美女在线观看播放| 精精国产xxxx视频在线| 天天插天天狠天天透| 日韩欧美中文在线视频| 国产av一区二区三区传媒| 欧美日韩在线视频播放| 久久久精品久久| 成人午夜视频一区二区播放| 国产情人综合久久777777| 91成人观看| 色婷婷综合缴情免费观看| 欧美日韩免费区域视频在线观看| 最新中文在线视频| 免费av网站在线播放| 国产xxx69麻豆国语对白| 国产精品一区二区你懂得| 粉嫩av性色av蜜臀av网站| 久久久久久久久久一级| 精品免费国产一区二区| 妖精视频在线观看| 色猫猫成人app| 在线中文字幕一区| 久久精品影视| 男人天堂av在线播放| 中国女人做爰视频| 污片在线免费看| 黄漫在线观看| 久久久加勒比| 欧美激情久久久久| 国产理论在线| 日韩在线视频在线观看| 亚洲人成精品久久久| 国产三级三级三级精品8ⅰ区| 欧美色图自拍| 91精品大全| 国产在线观看色| 蜜桃av在线播放| 男人的午夜天堂| 国产精品视频第一区二区三区| 在线观看中文字幕不卡| 精品久久香蕉国产线看观看亚洲| 精产国品一区二区| 日本人妻熟妇久久久久久| 日本高清不卡在线观看| 亚洲精品乱码久久久久久不卡| 在线观看国产精品视频| 国产精品久久午夜夜伦鲁鲁| 久久综合偷偷噜噜噜色| 亚洲最大av网站| 久热中文字幕精品视频在线| 国产免费拔擦拔擦8x在线播放| 黄色网页在线免费观看| 亚洲精品www久久久久久广东| 精品成人一区二区| 成人亚洲成人影院| 永久免费观看精品视频| 超碰在线国产| 亚洲视频精选在线| 26uuu精品一区二区三区四区在线| 国产人与禽zoz0性伦| 99在线精品视频在线观看| 亚洲欧美国产高清| 师生出轨h灌满了1v1| 一区二区激情视频| av在线不卡免费观看| 怡红院男人天堂| 国产成人av免费| 男人天堂网页| 天天综合国产| 欧美人妻精品一区二区免费看| 久久久9色精品国产一区二区三区| 国产精品爽黄69| av日韩久久| 欧美日韩免费一区二区三区视频| 中文资源在线播放| 欧美影院天天5g天天爽| 亚洲视频一区在线播放| 精品一区二区久久| 一区二区福利视频| 亚洲伦理在线| 激情图片qvod| 成人免费直播live| 成人丝袜视频网| 国产精品久久久毛片| 777亚洲妇女| 久热这里只精品99re8久| 久久国产主播| yy111111少妇影院日韩夜片| 欧美人体一区二区三区| 首播影院在线观看免费观看电视| 欧美日韩在线观看一区| 中文资源在线官网| 欧美视频精品在线| 综合av色偷偷网| 在线观看免费播放网址成人| 久久久久久婷| 欧美日韩激情四射| 国产精品igao激情视频| 精品国产一区二区三区忘忧草| 丰满人妻一区二区三区53视频| 一级特黄大欧美久久久| 91精品国产网站| a美女胸又www黄视频久久| 亚洲欧美日韩中文字幕一区二区三区| 日本一本在线免费福利| 欧美日韩不卡视频| 黄色在线播放网站| 桃乃木かなav在线播放| 欧美电影免费观看网站| 91精品国产手机| av不卡免费在线观看| 91日韩视频| 日日干天夜夜| 久操视频在线免费播放| 看av免费毛片手机播放| 国内老熟妇对白hdxxxx| 国产无遮挡又黄又爽| 一级二级三级在线观看| 精品在线免费视频| sm一区二区三区| 国产综合动作在线观看| 亚洲一区二区三区蜜桃| 免费一级做a爰片久久毛片潮| 中文字幕欧美日韩在线| 亚洲经典自拍| 国产成人一区二区三区免费看| 黄页网站免费观看| 超碰97久久国产精品牛牛| 亚洲三级电影全部在线观看高清| 久操手机在线视频| 超碰在线播放97| 日韩极品一区| 少妇激情av一区二区| 蜜桃av久久久亚洲精品| 成人av在线播放网站| 777精品久无码人妻蜜桃| sihu影院永久在线影院| 日本视频www| 91在线观看下载| 久久只有这里有精品| 欧美成人免费在线观看视频| 一区二区三欧美| 亚洲国产精品成人av| 欧美一区网站| 99re8在线精品视频免费播放| 刘玥91精选国产在线观看| 亚洲国产精品狼友在线观看| 国外亚洲成av人片在线观看| 日本va欧美va欧美va精品| 91精品国产综合久久精品性色| 日韩影院在线观看| a级黄色一级片| 国产精品第12页| 狂野欧美性猛交xxxx乱大交| 欧美性猛交xxxx乱大交蜜桃| 一区二区视频在线免费| 伊人一区二区三区久久精品| 小说区图片区图片区另类灬| 欧美综合激情| 成人h片在线播放免费网站| 在线观看国产黄| 亚洲第一会所001| 99精品黄色片免费大全| 2019天天操夜夜操| 国产亚洲字幕| 福利视频网站导航| 亚洲日本va午夜在线电影| 91插插插插插插插插| 天天摸在线视频| 国产影视一区二区| 精品一区久久久| 99久久国产综合精品麻豆| 黑人精品欧美一区二区蜜桃| 精品视频97| 日韩在线观看免费全集电视剧网站| 欧美成人亚洲成人| 一区二区日韩视频| 亚洲av无码一区二区二三区| 无码国模国产在线观看| 久久久久久久综合色一本| 日韩资源在线观看| jk破处视频在线| 欧美激情一区二区三区| 欧美成人三级在线观看| 亚洲精品白浆| 美媛馆国产精品一区二区| 精品亚洲成a人在线观看| 国产青草视频在线观看视频| 精品成人久久| 波多野结衣成人在线| 欧美三级电影精品| 国产欧美精品aaaaaa片| 欧美日本亚洲韩国国产| 欧美日韩视频一区二区三区| 欧美wwwxxxx| 97视频在线观看亚洲| 欧美高清视频在线观看| 欧美精品不卡| 国产丰满果冻videossex| 国产精品后入内射日本在线观看| 欧美私模裸体表演在线观看| yjizz视频网站在线播放| 精品人妻午夜一区二区三区四区| 成人噜噜噜噜| 色琪琪免费视频网站| 国产精品99精品无码视亚| 免费欧美在线| 美女诱惑一区二区| 午夜精品国产精品大乳美女| 亚州欧美在线| 成人欧美一区二区三区在线湿哒哒| 久久国产精品久久久久久小说| 性色国产成人久久久精品| 精品一区二区三区免费| 国产精品1234区| 日本成本人片免费观看| 精品国产一区二区三区| 中国成人一区| 国产农村妇女毛片精品久久| 一本一道久久a久久综合精品| 激情四房婷婷| 国产中文欧美精品| 一本色道久久加勒比精品| 97在线资源在| 欧美怡红院视频一区二区三区| 色偷偷成人一区二区三区91| 久久亚洲二区三区| 风流少妇一区二区| 天天插天天射| 国产精品久久久久久久久久久久久久久| 中文字幕在线视频区| 久久精品一区二区国产| 国产夫妻自拍一区| 亚洲日本在线a| 欧美日韩在线视频免费| 久久久一二三| 高清不卡一二三区| 精品国产1区二区| 亚洲国产精品无码久久久久高潮| 精品无码久久久久久久动漫| 麻豆精品蜜桃视频网站| 免费在线观看黄色av| 日韩中文字幕视频在线观看| 国内精品国产成人| 日韩精品视频中文字幕| 亚洲精品网站在线播放gif| 午夜视频在线网站| 亚洲kkk444kkk在线观看| 天堂在线免费观看视频| 亚洲专区在线视频| 黄色av网站在线| 亚洲欧美中文在线视频| 日本人视频jizz页码69| 日韩精品视频三区| 国产精品一区二区三区av| 欧美最近摘花xxxx摘花| 一本大道久久精品| 97在线电影| 国内精品免费在线观看| 日本一区二区免费视频| 三级资源在线| 亚洲欧美偷拍视频| 国产在线更新| 欧美激情欧美| 久久久精品蜜桃| 成人教育av在线| 欧美天堂亚洲电影院在线观看| 亚洲欧洲中文天堂| 中文字幕免费观看一区| 精品久久久免费视频| 国产浮力第一页| 亚洲三区在线观看无套内射| 不卡视频在线播放| 99自拍偷拍视频| 天堂av网手机版| 一级黄色在线视频| 久久精品在线观看| 久久人人精品| 久久色在线播放| 激情视频网站在线观看| 久久久青草婷婷精品综合日韩| 久久丁香综合五月国产三级网站| 麻豆影视在线| 翔田千里精品久久一区二| 国产69视频在线观看| 81精品国产乱码久久久久久| 看黄色一级大片| 黄网站在线观看永久免费| 色综合久久久久综合| www国产91| 亚洲欧美国产另类| 免费黄色av网站| 亚洲欧美日韩久久精品| 日韩在线观看免费av| 欧美精彩视频一区二区三区| 91国内外精品自在线播放| 一个人看的www视频免费在线观看| 深夜福利视频网站| 亚洲国产成人精品女人久久| 国产精品在线| 成人h动漫在线| 午夜在线观看视频网站| 国产白浆在线观看| 艳妇臀荡乳欲伦亚洲一区| 国产激情自拍| 国模无码一区二区三区|