1. 圣石小子粤语,别样幸福全集,箭在弦上大结局,我想打死你,星光灿烂猪八戒,菲律宾美人鱼50集国语,神探夏洛克 第四季,市委书记晚上不打招呼调研被拦

      Linux系統(tǒng)基礎(chǔ)知識(shí):IO調(diào)度

      時(shí)間:2024-07-26 00:20:43 Linux認(rèn)證

      Linux系統(tǒng)基礎(chǔ)知識(shí):IO調(diào)度

        IO調(diào)度發(fā)生在Linux內(nèi)核的IO調(diào)度層。這個(gè)層次是針對(duì)Linux的整體IO層次體系來(lái)說(shuō)的。從read()或者write()系統(tǒng)調(diào)用的角度來(lái)說(shuō),Linux整體IO體系可以分為七層,它們分別是:

      Linux系統(tǒng)基礎(chǔ)知識(shí):IO調(diào)度

        VFS層:虛擬文件系統(tǒng)層。由于內(nèi)核要跟多種文件系統(tǒng)打交道,而每一種文件系統(tǒng)所實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)和相關(guān)方法都可能不盡相同,所以,內(nèi)核抽象了這一層,專(zhuān)門(mén)用來(lái)適配各種文件系統(tǒng),并對(duì)外提供統(tǒng)一操作接口。

        文件系統(tǒng)層:不同的文件系統(tǒng)實(shí)現(xiàn)自己的操作過(guò)程,提供自己特有的特征,具體不多說(shuō)了,大家愿意的話(huà)自己去看代碼即可。

        頁(yè)緩存層:負(fù)責(zé)真對(duì)page的緩存。

        通用塊層:由于絕大多數(shù)情況的io操作是跟塊設(shè)備打交道,所以L(fǎng)inux在此提供了一個(gè)類(lèi)似vfs層的塊設(shè)備操作抽象層。下層對(duì)接各種不同屬性的塊設(shè)備,對(duì)上提供統(tǒng)一的Block IO請(qǐng)求標(biāo)準(zhǔn)。

        IO調(diào)度層:因?yàn)榻^大多數(shù)的塊設(shè)備都是類(lèi)似磁盤(pán)這樣的設(shè)備,所以有必要根據(jù)這類(lèi)設(shè)備的特點(diǎn)以及應(yīng)用的不同特點(diǎn)來(lái)設(shè)置一些不同的調(diào)度算法和隊(duì)列。以便在不同的應(yīng)用環(huán)境下有針對(duì)性的提高磁盤(pán)的讀寫(xiě)效率,這里就是大名鼎鼎的Linux電梯所起作用的地方。針對(duì)機(jī)械硬盤(pán)的各種調(diào)度方法就是在這實(shí)現(xiàn)的。

        塊設(shè)備驅(qū)動(dòng)層:驅(qū)動(dòng)層對(duì)外提供相對(duì)比較高級(jí)的設(shè)備操作接口,往往是C語(yǔ)言的,而下層對(duì)接設(shè)備本身的操作方法和規(guī)范。

        塊設(shè)備層:這層就是具體的物理設(shè)備了,定義了各種真對(duì)設(shè)備操作方法和規(guī)范。

        有一個(gè)已經(jīng)整理好的Linux IO結(jié)構(gòu)圖,非常經(jīng)典,一圖勝千言:

        我們今天要研究的內(nèi)容主要在IO調(diào)度這一層。它要解決的核心問(wèn)題是,如何提高塊設(shè)備IO的整體性能?這一層也主要是針對(duì)機(jī)械硬盤(pán)結(jié)構(gòu)而設(shè)計(jì)的。眾所周知,機(jī)械硬盤(pán)的存儲(chǔ)介質(zhì)是磁盤(pán),磁頭在盤(pán)片上移動(dòng)進(jìn)行磁道尋址,行為類(lèi)似播放一張唱片。這種結(jié)構(gòu)的特點(diǎn)是,順序訪(fǎng)問(wèn)時(shí)吞吐量較高,但是如果一旦對(duì)盤(pán)片有隨機(jī)訪(fǎng)問(wèn),那么大量的時(shí)間都會(huì)浪費(fèi)在磁頭的移動(dòng)上,這時(shí)候就會(huì)導(dǎo)致每次IO的響應(yīng)時(shí)間變長(zhǎng),極大的降低IO的響應(yīng)速度。磁頭在盤(pán)片上尋道的操作,類(lèi)似電梯調(diào)度,如果在尋道的過(guò)程中,能把順序路過(guò)的相關(guān)磁道的數(shù)據(jù)請(qǐng)求都“順便”處理掉,那么就可以在比較小影響響應(yīng)速度的前提下,提高整體IO的吞吐量。這就是我們問(wèn)什么要設(shè)計(jì)IO調(diào)度算法的原因。在最開(kāi)始的時(shí)期,Linux把這個(gè)算法命名為L(zhǎng)inux電梯算法。

        目前在內(nèi)核中默認(rèn)開(kāi)啟了三種算法,其實(shí)嚴(yán)格算應(yīng)該是兩種,因?yàn)榈谝环N叫做noop,就是空操作調(diào)度算法,也就是沒(méi)有任何調(diào)度操作,并不對(duì)io請(qǐng)求進(jìn)行排序,僅僅做適當(dāng)?shù)膇o合并的一個(gè)fifo隊(duì)列。

        目前內(nèi)核中默認(rèn)的調(diào)度算法應(yīng)該是cfq,叫做完全公平隊(duì)列調(diào)度。這個(gè)調(diào)度算法人如其名,它試圖給所有進(jìn)程提供一個(gè)完全公平的IO操作環(huán)境。它為每個(gè)進(jìn)程創(chuàng)建一個(gè)同步IO調(diào)度隊(duì)列,并默認(rèn)以時(shí)間片和請(qǐng)求數(shù)限定的方式分配IO資源,以此保證每個(gè)進(jìn)程的IO資源占用是公平的,cfq還實(shí)現(xiàn)了針對(duì)進(jìn)程級(jí)別的優(yōu)先級(jí)調(diào)度,這個(gè)我們后面會(huì)詳細(xì)解釋。

        查看和修改IO調(diào)度算法的方法是:

        cfq是通用服務(wù)器比較好的IO調(diào)度算法選擇,對(duì)桌面用戶(hù)也是比較好的選擇。但是對(duì)于很多IO壓力較大的場(chǎng)景就并不是很適應(yīng),尤其是IO壓力集中在某些進(jìn)程上的場(chǎng)景。因?yàn)檫@種場(chǎng)景我們需要更多的滿(mǎn)足某個(gè)或者某幾個(gè)進(jìn)程的IO響應(yīng)速度,而不是讓所有的進(jìn)程公平的使用IO,比如數(shù)據(jù)庫(kù)應(yīng)用。

        deadline調(diào)度(最終期限調(diào)度)就是更適合上述場(chǎng)景的解決方案。deadline實(shí)現(xiàn)了四個(gè)隊(duì)列,其中兩個(gè)分別處理正常read和write,按扇區(qū)號(hào)排序,進(jìn)行正常io的合并處理以提高吞吐量.因?yàn)镮O請(qǐng)求可能會(huì)集中在某些磁盤(pán)位置,這樣會(huì)導(dǎo)致新來(lái)的請(qǐng)求一直被合并,可能會(huì)有其他磁盤(pán)位置的io請(qǐng)求被餓死。因此實(shí)現(xiàn)了另外兩個(gè)處理超時(shí)read和write的隊(duì)列,按請(qǐng)求創(chuàng)建時(shí)間排序,如果有超時(shí)的請(qǐng)求出現(xiàn),就放進(jìn)這兩個(gè)隊(duì)列,調(diào)度算法保證超時(shí)(達(dá)到最終期限時(shí)間)的隊(duì)列中的請(qǐng)求會(huì)優(yōu)先被處理,防止請(qǐng)求被餓死。

        不久前,內(nèi)核還是默認(rèn)標(biāo)配四種算法,還有一種叫做as的算法(Anticipatory scheduler),預(yù)測(cè)調(diào)度算法。一個(gè)高大上的名字,搞得我一度認(rèn)為L(zhǎng)inux內(nèi)核都會(huì)算命了。結(jié)果發(fā)現(xiàn),無(wú)非是在基于deadline算法做io調(diào)度的之前等一小會(huì)時(shí)間,如果這段時(shí)間內(nèi)有可以合并的io請(qǐng)求到來(lái),就可以合并處理,提高deadline調(diào)度的在順序讀寫(xiě)情況下的數(shù)據(jù)吞吐量。其實(shí)這根本不是啥預(yù)測(cè),我覺(jué)得不如叫撞大運(yùn)調(diào)度算法,當(dāng)然這種策略在某些特定場(chǎng)景差效果不錯(cuò)。但是在大多數(shù)場(chǎng)景下,這個(gè)調(diào)度不僅沒(méi)有提高吞吐量,還降低了響應(yīng)速度,所以?xún)?nèi)核干脆把它從默認(rèn)配置里刪除了。畢竟Linux的宗旨是實(shí)用,而我們也就不再這個(gè)調(diào)度算法上多費(fèi)口舌了。

        CFQ完全公平隊(duì)列

        CFQ是內(nèi)核默認(rèn)選擇的IO調(diào)度隊(duì)列,它在桌面應(yīng)用場(chǎng)景以及大多數(shù)常見(jiàn)應(yīng)用場(chǎng)景下都是很好的選擇。如何實(shí)現(xiàn)一個(gè)所謂的完全公平隊(duì)列(Completely Fair Queueing)?首先我們要理解所謂的公平是對(duì)誰(shuí)的公平?從操作系統(tǒng)的角度來(lái)說(shuō),產(chǎn)生操作行為的主體都是進(jìn)程,所以這里的公平是針對(duì)每個(gè)進(jìn)程而言的,我們要試圖讓進(jìn)程可以公平的占用IO資源。那么如何讓進(jìn)程公平的占用IO資源?我們需要先理解什么是IO資源。當(dāng)我們衡量一個(gè)IO資源的時(shí)候,一般喜歡用的是兩個(gè)單位,一個(gè)是數(shù)據(jù)讀寫(xiě)的帶寬,另一個(gè)是數(shù)據(jù)讀寫(xiě)的IOPS。帶寬就是以時(shí)間為單位的讀寫(xiě)數(shù)據(jù)量,比如,100Mbyte/s。而IOPS是以時(shí)間為單位的讀寫(xiě)次數(shù)。在不同的讀寫(xiě)情境下,這兩個(gè)單位的表現(xiàn)可能不一樣,但是可以確定的是,兩個(gè)單位的任何一個(gè)達(dá)到了性能上限,都會(huì)成為IO的瓶頸。從機(jī)械硬盤(pán)的結(jié)構(gòu)考慮,如果讀寫(xiě)是順序讀寫(xiě),那么IO的表現(xiàn)是可以通過(guò)比較少的IOPS達(dá)到較大的帶寬,因?yàn)榭梢院喜⒑芏郔O,也可以通過(guò)預(yù)讀等方式加速數(shù)據(jù)讀取效率。當(dāng)IO的表現(xiàn)是偏向于隨機(jī)讀寫(xiě)的時(shí)候,那么IOPS就會(huì)變得更大,IO的請(qǐng)求的合并可能性下降,當(dāng)每次io請(qǐng)求數(shù)據(jù)越少的時(shí)候,帶寬表現(xiàn)就會(huì)越低。從這里我們可以理解,針對(duì)進(jìn)程的IO資源的主要表現(xiàn)形式有兩個(gè),進(jìn)程在單位時(shí)間內(nèi)提交的IO請(qǐng)求個(gè)數(shù)和進(jìn)程占用IO的帶寬。其實(shí)無(wú)論哪個(gè),都是跟進(jìn)程分配的IO處理時(shí)間長(zhǎng)度緊密相關(guān)的。

        有時(shí)業(yè)務(wù)可以在較少I(mǎi)OPS的情況下占用較大帶寬,另外一些則可能在較大IOPS的情況下占用較少帶寬,所以對(duì)進(jìn)程占用IO的時(shí)間進(jìn)行調(diào)度才是相對(duì)最公平的。即,我不管你是IOPS高還是帶寬占用高,到了時(shí)間咱就換下一個(gè)進(jìn)程處理,你愛(ài)咋樣咋樣。所以,cfq就是試圖給所有進(jìn)程分配等同的塊設(shè)備使用的時(shí)間片,進(jìn)程在時(shí)間片內(nèi),可以將產(chǎn)生的IO請(qǐng)求提交給塊設(shè)備進(jìn)行處理,時(shí)間片結(jié)束,進(jìn)程的請(qǐng)求將排進(jìn)它自己的隊(duì)列,等待下次調(diào)度的時(shí)候進(jìn)行處理。這就是cfq的基本原理。

        當(dāng)然,現(xiàn)實(shí)生活中不可能有真正的“公平”,常見(jiàn)的應(yīng)用場(chǎng)景下,我們很可能需要人為的對(duì)進(jìn)程的IO占用進(jìn)行人為指定優(yōu)先級(jí),這就像對(duì)進(jìn)程的CPU占用設(shè)置優(yōu)先級(jí)的概念一樣。所以,除了針對(duì)時(shí)間片進(jìn)行公平隊(duì)列調(diào)度外,cfq還提供了優(yōu)先級(jí)支持。每個(gè)進(jìn)程都可以設(shè)置一個(gè)IO優(yōu)先級(jí),cfq會(huì)根據(jù)這個(gè)優(yōu)先級(jí)的設(shè)置情況作為調(diào)度時(shí)的重要參考因素。優(yōu)先級(jí)首先分成三大類(lèi):RT、BE、IDLE,它們分別是實(shí)時(shí)(Real Time)、最佳效果(Best Try)和閑置(Idle)三個(gè)類(lèi)別,對(duì)每個(gè)類(lèi)別的IO,cfq都使用不同的策略進(jìn)行處理。另外,RT和BE類(lèi)別中,分別又再劃分了8個(gè)子優(yōu)先級(jí)實(shí)現(xiàn)更細(xì)節(jié)的QOS需求,而IDLE只有一個(gè)子優(yōu)先級(jí)。

        另外,我們都知道內(nèi)核默認(rèn)對(duì)存儲(chǔ)的讀寫(xiě)都是經(jīng)過(guò)緩存(buffer/cache)的,在這種情況下,cfq是無(wú)法區(qū)分當(dāng)前處理的請(qǐng)求是來(lái)自哪一個(gè)進(jìn)程的。只有在進(jìn)程使用同步方式(sync read或者sync wirte)或者直接IO(Direct IO)方式進(jìn)行讀寫(xiě)的時(shí)候,cfq才能區(qū)分出IO請(qǐng)求來(lái)自哪個(gè)進(jìn)程。所以,除了針對(duì)每個(gè)進(jìn)程實(shí)現(xiàn)的IO隊(duì)列以外,還實(shí)現(xiàn)了一個(gè)公共的隊(duì)列用來(lái)處理異步請(qǐng)求。

        當(dāng)前內(nèi)核已經(jīng)實(shí)現(xiàn)了針對(duì)IO資源的cgroup資源隔離,所以在以上體系的基礎(chǔ)上,cfq也實(shí)現(xiàn)了針對(duì)cgroup的調(diào)度支持。關(guān)于cgroup的blkio功能的描述,請(qǐng)看我之前的文章Cgroup – Linux的IO資源隔離。總的來(lái)說(shuō),cfq用了一系列的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)了以上所有復(fù)雜功能的支持,大家可以通過(guò)源代碼看到其相關(guān)實(shí)現(xiàn),文件在源代碼目錄下的block/cfq-iosched.c。

        CFQ設(shè)計(jì)原理

        在此,我們對(duì)整體數(shù)據(jù)結(jié)構(gòu)做一個(gè)簡(jiǎn)要描述:首先,cfq通過(guò)一個(gè)叫做cfq_data的數(shù)據(jù)結(jié)構(gòu)維護(hù)了整個(gè)調(diào)度器流程。在一個(gè)支持了cgroup功能的cfq中,全部進(jìn)程被分成了若干個(gè)contral group進(jìn)行管理。每個(gè)cgroup在cfq中都有一個(gè)cfq_group的結(jié)構(gòu)進(jìn)行描述,所有的cgroup都被作為一個(gè)調(diào)度對(duì)象放進(jìn)一個(gè)紅黑樹(shù)中,并以vdisktime為key進(jìn)行排序。vdisktime這個(gè)時(shí)間紀(jì)錄的是當(dāng)前cgroup所占用的io時(shí)間,每次對(duì)cgroup進(jìn)行調(diào)度時(shí),總是通過(guò)紅黑樹(shù)選擇當(dāng)前vdisktime時(shí)間最少的cgroup進(jìn)行處理,以保證所有cgroups之間的IO資源占用“公平”。當(dāng)然我們知道,cgroup是可以對(duì)blkio進(jìn)行資源比例分配的,其作用原理就是,分配比例大的cgroup占用vdisktime時(shí)間增長(zhǎng)較慢,分配比例小的vdisktime時(shí)間增長(zhǎng)較快,快慢與分配比例成正比。這樣就做到了不同的cgroup分配的IO比例不一樣,并且在cfq的角度看來(lái)依然是“公平“的。

        選擇好了需要處理的cgroup(cfq_group)之后,調(diào)度器需要決策選擇下一步的service_tree。service_tree這個(gè)數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)的都是一系列的紅黑樹(shù),主要目的是用來(lái)實(shí)現(xiàn)請(qǐng)求優(yōu)先級(jí)分類(lèi)的,就是RT、BE、IDLE的分類(lèi)。每一個(gè)cfq_group都維護(hù)了7個(gè)service_trees,其定義如下:

        struct cfq_rb_root service_trees[2][3];

        struct cfq_rb_root service_tree_idle;

        其中service_tree_idle就是用來(lái)給IDLE類(lèi)型的請(qǐng)求進(jìn)行排隊(duì)用的紅黑樹(shù)。而上面二維數(shù)組,首先第一個(gè)維度針對(duì)RT和BE分別各實(shí)現(xiàn)了一個(gè)數(shù)組,每一個(gè)數(shù)組中都維護(hù)了三個(gè)紅黑樹(shù),分別對(duì)應(yīng)三種不同子類(lèi)型的請(qǐng)求,分別是:SYNC、SYNC_NOIDLE以及ASYNC。我們可以認(rèn)為SYNC相當(dāng)于SYNC_IDLE并與SYNC_NOIDLE對(duì)應(yīng)。idling是cfq在設(shè)計(jì)上為了盡量合并連續(xù)的IO請(qǐng)求以達(dá)到提高吞吐量的目的而加入的機(jī)制,我們可以理解為是一種“空轉(zhuǎn)”等待機(jī)制。空轉(zhuǎn)是指,當(dāng)一個(gè)隊(duì)列處理一個(gè)請(qǐng)求結(jié)束后,會(huì)在發(fā)生調(diào)度之前空等一小會(huì)時(shí)間,如果下一個(gè)請(qǐng)求到來(lái),則可以減少磁頭尋址,繼續(xù)處理順序的IO請(qǐng)求。為了實(shí)現(xiàn)這個(gè)功能,cfq在service_tree這層數(shù)據(jù)結(jié)構(gòu)這實(shí)現(xiàn)了SYNC隊(duì)列,如果請(qǐng)求是同步順序請(qǐng)求,就入隊(duì)這個(gè)service tree,如果請(qǐng)求是同步隨機(jī)請(qǐng)求,則入隊(duì)SYNC_NOIDLE隊(duì)列,以判斷下一個(gè)請(qǐng)求是否是順序請(qǐng)求。所有的異步寫(xiě)操作請(qǐng)求將入隊(duì)ASYNC的service tree,并且針對(duì)這個(gè)隊(duì)列沒(méi)有空轉(zhuǎn)等待機(jī)制。此外,cfq還對(duì)SSD這樣的硬盤(pán)有特殊調(diào)整,當(dāng)cfq發(fā)現(xiàn)存儲(chǔ)設(shè)備是一個(gè)ssd硬盤(pán)這樣的隊(duì)列深度更大的設(shè)備時(shí),所有針對(duì)單獨(dú)隊(duì)列的空轉(zhuǎn)都將不生效,所有的IO請(qǐng)求都將入隊(duì)SYNC_NOIDLE這個(gè)service tree。

        每一個(gè)service tree都對(duì)應(yīng)了若干個(gè)cfq_queue隊(duì)列,每個(gè)cfq_queue隊(duì)列對(duì)應(yīng)一個(gè)進(jìn)程,這個(gè)我們后續(xù)再詳細(xì)說(shuō)明。

        cfq_group還維護(hù)了一個(gè)在cgroup內(nèi)部所有進(jìn)程公用的異步IO請(qǐng)求隊(duì)列,其結(jié)構(gòu)如下:

        struct cfq_queue *async_cfqq[2][IOPRIO_BE_NR];

        struct cfq_queue *async_idle_cfqq;

        異步請(qǐng)求也分成了RT、BE、IDLE這三類(lèi)進(jìn)行處理,每一類(lèi)對(duì)應(yīng)一個(gè)cfq_queue進(jìn)行排隊(duì)。BE和RT也實(shí)現(xiàn)了優(yōu)先級(jí)的支持,每一個(gè)類(lèi)型有IOPRIO_BE_NR這么多個(gè)優(yōu)先級(jí),這個(gè)值定義為8,數(shù)組下標(biāo)為0-7。我們目前分析的內(nèi)核代碼版本為L(zhǎng)inux 4.4,可以看出,從cfq的角度來(lái)說(shuō),已經(jīng)可以實(shí)現(xiàn)異步IO的cgroup支持了,我們需要定義一下這里所謂異步IO的含義,它僅僅表示從內(nèi)存的buffer/cache中的數(shù)據(jù)同步到硬盤(pán)的IO請(qǐng)求,而不是aio(man 7 aio)或者linux的native異步io以及l(fā)ibaio機(jī)制,實(shí)際上這些所謂的“異步”IO機(jī)制,在內(nèi)核中都是同步實(shí)現(xiàn)的(本質(zhì)上馮諾伊曼計(jì)算機(jī)沒(méi)有真正的“異步”機(jī)制)。

        我們?cè)谏厦嬉呀?jīng)說(shuō)明過(guò),由于進(jìn)程正常情況下都是將數(shù)據(jù)先寫(xiě)入buffer/cache,所以這種異步IO都是統(tǒng)一由cfq_group中的async請(qǐng)求隊(duì)列處理的。那么為什么在上面的service_tree中還要實(shí)現(xiàn)和一個(gè)ASYNC的類(lèi)型呢?這當(dāng)然是為了支持區(qū)分進(jìn)程的異步IO并使之可以“完全公平”做準(zhǔn)備嘍。實(shí)際上在最新的cgroup v2的blkio體系中,內(nèi)核已經(jīng)支持了針對(duì)buffer IO的cgroup限速支持,而以上這些可能容易混淆的一堆類(lèi)型,都是在新的體系下需要用到的類(lèi)型標(biāo)記。新體系的復(fù)雜度更高了,功能也更加強(qiáng)大,但是大家先不要著急,正式的cgroup v2體系,在Linux 4.5發(fā)布的時(shí)候會(huì)正式跟大家見(jiàn)面。

        我們繼續(xù)選擇service_tree的過(guò)程,三種優(yōu)先級(jí)類(lèi)型的service_tree的選擇就是根據(jù)類(lèi)型的優(yōu)先級(jí)來(lái)做選擇的,RT優(yōu)先級(jí)最高,BE其次,IDLE最低。就是說(shuō),RT里有,就會(huì)一直處理RT,RT沒(méi)了再處理BE。每個(gè)service_tree對(duì)應(yīng)一個(gè)元素為cfq_queue排隊(duì)的紅黑樹(shù),而每個(gè)cfq_queue就是內(nèi)核為進(jìn)程(線(xiàn)程)創(chuàng)建的請(qǐng)求隊(duì)列。每一個(gè)cfq_queue都會(huì)維護(hù)一個(gè)rb_key的變量,這個(gè)變量實(shí)際上就是這個(gè)隊(duì)列的IO服務(wù)時(shí)間(service time)。這里還是通過(guò)紅黑樹(shù)找到service time時(shí)間最短的那個(gè)cfq_queue進(jìn)行服務(wù),以保證“完全公平”。

        選擇好了cfq_queue之后,就要開(kāi)始處理這個(gè)隊(duì)列里的IO請(qǐng)求了。這里的調(diào)度方式基本跟deadline類(lèi)似。cfq_queue會(huì)對(duì)進(jìn)入隊(duì)列的每一個(gè)請(qǐng)求進(jìn)行兩次入隊(duì),一個(gè)放進(jìn)fifo中,另一個(gè)放進(jìn)按訪(fǎng)問(wèn)扇區(qū)順序作為key的紅黑樹(shù)中。默認(rèn)從紅黑樹(shù)中取請(qǐng)求進(jìn)行處理,當(dāng)請(qǐng)求的延時(shí)時(shí)間達(dá)到deadline時(shí),就從紅黑樹(shù)中取等待時(shí)間最長(zhǎng)的進(jìn)行處理,以保證請(qǐng)求不被餓死。

        這就是整個(gè)cfq的調(diào)度流程,當(dāng)然其中還有很多細(xì)枝末節(jié)沒(méi)有交代,比如合并處理以及順序處理等等。

        CFQ的參數(shù)調(diào)整

        理解整個(gè)調(diào)度流程有助于我們決策如何調(diào)整cfq的相關(guān)參數(shù)。所有cfq的可調(diào)參數(shù)都可以在/sys/class/block/sda/queue/iosched/目錄下找到,當(dāng)然,在你的系統(tǒng)上,請(qǐng)將sda替換為相應(yīng)的磁盤(pán)名稱(chēng)。我們來(lái)看一下都有什么:

        [root@zorrozou-pc0 zorro]# echo cfq > /sys/block/sda/queue/scheduler

        [root@zorrozou-pc0 zorro]# ls /sys/class/block/sda/queue/iosched/

        back_seek_max back_seek_penalty fifo_expire_async fifo_expire_sync group_idle low_latency quantum slice_async slice_async_rq slice_idle slice_sync target_latency

        這些參數(shù)部分是跟機(jī)械硬盤(pán)磁頭尋道方式有關(guān)的,如果其說(shuō)明你看不懂,請(qǐng)先補(bǔ)充相關(guān)知識(shí):

        back_seek_max:磁頭可以向后尋址的最大范圍,默認(rèn)值為16M。

        back_seek_penalty:向后尋址的懲罰系數(shù)。這個(gè)值是跟向前尋址進(jìn)行比較的。

        以上兩個(gè)是為了防止磁頭尋道發(fā)生抖動(dòng)而導(dǎo)致尋址過(guò)慢而設(shè)置的。基本思路是這樣,一個(gè)io請(qǐng)求到來(lái)的時(shí)候,cfq會(huì)根據(jù)其尋址位置預(yù)估一下其磁頭尋道成本。首先設(shè)置一個(gè)最大值back_seek_max,對(duì)于請(qǐng)求所訪(fǎng)問(wèn)的扇區(qū)號(hào)在磁頭后方的請(qǐng)求,只要尋址范圍沒(méi)有超過(guò)這個(gè)值,cfq會(huì)像向前尋址的請(qǐng)求一樣處理它。然后再設(shè)置一個(gè)評(píng)估成本的系數(shù)back_seek_penalty,相對(duì)于磁頭向前尋址,向后尋址的距離為1/2(1/back_seek_penalty)時(shí),cfq認(rèn)為這兩個(gè)請(qǐng)求尋址的代價(jià)是相同。這兩個(gè)參數(shù)實(shí)際上是cfq判斷請(qǐng)求合并處理的條件限制,凡事復(fù)合這個(gè)條件的請(qǐng)求,都會(huì)盡量在本次請(qǐng)求處理的時(shí)候一起合并處理。

        fifo_expire_async:設(shè)置異步請(qǐng)求的超時(shí)時(shí)間。同步請(qǐng)求和異步請(qǐng)求是區(qū)分不同隊(duì)列處理的,cfq在調(diào)度的時(shí)候一般情況都會(huì)優(yōu)先處理同步請(qǐng)求,之后再處理異步請(qǐng)求,除非異步請(qǐng)求符合上述合并處理的條件限制范圍內(nèi)。當(dāng)本進(jìn)程的隊(duì)列被調(diào)度時(shí),cfq會(huì)優(yōu)先檢查是否有異步請(qǐng)求超時(shí),就是超過(guò)fifo_expire_async參數(shù)的限制。如果有,則優(yōu)先發(fā)送一個(gè)超時(shí)的請(qǐng)求,其余請(qǐng)求仍然按照優(yōu)先級(jí)以及扇區(qū)編號(hào)大小來(lái)處理。

        fifo_expire_sync:這個(gè)參數(shù)跟上面的類(lèi)似,區(qū)別是用來(lái)設(shè)置同步請(qǐng)求的超時(shí)時(shí)間。

        slice_idle:參數(shù)設(shè)置了一個(gè)等待時(shí)間。這讓cfq在切換cfq_queue或service tree的時(shí)候等待一段時(shí)間,目的是提高機(jī)械硬盤(pán)的吞吐量。一般情況下,來(lái)自同一個(gè)cfq_queue或者service tree的IO請(qǐng)求的尋址局部性更好,所以這樣可以減少磁盤(pán)的尋址次數(shù)。這個(gè)值在機(jī)械硬盤(pán)上默認(rèn)為非零。當(dāng)然在固態(tài)硬盤(pán)或者硬RAID設(shè)備上設(shè)置這個(gè)值為非零會(huì)降低存儲(chǔ)的效率,因?yàn)楣虘B(tài)硬盤(pán)沒(méi)有磁頭尋址這個(gè)概念,所以在這樣的設(shè)備上應(yīng)該設(shè)置為0,關(guān)閉此功能。

        group_idle:這個(gè)參數(shù)也跟上一個(gè)參數(shù)類(lèi)似,區(qū)別是當(dāng)cfq要切換cfq_group的時(shí)候會(huì)等待一段時(shí)間。在cgroup的場(chǎng)景下,如果我們沿用slice_idle的方式,那么空轉(zhuǎn)等待可能會(huì)在cgroup組內(nèi)每個(gè)進(jìn)程的cfq_queue切換時(shí)發(fā)生。這樣會(huì)如果這個(gè)進(jìn)程一直有請(qǐng)求要處理的話(huà),那么直到這個(gè)cgroup的配額被耗盡,同組中的其它進(jìn)程也可能無(wú)法被調(diào)度到。這樣會(huì)導(dǎo)致同組中的其它進(jìn)程餓死而產(chǎn)生IO性能瓶頸。在這種情況下,我們可以將slice_idle = 0而group_idle = 8。這樣空轉(zhuǎn)等待就是以cgroup為單位進(jìn)行的,而不是以cfq_queue的進(jìn)程為單位進(jìn)行,以防止上述問(wèn)題產(chǎn)生。

        low_latency:這個(gè)是用來(lái)開(kāi)啟或關(guān)閉cfq的低延時(shí)(low latency)模式的開(kāi)關(guān)。當(dāng)這個(gè)開(kāi)關(guān)打開(kāi)時(shí),cfq將會(huì)根據(jù)target_latency的參數(shù)設(shè)置來(lái)對(duì)每一個(gè)進(jìn)程的分片時(shí)間(slice time)進(jìn)行重新計(jì)算。這將有利于對(duì)吞吐量的公平(默認(rèn)是對(duì)時(shí)間片分配的公平)。關(guān)閉這個(gè)參數(shù)(設(shè)置為0)將忽略target_latency的值。這將使系統(tǒng)中的進(jìn)程完全按照時(shí)間片方式進(jìn)行IO資源分配。這個(gè)開(kāi)關(guān)默認(rèn)是打開(kāi)的。

        我們已經(jīng)知道cfq設(shè)計(jì)上有“空轉(zhuǎn)”(idling)這個(gè)概念,目的是為了可以讓連續(xù)的讀寫(xiě)操作盡可能多的合并處理,減少磁頭的尋址操作以便增大吞吐量。如果有進(jìn)程總是很快的進(jìn)行順序讀寫(xiě),那么它將因?yàn)閏fq的空轉(zhuǎn)等待命中率很高而導(dǎo)致其它需要處理IO的進(jìn)程響應(yīng)速度下降,如果另一個(gè)需要調(diào)度的進(jìn)程不會(huì)發(fā)出大量順序IO行為的話(huà),系統(tǒng)中不同進(jìn)程IO吞吐量的表現(xiàn)就會(huì)很不均衡。就比如,系統(tǒng)內(nèi)存的cache中有很多臟頁(yè)要寫(xiě)回時(shí),桌面又要打開(kāi)一個(gè)瀏覽器進(jìn)行操作,這時(shí)臟頁(yè)寫(xiě)回的后臺(tái)行為就很可能會(huì)大量命中空轉(zhuǎn)時(shí)間,而導(dǎo)致瀏覽器的小量IO一直等待,讓用戶(hù)感覺(jué)瀏覽器運(yùn)行響應(yīng)速度變慢。這個(gè)low_latency主要是對(duì)這種情況進(jìn)行優(yōu)化的選項(xiàng),當(dāng)其打開(kāi)時(shí),系統(tǒng)會(huì)根據(jù)target_latency的配置對(duì)因?yàn)槊锌辙D(zhuǎn)而大量占用IO吞吐量的進(jìn)程進(jìn)行限制,以達(dá)到不同進(jìn)程IO占用的吞吐量的相對(duì)均衡。這個(gè)開(kāi)關(guān)比較合適在類(lèi)似桌面應(yīng)用的場(chǎng)景下打開(kāi)。

        target_latency:當(dāng)low_latency的值為開(kāi)啟狀態(tài)時(shí),cfq將根據(jù)這個(gè)值重新計(jì)算每個(gè)進(jìn)程分配的IO時(shí)間片長(zhǎng)度。

        quantum:這個(gè)參數(shù)用來(lái)設(shè)置每次從cfq_queue中處理多少個(gè)IO請(qǐng)求。在一個(gè)隊(duì)列處理事件周期中,超過(guò)這個(gè)數(shù)字的IO請(qǐng)求將不會(huì)被處理。這個(gè)參數(shù)只對(duì)同步的請(qǐng)求有效。

        slice_sync:當(dāng)一個(gè)cfq_queue隊(duì)列被調(diào)度處理時(shí),它可以被分配的處理總時(shí)間是通過(guò)這個(gè)值來(lái)作為一個(gè)計(jì)算參數(shù)指定的。公式為:time_slice = slice_sync + (slice_sync/5 * (4 – prio))。這個(gè)參數(shù)對(duì)同步請(qǐng)求有效。

        slice_async:這個(gè)值跟上一個(gè)類(lèi)似,區(qū)別是對(duì)異步請(qǐng)求有效。

        slice_async_rq:這個(gè)參數(shù)用來(lái)限制在一個(gè)slice的時(shí)間范圍內(nèi),一個(gè)隊(duì)列最多可以處理的異步請(qǐng)求個(gè)數(shù)。請(qǐng)求被處理的最大個(gè)數(shù)還跟相關(guān)進(jìn)程被設(shè)置的io優(yōu)先級(jí)有關(guān)。

      【Linux系統(tǒng)基礎(chǔ)知識(shí):IO調(diào)度】相關(guān)文章:

      Linux認(rèn)證基礎(chǔ)知識(shí):linux操作系統(tǒng)目錄結(jié)構(gòu)03-08

      Linux操作系統(tǒng)文件系統(tǒng)基礎(chǔ)知識(shí)03-07

      linux文件系統(tǒng)基礎(chǔ)知識(shí)匯總03-09

      關(guān)于嵌入式Linux系統(tǒng)基礎(chǔ)知識(shí)03-07

      Java入門(mén)基礎(chǔ)知識(shí):Java IO(輸入/輸出)03-07

      Linux系統(tǒng)下ftp的管理03-05

      Linux操作系統(tǒng)概述03-06

      Linux文件系統(tǒng)簡(jiǎn)介02-27

      Linux認(rèn)證系統(tǒng)管理:linux下搭建ftp03-08

      主站蜘蛛池模板: 地球上的星星2电影| 《极乐宝鉴》在线观看| 槟郎西施| 《新上任的秘书》| 大喜临门| 激战丛林电影免费观看| 银魂完结篇| 十大奇冤高清| 修理工的欲望电影| 亲爱的电视剧免费播放| 男女一起愁愁愁第一集在线观看| 大家的歌| 重庆骂人顺口溜| 高清放射危机未删减| 金蝉脱壳| 三年在线观看高清免费| 花样少年少女| 小萍的性荡生活第24集| 春雨电影大全免费观看动画版| 高压监狱伦理片| 宇宙战舰大和号复活| 苍井空 厨房里的激战| 八妻子影院免费观看电视剧高清| 诛烬枭亡 电影免费观看| 站着再来一次第26| 蜜桃成熟时百度百科| 变装俱乐部| 嘻哈斗牛犬| 免费拗女网站1300部| 美国式的家庭忌讳4大结局| 谁是真英雄电视剧| 妻子6| 金八天国在线| 婚姻攻防战| 加藤ツバキ| 日出免费| 《村枝》雨晴剧情| 贤者之爱 豆瓣| 新金银1-5普通话免费播放| 电影《偷香》完整版| 需要爸爸播种 - 在线追剧| 当我的指尖触碰到你的温度| 恶鬼2023韩国电视剧在线观看| 修文县| 把娇妻借给朋友泄欲4| 《特殊游泳集体》免费观看下拉式| 新三国免费观看1-95集普通话| 天使情人| 意大利满天星《人猿泰山》在线播放| 美女脱得一光二净的全身图片| 隐形帽子在线观看| 刑警使命电视剧全集免费观看 | 女律师的堕落伦理电影| 《叵测》| 《疾速追杀:芭蕾杀姬》| 琉璃免费观看| 双城生活全集下载| 《卖房子的女销售》台湾| 契约婚姻| 女超人(麦乐迪)| 下半场 微电影| 疯狂的石头电影| 识骨寻踪第四季| 死神来了3的d9版| 销售的销售秘密2HD中字国| 伍六七之记忆碎片免费观看| 木下檩檩子在线观看| 新平凡的世界电视剧| 卧谈会有趣| 维京传奇第三季| 妈妈的罗曼史| 私人航空免费观看完整版在线播放| 《汤摇庄的幽奈同学》| 《女版007满天星》电影在线观看| 满江红电影张艺谋免费观看?| 《迪拜的女孩2满天星》在线观看| 浮生影视在线观看高清免费| 木下凛| 大梦西游2铁扇公主| 幸福的黄手帕完整版| 《激战丛林》完整版美国在线播放| 出轨的女人粤语| 鬼吹灯之天星术日语| 素食主义者电影| 木下檀檩子电影在线观看| 韩剧她的私生活| 拥抱太阳的月亮大结局| overflwer全集免费播放| 杉杉来了33| 八戒,八戒网剧在线观看7| 迪加奥特曼动画片| 搞笑漫画日和 中文| 电影《财阀夫人》免费观看| 巨人捕手杰克快播| 折腰刘宇宁电视剧在线观看| 豚鼠系列血肉之花| 《黑暗森林》莉娜安德森| 以家人之名免费观看| 1995年人猿泰山意大利版| 机动战士敢达| 《种马3》电影免费观看| 朋友的妈妈在线观看完整版| omoflow第一季全集在线播放| 幸福到万家电视剧免费观看完整版| 将军夫人:夫君护短全集免费| 美丽的小蜜蜂美国版5娃娃脸| 《脱轨》电视剧| 战神3爱神| 国风按摩院第二部| 月上朝颜电视剧免费观看完整版| 丽江小倩歌曲| 销售房子的电影| 夏日里的春天优酷| 《四大美人之貂蝉》| 撕掉美女衣| 九年级英语unit9| 《辞职欢送温泉之旅》日剧| 泰罗 奥特曼| 《年经继拇2》| 雨花石原唱| 斯巴达(成大版)1-2电影| 嘉科米妮| 四少妇按摩无码高潮片| 埃洛伊塞| 战狼8欧式少女全部在线视频观看| 美国禁忌结局- 3| 机甲女神| 罗马第一季| 穆桂英挂帅免费| 惊天大劫案电视剧全集在线观看 | 《常盘贵子恶魔之吻》| 哪吒降妖记电视剧| 浴火奔腾浴红火| 色戒电影完整版观看免费高清| 瓜达卢佩的玫瑰未删减版| 鬼同你ot国语| 秘密爱韩国电影完整版免费观看| 沉香如屑电视剧40集全免费观看| 军情观察室直播| 《法国空姐6大结局》在线观看| 无名世界的终结电影免费观看| 活佛济公第二部| 学长的大香肠好吃吗| 受益人 电影| 我老婆是大佬2| 电影《剑雨》免费观看| 间谍过家家第二季在线观看免费| 热搜女王| 唐人街探案3 提取码| 大宋惊世传奇电视剧 | 衢州新闻联播| 需要爸爸播种| 我的减肥日记| 一代皇后大玉儿| 金玫瑰洞| 爱情不设限第一季无删减版在哪看| 雪中悍刀行38集在线观看| 最美丽的第七天| 名侦探柯南剧场版12| 此刻无声| 马龙结了三次婚| 三哥手机| 反黑英雄电视剧免费观看国语全集| 赖猫的狮子倒影免费观看星辰网| 出包王女1| 蟒蛇之灾1| 停不了的爱 刘德华| 地道战全集| 六国紧急开会向朝鲜施压| 《犯罪现场 Zero》| 说出你的故事 金星| 重庆谍战电视剧全集免费观看 | 金瓶梅在线观看免费版电影 | 名门望族粤语| 电影双人调情按摩术| 豫剧刘墉下南京全集| 大唐来的苏无名| 卖房子的女销售电影| 我的不良义姐动漫第2集免费| 熊出没之回家过年| 侦探语录免费观看完整版| 高清《女囚》电影| 《小小诊所》| 恋恋茶园电视剧免费| 男生女生一起愁愁愁电视剧在线观看全集 | 斗罗大陆在线全集免费观看| 怒晴湘西电视剧全集免费观看| 塔日酒店未删减版在线观看| 幸福小丈夫全集| 韩国电影老公的上司来家里| 金银瓶1-5hd普通话2| 巴拿马裁缝| 一愁愁电视剧免费观看完整版| bad boy特攻| 黑白配高清完整版在线观看免费| 十月初五的月光 电影| 鬼吹灯昆仑神宫| 做aj的视频大全电视剧演员表| 迷人的保险销售员| 白峰电影高清无广告看| eeuss在线电影院| 汪涵怎么老成这样了| 战后之战30集免费版| 青岛打人路虎女司机致歉| 潜伏 电视剧| 冻结地球全集观看| 裙子里面有里野兽| 弹起我心爱的土琵琶简谱| 高清《安居》电视剧| 东北黑道风云二十年电视剧| 儿子与情人免费播放| 电影上位在线观看| kaera uehara| 小猪佩奇爆笑版视频| 饼干警长| 春雨电影大全免费观看高清| 沙城到北京| 摇滚年代| 非常了得20110824| 双胞胎 电影| 扫毒免费观看完整版电影| 我的妻子韩剧电视剧免费观看| 黑人大鸡巴干俄罗斯美女彩蝶视频| 伤不起的简谱| 需要爸爸的种子播种免费观看| 长相思第一季全集免费完整版高清| 《第一次的辣妹》动漫| 坎贝奇品味人生完整版免费| 莫妮卡版《爱我几何》在线观看 | 黑社会之龙城岁月| 浴火奔腾浴火红| 战略大作战| 《揉胸按摩》免费观看| 宝贝女孩电影免费观看完整版高清 | 地下交通站二部全集免费观看 | 爱恋2015无减删高清| 大江大河3免费观看下载| 我是特种兵2片尾曲叫什么| 公之浮之5HD高清版| 产妇大出血院长深夜跨院摇人| 卖保险套的销售无删减版| 为你我受冷风吹 胡彦斌| 义姐是不是良妈妈喂养动漫| 铁证悬案第五季| 爸爸的种子bd| 变形金刚3国语版| 美景之屋6未增减板1| 爱情有烟火免费观看| 公之浮之手电影免费观看2023年上映的| 美味的服务| 21世纪爱情指南免费版 | 女超人满天星在线观看| 但行好事短剧免费观看全集| 罗丽星克迷宫1997普通话版| 男生女生向前冲2024| 姐姐真漂亮5韩剧免费观看| 凤与朝电视剧免费观看| 娜娜米什么梗| 妖精的尾巴160| 男女愁愁愁在线观看视频| 赴汤蹈火2025免费观看| 酒店1-100集在线观看| 无颜之月在线观看一到五集电视剧| 致我们终将逝去的青春| 照亮你电视剧在线观看| 王贵与安娜剧情| 不输男儿郎:将门嫡女沙场全集免费| 少帅全集完整版免费 | 哥你好在线观看完整版免费高清策驰| 欧式少女18集视频大全| 《安全屋》| 修理工艳遇日本| 怒火街头1| 别墅轮换2的剧情简介| 甄嬛传18集| 菲梦少女第三季| 电影《天堂的张望》| 余罪第三季高清免费播放张一山| 17·3电影免费观看完整版| 离婚律师结局| 莫妮卡爱我几何全集免费看| 新金瓶梅2qvod| 高压监狱2无删减1080P| 我老婆是大佬3| 小猪佩奇的视频| 中苏外交档案解密7| 孙颖莎1比3穆克吉| 播放去年夏天| 泰剧在线观看| 夫妻的世界完整版| 周星驰电影大全国语版| 哇嘎嘎电影播放免费观看| 高清好运未删减| 密探未删减| 电视剧猎毒人免费版在线观看| 热辣滚烫在线免费观看| 决战风铃渡全集免费观看| 新三国全部95集免费| 将界截取了一小段05| 紫禁惊雷下载| 禁忌3年转一代| 诈欺游戏3| 艾曼纽非洲之旅| 女婿难当大结局| 义姐是不是良喂养1-2集动漫| 寸止挑战在线观看| 男乒乓球团体赛决赛直播| 爱情公寓3第14集| 八国联军电影| 插曲的痛60全集免费观看无马赛克| 女教师被入侵| 京香在线观看| 乌龟也会飞| 缠论教你炒股票108课| 一首歌让你带回去| 性8地址| 美景之屋6手机在线免费观看| 苹果完整版| 韩国荷尔蒙爆发的视频原声 | 青青珊瑚岛| 朱莉安妮售楼女王电影| 警察故事3电影| 涩情影院| 天龙八部24| 请赐我一双翅膀免费观看全集| 带队横扫全球:电竞女王短剧全集| 电视剧城中之城| 侵犯高傲女教师电影白峰美羽| 电视剧 潜伏| 渔夫荒野国语完整版| 街机西游记| 荒野求生21天无删减版什么时候出| 星落凝成糖免费完整版| 诱人的教师在线完整版| 意大利《激情丛林》| 如果一生有你陪| 丈夫的上司来家拜访韩国| 幽灵战队| 有情饮水饱国语| 高清法警小队 第一季| 电视剧宫锁连城| 三年电影在线观看高清| 黑帮大佬和我的365天 第二| 战狼999在线观看免费版高清| 因为遇见你电视剧全集免费| 李思蓓三级| 高压监狱2免费观看| 再见美丽小姐国语版| 4名少妇精油按摩1| 极速传说2| 需要爸爸播种子电影在线播放| 坏蛋先生2 电影| 新一剪梅| 刺激大片| 秦牛正威为不妥回复致歉| 斯巴达HR版| 《想享用朋友的妻子》电影| 同桌的你高清完整版| 杨春霞乱云飞| 电影《汤唯》免费播放| 安姨在线| 芭芭拉保罗3大结局| 偷窥 羽田圭子| 兵变1938| 电视剧今生有你全集| 战狼6欧式少女免费观看高清| 辣妈正传电视剧| 陈宝莲电影《满天星》在线播放 | 金瓶双艳2| 黄金小子| 人猿泰山真人版1995年| 海棠依旧电视剧全集免费观看完整版 | 汪峰春天里| 桌球天王国语| 渔夫的荒淫艳史| 依家有喜电视剧| 三方国界在线观看完整免费版| 急先锋免费观看完整版电视剧| 创业电影| 千金赤子板栗无删减版免费观看视频| 黄河在咆哮 电视剧| 铿铿锵铿锵锵锵免费观看| 海扁王2电影| 美国电影《飘》免费观看中文| 孤舟 电视剧| 檀至白露| 女版战狼10高清免费看| 香山叶正红电视剧| 愉悦与痛苦| 四位大学位按摩记的背景故事 | 电影《牙医姐妹》正片牙医姐妹电影| 小东西逃跑是要受到惩罚的| 拥抱太阳的月亮国语版| 恋爱暴君ova2下载| 电视剧我是传奇在线观看| 《年轻女教师5| 我生命中最后的绯闻| 爱情保卫战 海霞姐| 外国电影爸爸的种子在线看| 爱情公寓3演员| 韩国伦理片想要爸爸的种子在线观看| 都市猎人未删减完整版| 黑白配国语高清在线观看免费| 迷人的保姆 中文在线| 死侍字幕| 除却巫山彭丹未删减版| 杨恭如被污辱的片段| krosskyden壮志凌云| 林志炫翻唱| 小飞象电影| 《孽债》第二部视频,需要爸爸播种 | 上原瑞穗百度云| 迷情庄园| 侯玉洁牧师讲道的全部视频| 蛮好的人生36集完整版| 重生八零:媳妇有点辣短剧全集| 桔子mv在线观看免费| 行尸走肉第一季完整版| 木下檀檩子《女婿》| 保姆特别待遇8| 绝地引爆| 凌云壮志女版(法国)高清免费| 老千全集完整版免费观看| 不戴胸罩叫邻居修灯泡| 帮帮我爱神 下载| 安纳塔汉岛| 男女一起愁愁愁电视剧在线观看 | 疯狂的动物城| 爷爷吃我小扇贝| 大陆剧以法之名在线观看| 1986牙医在线观看完整版| 寄宿公寓在线观看完整版| 门徒在线观看| 堕落的女律师电视剧免费观看 | 少女尖叫之夜高清观看动漫| 年轻人到底有多爱辣条| 《满天星》莫妮卡满天星中多少时间| 切糕段子| 雪中悍刀行电视剧剧情介绍| 虎美玲新白蛇传| 苍茫的天涯是我的爱电影 | 美国总统就职典礼直播| 欢乐家长群2 电视剧| 空盆来蛇原理| 猎罪图鉴电视剧| 高压监狱2免费观看完整版 | 风味人间第一季全集免费观看| 高清原始战争| 妈妈儿子高清免费版电视剧在线观看金瓶梅 | 含泪活着下载| 黑暗侵袭1电影| 好姑娘6影视剧在线观看| 印度19名官员被热死| 电影《绿茵星妈》免费观看| 地下城与西游记全集| 人间至味是清欢| 成龙电影大全免费| 2001太空漫游免费| 部长出差的日子免费观看| 婶婶免费观看| 沃客装修| 《LX司令》| 霍比特人 百度影音| 谁和她睡觉了剧情| 爱情而已电视剧免费观看完整版| 粉红的窗帘| 禁忌结局-9| 白百合日本大尺度电影呈现| 男大当婚大结局| 女律师替夫还债电影在哪看| 幸福爱人电视剧全集| 安多县| 爱的二八定律电视剧免费播放| 斗破苍穹第175集免费播放| 欧美伦理电影,精彩程度满天星!《V酒店第一季》1 - 3集 | 欲魔电影| 洗衣机修理工艳遇电影| 王凯主演的电视剧大全(全部)| 《和讨厌的部长出差旅》在线观看| 喜爱夜蒲dvd| 我的老婆是学生会长第一季| 《美丽妻子替弟还债韩国| 诱人的飞行韩国电影| 360大佬爱上我第三季| 乌龙元首| 开江县| 朋友的母亲韩剧| 第十九层电视剧| 训服小峓子HD中文| 御前侍卫免费阅读| 多瑙河之波电影免费观看| 米丽娅姆莱昂内1993在线观看| 外景拍照姿势| 爱他就去追| 人渣本愿| 还珠格格第3部全集| 韩剧《下属的未婚妻》主演名单表 | 富贵男与贫穷女| 飚车电影| 地狱之歌ova高清| 法国版《少女感》| 爱的定义泰剧| 踏血寻梅电影完整观看| 烈酒电影满天星| 王曼昱对张本美和的比赛| 高清午夜的倾心旋律未删减| 《维修工》王李丹妮电影| 一线完整版在线观看| 钢铁巨人| 和讨厌的部长一起出差在线观看| 为歌而赞第二季在哪看| 惊天大劫案电视剧全集在线观看| 拳击手在线观看| 赤裸特工| 《顶级人生》电影| 深海x异种| 美食的俘虏146| 牙医姐妹在线播放| 年轻的女同学BD高清在线观看| 高清《九重紫》在线观看电视剧| 同学的妈妈双字ID| 新生在线观看电视剧免费| 《农场主的三个女儿》| 出租车3| 养女电视剧全集| 21世纪爱情指南免费版8集剧情| 疯狂女孩1982意大利出版| 爱情真善美全集80| 火蓝刀锋有多少集| 1985美式保罗聚家聚会| 电视剧《下海》| 三十而立电视剧全集| aj电视剧免费观看全集完整版承磊 | 《亚述家族》第一季在线观看| 祝福祖国歌谱| 五月天激情小说网| 加油吧高考生短剧免费观看| 国家命运剧情| 美国电影《女海盗》| 长津湖电影完整版免费观看西瓜| 汉代风云人物之吕后| 女律师替夫还债50万电影叫什么 | 初尝禁果| 奇思妙想周莹博士王俊凯| 与君歌在线观看| 总统之夜1997满天星版| 奈何boss要娶我2| 锦月如歌在线观看电视剧高清| 美国ZzzOooxxx视频| 女友年轻的继牳2| 尸变重生秘籍| 丈夫的属下中字2| 变身小姐 豆瓣| 非常突然| 毒医肥尸| 哈哈哈哈哈第五季免费观看完整版| 伍佰在苏州演唱会累惨了| 宝清县| 金太郎的幸福生活电影版 | 盛夏晚晴天全集在线观看| 私人女性监| 转世传说| 有人干睡过劳荣枝| 足球女老板满天星版安娜| 特邀送货员在线播放| 《刀尖》在线观看| 暴躁少女完整版在线看| 新娘之无悔的爱| 独立日 高清| 啄木鸟《荣誉法则》凯登斯托雅| 沙漠求生电影免费观看| 电影奋斗| 理发店里的特殊待遇4在线观看| 西环浮尸电影免费观看完整版| 你比星光美丽电视剧免费观看最新| 酒店刺激战场免费观看| 爱上电视剧| 雨花石原唱| 我推的孩子动漫| 美丽的谎言| 非你莫属2013| 一战到底主持人| 插曲45分钟免费观看电视剧第6集| 钢之炼金术师fa60| 大头儿子小头爸78集| 巨乳女医生的特殊治疗电影| 《九条的大罪》| 咕咕藏族电影| 三年大片大全免费国语版观看| 《修理工的绝遇》拉昔| 辩护人 韩国电影| 男按摩师一级免费电影| 风水弃少:改运旺家短剧全集| 西安董雷案| 2010g版法国空少| 新济公活佛 电视剧| 我的特一营| 潘多拉之镜| 时光正好电视剧免费观看全集高清 | 幻影忍者动画片| 喜爱夜蒲3国语完整版| 芭比动画片国语版| 错过你的那些年| 姨母家的客厅完整版| 机械师2高清完整版| 乡村爱情变奏曲高清| 根河市| 单片机最小系统原理图| rerese| 法国空姐2023(多塞尔航空)| 事物的秘密2浴室吃奶的更新时间 爱唯侦察2024年最新合集 | 《在姨母家的客厅》| 电视剧大漠枪神| 天使的诱惑| 别墅轮换1攻略| 《黑悟空》遭抵制风波升级| 姨母家的客厅完整版| 鬼吹灯之怒晴湘西| 海贼王969| 我的xl司令第一季全集| 小猪佩奇全集免费版| 五月槐花香免费播放| 《驯服小峓子3》完整版| 似曾相识短剧免费观看| 斗破苍穹第121集完整版观看 | 快乐驿站冯巩| 女房东的秘密 韩国电影在线观看 女员工免费观看中文字幕 | 敦煌夜谭| 龙泉市| 深圳卫视决胜制高点| 黄英山歌好比春江水| 老婆5| 《鬼咬鬼》高清国语版| 巨熟乳波霸a 田中瞳| 激情丛杕| 食客国语| 黄百韬简介及最后结局| 需要爸爸种子 - | 杨春霞乱云飞| 白日梦我电视剧全集免费观看高清| 第二个农场姑娘们| 苦尽甘来韩剧免费观看影视大全| 猩球崛起2:黎明之战电影 | 三少爷的剑电视剧| 韩国为了皇帝| 卖百科全书的人完整版| 电视剧心跳| 一代女皇武则天电影版在线观看| 欧美经典黑白配在线观看| 八戒八戒电影在线观看| 名侦探柯南迅雷看看| 《缚雨》游戏| 硬核亨利在线观看免费高清| 人民的名义18集| 绝强驱魔师花子| 超凡蛛蜘侠2| 流金岁月在线观看| 两个人免费观看日本的完整版| 东方侠客免费观看全集| 疯狂试爱荷尔蒙6| 高清《熊出没之熊心归来》电影| 友人母在线播放BD高清| 千斤肉板栗1985| 尖东毒玫瑰| 地久天长电影剧情详细介绍| 一起愁愁免费观看视频播放| 极限追捕电视剧免费观看完整版| 你微笑时很美免费观看全集完整版| 吴辰君电视剧| 粉红大白菜在线观看电视剧免费| 狮子王原版英文版免费观看| 《极乐宝鉴2》叶子楣在线观看| 善良的子1免费观看| 神探狄仁杰四部全集免费| 本能1电影| 高压监控| 郑钦文美网第三轮比赛时间| 《激战丛林》罗莎卡拉乔洛在线播放 | 电影苹果在线观看| 快说我和你老公谁厉害| 《女律师的堕落》HD| 361电影院| 刘亦菲合成10p| 《被下药强辱的妻子| 《脱轨》电视剧| 贵妇人街电影版免费观看中文| 养殖致富:满圈牛羊全集免费| 小辣椒美国伦理| 天堂之吻电影版在线看| 小羊没烦恼3000一晚| 三年成全在线观看免费国语| 喜人奇妙夜2| 极限挑战第三季完整版在线观看| 美国版荷尔蒙6观看| 妮可基德曼 大尺度| 灵与肉1992完整版观看电影| 行尸走肉大结局| 需要爸爸的种子免费观看电视剧意大| 仙剑2电视剧| 明星的恋人电视剧| 《女销售员的销售秘密2》| 情靡全集免费观看| 大胸女友在线| 黑白禁区在线观看视频电视剧| 《教室的秘密》大结局| 冬日的什么呀,春日的什么呢电视剧 | 名侦探柯南579| 海达电影| 插曲的痛第60集全集免费播放| 卖房子的女销售3免费 | 《俘虏之锁》第一集| 妈妈母乳1-5H| 未来影院手机版在线播放版| 冷血人狼国语电视剧免费观看高清| 法国空乘08| 地铁跑酷怎么获得杰克| 闪耀的她全集32集在线观看| 法国空姐6大结局| 印尼屠杀华人| 东京一店长闻到煤气味后点了根烟| 陆贞传奇20| 坏妻子便利店被欺负后的故事梗概 | 壮丁也是兵演员表| 美姐妹牙医观看| 韩剧《财阀儿媳》| 活死人之日| 《晚安为我而眠》免费观看全集| 策驰影院免费| 夺命巨鲨| 乡村食叔| 铿铿铿锵锵锵锵免费| 今夜无眠| 高清《梦想成为魔法少女》| 我在伊丽莎白截取了一个小片段| 金瓶梅电视剧第5集电视剧| 海上嫁女记剧情| 通缉玉面飞狐| 伊比利亚三部曲在线观看| 现在就告白楠楠| 斗罗大陆210| 我赵日天不服| 漂亮的小姨在线观看| 陈观泰电影| 保卫延安| 伊波拉病毒2普通话国语| 非诚勿扰22期| 周生如故在线观看| 不能说的夏天电影| 蓝色帽子隐身的韩国电影| 哈尔滨才子哥| 二泉映月歌曲| 《越南俘虏营》在线观看| 三年大片在线观看免费播放第14集预告 | 电影《美味快递员2》在线观看完整版| 斗罗大陆103集免费观看| 海盗2:鬼怪的旗帜 电影在线观看| 丫鬟主母:侯府逆袭短剧全集 | 罗密欧与朱丽叶电影| 当幸福来敲门电影完整版| 《康体水疗》1978完整版在线观看| 年轻的妺妺3韩国A片| 藏海花在线| 女超人(满星版)麦乐迪观看| 柯震东郭采洁| 《淋漓尽致3》| 请你原谅我分集剧情| 冢本战争电影免费观看| 电影《天堂的张望》| 老表你好嘢国语全集| 四喜电视剧40集免费播放| 爱丫爱丫全集国语在线看 | 龚玥菲在线观看免费| 姨母辅导高清版| 365天今时之欲资源| 鬼吹灯之天星术完整版免费观看| 奋斗全集观看| 快播韩国电影| 爱上黑道女友完整版| 双女任务电影免费观看| 给我一支烟 歌词| 消失的她完整版| 漂浪青春插曲| 堕落的女律师电视剧免费观看| 萨顶顶快去歌手顶一顶| 百万新娘之爱无悔53| 人世间49集电视剧全集免费观看| 牙医姐妹在线观看免费观看| 五亿探长雷洛传2:父子情仇| 寒山令电视剧全集| 猪猪侠超星五灵侠| 满天星HD版女超人在线| 愤怒的小鸟2在线观看| 祥娃娃一家子| 电影《血战诺门坎》免费观看全集| 《孽债》第二部视频,需要爸爸播种| 郡主万福电视剧免费观看| 艾米加油主题曲| 保山市| 白雪公主成人版在线免费观看 | 黑暗荣耀第一季无删减在线观看| 花子vs倔强驱魔| 爱的二八定律在线观看| 禁室培欲终结篇| 香肠派队下载游戏| 97社免费| 黑太阳南京大屠杀 1995 张良| 困惑的浪漫百度影音| 初代奥特曼国语全集| 美国禁忌睫毛膏高清版汉字| 东北女不戴套在线看| 结婚吗好的电视剧| 南海飞行员牺牲| 我同学的妈妈双字id| 哥布林杀手| 李桢航资料| 侏罗纪公园2电影| 坠落的女律师完整版在线观看 | 酒店服务生第一季第一集在线观看| 霍莉桑普森| 生化危机终章在线观看| 《品味人生无憾》坎贝奇英文| 《动物园》| 善良的嫂子2中文| 欢乐颂免费全集电视剧在线看| 灿烂的海棠花4| 校园的早晨舞蹈| 白蛇传说之法海| 短剧《萌孙出击》免费播放| 《倔强退魔师》1-4集免费观看视频 | 新撰组异闻录 铁| 东北往事2之黑道风云20年| 再爱我一次电影完整版| 韩国电影R| 皖乡食妹| 一品大天师短剧免费观看| 我和我的女病人们 妇产科| 保罗和雪莉一家第一部| 八戒八戒10免费观看完整版| 《绝情》电影完整版| 盗墓笔记藏海花| 继拇献身义子3| 曹查理《浪蝶狂花》电影| 小公主动画片| 年轻的嫂2| 周弘版《村枝》mv免费观看| 吴健农民伯伯下乡2中文配音免费观看 | 大染坊第一部高清电视剧在线观看 | 香港金瓶梅| 校花的贴身高手无删减版电视剧| 摇滚水果| 爸爸播下种子美剧第二季免费观看|