中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

Linux的進(jìn)程優(yōu)先級NI和PR有哪些區(qū)別呢

這篇文章將為大家詳細(xì)講解有關(guān)Linux的進(jìn)程優(yōu)先級NI和PR有哪些區(qū)別呢,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元新密做網(wǎng)站,已為上家服務(wù),為新密各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220

為什么要有進(jìn)程優(yōu)先級?

這似乎不用過多的解釋,畢竟自從多任務(wù)操作系統(tǒng)誕生以來,進(jìn)程執(zhí)行占用cpu的能力就是一個必須要可以人為控制的事情。因?yàn)橛械倪M(jìn)程相對重要,而有的進(jìn)程則沒那么重要。

進(jìn)程優(yōu)先級起作用的方式從發(fā)明以來基本沒有什么變化,無論是只有一個cpu的時代,還是多核cpu時代,都是通過控制進(jìn)程占用cpu時間的長短來實(shí)現(xiàn)的。

就是說在同一個調(diào)度周期中,優(yōu)先級高的進(jìn)程占用的時間長些,而優(yōu)先級低的進(jìn)程占用的短些。

請大家真的不要混淆了系統(tǒng)中的這兩個概念:nice(NI)和priority(PR),他們有著千絲萬縷的關(guān)系,但對于當(dāng)前的Linux系統(tǒng)來說,它們并不是同一個概念。

我們看這個命令:

Linux的進(jìn)程優(yōu)先級NI和PR有哪些區(qū)別呢

大家是否真的明白其中PRI列NI列的具體含義有什么區(qū)別?

同樣的,如果是top命令:

Linux的進(jìn)程優(yōu)先級NI和PR有哪些區(qū)別呢

大家是否搞清楚了這其中PR值NI值的差別?如果沒有,那么我們可以首先搞清楚什么是nice值。

什么是NICE值?

NICE值應(yīng)該是熟悉Linux/UNIX的人很了解的概念了,它是反應(yīng)一個進(jìn)程“優(yōu)先級”狀態(tài)的值,其取值范圍是-20至19,一共40個級別。

這個值越小,表示進(jìn)程”優(yōu)先級”越高,而值越大“優(yōu)先級”越低。

例如,我們可以通過NICE命令來對一個將要執(zhí)行的bash命令進(jìn)行NICE值設(shè)置,方法是:

[root@zorrozou-pc0 zorro]# nice -n 10 bash

這樣我就又打開了一個bash,并且其nice值設(shè)置為10,而默認(rèn)情況下,進(jìn)程的優(yōu)先級應(yīng)該是從父進(jìn)程繼承來的,這個值一般是0。

我們可以通過nice命令直接查看到當(dāng)前shell的nice值:

[root@zorrozou-pc0 zorro]# nice 10

對比一下正常情況:

[root@zorrozou-pc0 zorro]# exit

退出當(dāng)前nice值為10的bash,打開一個正常的bash,我們查看下其 Nice值:

[root@zorrozou-pc0 zorro]# bash [root@zorrozou-pc0 zorro]# nice 0

另外,使用renice命令可以對一個正在運(yùn)行的進(jìn)程進(jìn)行nice值的調(diào)整,我們也可以使用比如top、ps等命令查看進(jìn)程的nice值,具體方法我就不多說了,大家可以參閱相關(guān)man  page。

需要大家注意的是,我在這里都在使用nice值這一稱謂,而非優(yōu)先級(priority)這個說法。

nice值雖然不是priority,但是它確實(shí)可以影響進(jìn)程的優(yōu)先級。

在英語中,如果我們形容一個人nice,那一般說明這個人的人緣比較好。什么樣的人人緣好?往往是謙讓、有禮貌的人。

比如,你跟一個nice的人一起去吃午飯,點(diǎn)了兩個一樣的飯,先上了一份后,nice的那位一般都會說:“你先吃你先吃!”,這就是人緣好,這人nice!但是如果另一份上的很晚,那么這位nice的人就要餓著了。

這說明什么?

越nice的人搶占資源的能力就越差,而越不nice的人搶占能力就越強(qiáng)。這就是nice值大小的含義,nice值越低,說明進(jìn)程越不nice,搶占cpu的能力就越強(qiáng),優(yōu)先級就越高(作者這個解釋太形象了,小編忍不住要手動點(diǎn)贊!!)。

在原來使用O1調(diào)度的Linux上,我們還會把nice值叫做靜態(tài)優(yōu)先級,這也基本符合nice值的特點(diǎn),就是當(dāng)nice值設(shè)定好了之后,除非我們用renice去改它,否則它是不變的。

而priority的值在之前內(nèi)核的O1調(diào)度器上表現(xiàn)是會變化的,所以也叫做動態(tài)優(yōu)先級

什么是優(yōu)先級和實(shí)時進(jìn)程?

我們再來看看什么是priority值,就是ps命令中看到的PRI值或者top命令中看到的PR值。

本文為了區(qū)分這些概念,以后:

  • 統(tǒng)一用nice值表示NI值,或者叫做靜態(tài)優(yōu)先級,也就是用nice和renice命令來調(diào)整的優(yōu)先級;

  • 而實(shí)用priority值表示PRI和PR值,或者叫動態(tài)優(yōu)先級。

  • 我們也統(tǒng)一將“優(yōu)先級”這個詞的概念規(guī)定為表示priority值的意思。

在內(nèi)核中,進(jìn)程優(yōu)先級的取值范圍是通過一個宏定義的,這個宏的名稱是MAX_PRIO,它的值為140。

而這個值又是由另外兩個值相加組成的,一個是代表nice值取值范圍的NICE_WIDTH宏,另一個是代表實(shí)時進(jìn)程(realtime)優(yōu)先級范圍的MAX_RT_PRIO宏。

說白了就是,Linux實(shí)際上實(shí)現(xiàn)了140個優(yōu)先級范圍,取值范圍是從0-139,這個值越小,優(yōu)先級越高。nice值的-20到19,映射到實(shí)際的優(yōu)先級范圍是100-139。

新產(chǎn)生進(jìn)程的默認(rèn)優(yōu)先級被定義為:

#define DEFAULT_PRIO (MAX_RT_PRIO + NICE_WIDTH / 2)

實(shí)際上對應(yīng)的就是nice值的0。

正常情況下,任何一個進(jìn)程的優(yōu)先級都是這個值,即使我們通過nice和renice命令調(diào)整了進(jìn)程的優(yōu)先級,它的取值范圍也不會超出100-139的范圍,除非這個進(jìn)程是一個實(shí)時進(jìn)程,那么它的優(yōu)先級取值才會變成0-99這個范圍中的一個。

這里隱含了一個信息,就是說當(dāng)前的Linux是一種已經(jīng)支持實(shí)時進(jìn)程的操作系統(tǒng)。

什么是實(shí)時操作系統(tǒng)?

我們就不再這里詳細(xì)解釋其含義以及在工業(yè)領(lǐng)域的應(yīng)用了,有興趣的可以參考一下實(shí)時操作系統(tǒng)的維基百科。

簡單來說,實(shí)時操作系統(tǒng)需要保證相關(guān)的實(shí)時進(jìn)程在較短的時間內(nèi)響應(yīng),不會有較長的延時,并且要求最小的中斷延時和進(jìn)程切換延時。

對于這樣的需求,一般的進(jìn)程調(diào)度算法,無論是O1還是CFS都是無法滿足的,所以內(nèi)核在設(shè)計(jì)的時候,將實(shí)時進(jìn)程單獨(dú)映射了100個優(yōu)先級,這些優(yōu)先級都要高于正常進(jìn)程的優(yōu)先級(nice值),而實(shí)時進(jìn)程的調(diào)度算法也不同,它們采用更簡單的調(diào)度算法來減少調(diào)度開銷。

總的來說,Linux系統(tǒng)中運(yùn)行的進(jìn)程可以分成兩類:

  • 實(shí)時進(jìn)程

  • 非實(shí)時進(jìn)程

它們的主要區(qū)別就是通過優(yōu)先級來區(qū)分的。

所有優(yōu)先級值在0-99范圍內(nèi)的,都是實(shí)時進(jìn)程,所以這個優(yōu)先級范圍也可以叫做實(shí)時進(jìn)程優(yōu)先級,而100-139范圍內(nèi)的是非實(shí)時進(jìn)程。

在系統(tǒng)中可以使用chrt命令來查看、設(shè)置一個進(jìn)程的實(shí)時優(yōu)先級狀態(tài)。我們可以先來看一下chrt命令的使用:

Linux的進(jìn)程優(yōu)先級NI和PR有哪些區(qū)別呢

我們先來關(guān)注顯示出的Policy options部分,會發(fā)現(xiàn)系統(tǒng)給各種進(jìn)程提供了5種調(diào)度策略。

但是這里并沒有說明的是,這五種調(diào)度策略是分別給兩種進(jìn)程用的,對于實(shí)時進(jìn)程可以用的調(diào)度策略是:SCHED_FIFO、SCHED_RR,而對于非實(shí)時進(jìn)程則是:SCHED_OTHER、SCHED_OTHER、SCHED_IDLE。

系統(tǒng)的整體優(yōu)先級策略是:

  • 如果系統(tǒng)中存在需要執(zhí)行的實(shí)時進(jìn)程,則優(yōu)先執(zhí)行實(shí)時進(jìn)程。

  • 直到實(shí)時進(jìn)程退出或者主動讓出CPU時,才會調(diào)度執(zhí)行非實(shí)時進(jìn)程。

實(shí)時進(jìn)程可以指定的優(yōu)先級范圍為1-99,將一個要執(zhí)行的程序以實(shí)時方式執(zhí)行的方法為:

[root@zorrozou-pc0 zorro]# chrt 10 bash [root@zorrozou-pc0 zorro]# chrt -p $$ pid 14840's current scheduling policy: SCHED_RR pid 14840's current scheduling priority: 10

可以看到,新打開的bash已經(jīng)是實(shí)時進(jìn)程,默認(rèn)調(diào)度策略為SCHED_RR,優(yōu)先級為10。如果想修改調(diào)度策略,就加個參數(shù):

[root@zorrozou-pc0 zorro]# chrt -f 10 bash [root@zorrozou-pc0 zorro]# chrt -p $$ pid 14843's current scheduling policy: SCHED_FIFO pid 14843's current scheduling priority: 10

剛才說過,SCHED_RR和SCHED_FIFO都是實(shí)時調(diào)度策略,只能給實(shí)時進(jìn)程設(shè)置。對于所有實(shí)時進(jìn)程來說,優(yōu)先級高的(就是priority數(shù)字小的)進(jìn)程一定會保證先于優(yōu)先級低的進(jìn)程執(zhí)行。

SCHED_RR和SCHED_FIFO的調(diào)度策略只有當(dāng)兩個實(shí)時進(jìn)程的優(yōu)先級一樣的時候才會發(fā)生作用,其區(qū)別也是顧名思義:

SCHED_FIFO

以先進(jìn)先出的隊(duì)列方式進(jìn)行調(diào)度,在優(yōu)先級一樣的情況下,誰先執(zhí)行的就先調(diào)度誰,除非它退出或者主動釋放CPU。

SCHED_RR

以時間片輪轉(zhuǎn)的方式對相同優(yōu)先級的多個進(jìn)程進(jìn)行處理。時間片長度為100ms。

這就是Linux對于實(shí)時進(jìn)程的優(yōu)先級和相關(guān)調(diào)度算法的描述。整體很簡單,也很實(shí)用。

而相對更麻煩的是非實(shí)時進(jìn)程,它們才是Linux上進(jìn)程的主要分類。對于非實(shí)時進(jìn)程優(yōu)先級的處理,我們首先還是要來介紹一下它們相關(guān)的調(diào)度算法:O1和CFS。

什么是O1調(diào)度?

O1調(diào)度算法是在Linux 2.6開始引入的,到Linux 2.6.23之后內(nèi)核將調(diào)度算法替換成了CFS。

雖然O1算法已經(jīng)不是當(dāng)前內(nèi)核所默認(rèn)使用的調(diào)度算法了,但是由于大量線上的服務(wù)器可能使用的Linux版本還是老版本,所以我相信很多服務(wù)器還是在使用著O1調(diào)度器,那么費(fèi)一點(diǎn)口舌簡單交代一下這個調(diào)度器也是有意義的。

這個調(diào)度器的名字之所以叫做O1,主要是因?yàn)槠渌惴ǖ臅r間復(fù)雜度是O1。

O1調(diào)度器仍然是根據(jù)經(jīng)典的時間片分配的思路來進(jìn)行整體設(shè)計(jì)的。

簡單來說,時間片的思路就是將CPU的執(zhí)行時間分成一小段一小段的,假如是5ms一段。于是多個進(jìn)程如果要“同時”執(zhí)行,實(shí)際上就是每個進(jìn)程輪流占用5ms的cpu時間,而從1s的時間尺度上看,這些進(jìn)程就是在“同時”執(zhí)行的。

當(dāng)然,對于多核系統(tǒng)來說,就是把每個核心都這樣做就行了。而在這種情況下,如何支持優(yōu)先級呢?

實(shí)際上就是將時間片分配成大小不等的若干種,優(yōu)先級高的進(jìn)程使用大的時間片,優(yōu)先級小的進(jìn)程使用小的時間片。這樣在一個周期結(jié)速后,優(yōu)先級大的進(jìn)程就會占用更多的時間而因此得到特殊待遇。

O1算法還有一個比較特殊的地方是,即使是相同的nice值的進(jìn)程,也會再根據(jù)其CPU的占用情況將其分成兩種類型:CPU消耗型和IO消耗性。

典型的CPU消耗型的進(jìn)程的特點(diǎn)是,它總是要一直占用CPU進(jìn)行運(yùn)算,分給它的時間片總是會被耗盡之后,程序才可能發(fā)生調(diào)度。

比如常見的各種算數(shù)運(yùn)算程序。

而IO消耗型的特點(diǎn)是,它經(jīng)常時間片沒有耗盡就自己主動先釋放CPU了。

比如vi,emacs這樣的編輯器就是典型的IO消耗型進(jìn)程。

為什么要這樣區(qū)分呢?因?yàn)镮O消耗型的進(jìn)程經(jīng)常是跟人交互的進(jìn)程,比如shell、編輯器等。

當(dāng)系統(tǒng)中既有這種進(jìn)程,又有CPU消耗型進(jìn)程存在,并且其nice值一樣時,假設(shè)給它們分的時間片長度是一樣的,都是500ms,那么人的操作可能會因?yàn)镃PU消耗型的進(jìn)程一直占用CPU而變的卡頓。

可以想象,當(dāng)bash在等待人輸入的時候,是不占CPU的,此時CPU消耗的程序會一直運(yùn)算,假設(shè)每次都分到500ms的時間片,此時人在bash上敲入一個字符的時候,那么bash很可能要等個幾百ms才能給出響應(yīng),因?yàn)樵谌饲萌胱址臅r候,別的進(jìn)程的時間片很可能并沒有耗盡,所以系統(tǒng)不會調(diào)度bash程度進(jìn)行處理。

為了提高IO消耗型進(jìn)程的響應(yīng)速度,系統(tǒng)將區(qū)分這兩類進(jìn)程,并動態(tài)調(diào)整CPU消耗的進(jìn)程將其優(yōu)先級降低,而IO消耗型的將其優(yōu)先級變高,以降低CPU消耗進(jìn)程的時間片的實(shí)際長度。

已知nice值的范圍是-20-19,其對應(yīng)priority值的范圍是100-139,對于一個默認(rèn)nice值為0的進(jìn)程來說,其初始priority值應(yīng)該是120,隨著其不斷執(zhí)行,內(nèi)核會觀察進(jìn)程的CPU消耗狀態(tài),并動態(tài)調(diào)整priority值,可調(diào)整的范圍是+-5。

就是說,***優(yōu)先級可以被自動調(diào)整到115,***到125。這也是為什么nice值叫做靜態(tài)優(yōu)先級,而priority值叫做動態(tài)優(yōu)先級的原因。不過這個動態(tài)調(diào)整的功能在調(diào)度器換成CFS之后就不需要了,因?yàn)镃FS換了另外一種CPU時間分配方式,這個我們后面再說。

什么是CFS完全公平調(diào)度?

O1已經(jīng)是上一代調(diào)度器了,由于其對多核、多CPU系統(tǒng)的支持性能并不好,并且內(nèi)核功能上要加入cgroup等因素,Linux在2.6.23之后開始啟用CFS作為對一般優(yōu)先級(SCHED_OTHER)進(jìn)程調(diào)度方法。

在這個重新設(shè)計(jì)的調(diào)度器中,時間片,動態(tài)、靜態(tài)優(yōu)先級以及IO消耗,CPU消耗的概念都不再重要。CFS采用了一種全新的方式,對上述功能進(jìn)行了比較完善的支持。

其設(shè)計(jì)的基本思路是:我們想要實(shí)現(xiàn)一個對所有進(jìn)程完全公平的調(diào)度器。

又是那個老問題:如何做到完全公平?答案跟上一篇IO調(diào)度中CFQ的思路類似:

如果當(dāng)前有n個進(jìn)程需要調(diào)度執(zhí)行,那么調(diào)度器應(yīng)該在一個比較小的時間范圍內(nèi),把這n個進(jìn)程全都調(diào)度執(zhí)行一遍,并且它們平分cpu時間,這樣就可以做到所有進(jìn)程的公平調(diào)度。

那么這個比較小的時間就是任意一個R狀態(tài)進(jìn)程被調(diào)度的***延時時間,即:任意一個R狀態(tài)進(jìn)程,都一定會在這個時間范圍內(nèi)被調(diào)度響應(yīng)。這個時間也可以叫做調(diào)度周期,其英文名字叫做:sched_latency_ns。

CFS的優(yōu)先級

當(dāng)然,CFS中還需要支持優(yōu)先級。在新的體系中,優(yōu)先級是以時間消耗(vruntime增長)的快慢來決定的。

就是說,對于CFS來說,衡量的時間累積的絕對值都是一樣紀(jì)錄在vruntime中的,但是不同優(yōu)先級的進(jìn)程時間增長的比率是不同的,高優(yōu)先級進(jìn)程時間增長的慢,低優(yōu)先級時間增長的快。

比如,優(yōu)先級為19的進(jìn)程,實(shí)際占用cpu為1秒,那么在vruntime中就記錄1s。但是如果是-20優(yōu)先級的進(jìn)程,那么它很可能實(shí)際占CPU用10s,在vruntime中才會紀(jì)錄1s。

CFS真實(shí)實(shí)現(xiàn)的不同nice值的cpu消耗時間比例在內(nèi)核中是按照“每差一級cpu占用時間差10%左右”這個原則來設(shè)定的。

這里的大概意思是說,如果有兩個nice值為0的進(jìn)程同時占用cpu,那么它們應(yīng)該每人占50%的cpu,如果將其中一個進(jìn)程的nice值調(diào)整為1的話,那么此時應(yīng)保證優(yōu)先級高的進(jìn)程比低的多占用10%的cpu,就是nice值為0的占55%,nice值為1的占45%。那么它們占用cpu時間的比例為55:45。

這個值的比例約為1.25。就是說,相鄰的兩個nice值之間的cpu占用時間比例的差別應(yīng)該大約為1.25。根據(jù)這個原則,內(nèi)核對40個nice值做了時間計(jì)算比例的對應(yīng)關(guān)系,它在內(nèi)核中以一個數(shù)組存在:

Linux的進(jìn)程優(yōu)先級NI和PR有哪些區(qū)別呢

多CPU的CFS調(diào)度是怎樣的?

在上面的敘述中,我們可以認(rèn)為系統(tǒng)中只有一個CPU,那么相關(guān)的調(diào)度隊(duì)列只有一個。

實(shí)際情況是系統(tǒng)是有多核甚至多個CPU的,CFS從一開始就考慮了這種情況,它對每個CPU核心都維護(hù)一個調(diào)度隊(duì)列,這樣每個CPU都對自己的隊(duì)列進(jìn)程調(diào)度即可。

這也是CFS比O1調(diào)度算法更高效的根本原因:每個CPU一個隊(duì)列,就可以避免對全局隊(duì)列使用大內(nèi)核鎖,從而提高了并行效率。

當(dāng)然,這樣最直接的影響就是CPU之間的負(fù)載可能不均,為了維持CPU之間的負(fù)載均衡,CFS要定期對所有CPU進(jìn)行l(wèi)oad  balance操作,于是就有可能發(fā)生進(jìn)程在不同CPU的調(diào)度隊(duì)列上切換的行為。

這種操作的過程也需要對相關(guān)的CPU隊(duì)列進(jìn)行鎖操作,從而降低了多個運(yùn)行隊(duì)列帶來的并行性。

不過總的來說,CFS的并行隊(duì)列方式還是要比O1的全局隊(duì)列方式要高效。尤其是在CPU核心越來越多的情況下,全局鎖的效率下降顯著增加。

小編的目的是從Linux系統(tǒng)進(jìn)程的優(yōu)先級為出發(fā)點(diǎn),我們也對CFS調(diào)度算法進(jìn)行了比較深入的分析。在我的經(jīng)驗(yàn)來看,這些知識對我們在觀察系統(tǒng)的狀態(tài)和相關(guān)優(yōu)化的時候都是非常有用的。

比如在使用top命令的時候,NI和PR值到底是什么意思?類似的地方還有ps命令中的NI和PRI值、ulimit命令-e和-r參數(shù)的區(qū)別等等。當(dāng)然,希望看完本文后,能讓大家對這些命令顯示的了解更加深入。

除此之外,我們還會發(fā)現(xiàn),雖然top命令中的PR值和ps -l命令中的PRI值的含義是一樣的,但是在優(yōu)先級相同的情況下,它們顯示的值確不一樣。

關(guān)于Linux的進(jìn)程優(yōu)先級NI和PR有哪些區(qū)別呢就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

當(dāng)前文章:Linux的進(jìn)程優(yōu)先級NI和PR有哪些區(qū)別呢
網(wǎng)頁鏈接:http://www.2m8n56k.cn/article36/ggdjsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作軟件開發(fā)手機(jī)網(wǎng)站建設(shè)網(wǎng)站營銷標(biāo)簽優(yōu)化電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
主站蜘蛛池模板: 国产成人艳妇在线观看 | 亚洲视频观看 | 久久成人18免费网站 | 最新中文字幕一区二区乱码 | 久久亚洲国产伦理 | 精品在线免费视频 | 91av国产在线| 日本三级韩国三级在线观看a级 | 亚洲精品影院一区二区 | 亚洲欧美日韩精品久久久 | 久久高清影院 | 欧美一级毛片片免费孕妇 | 亚洲日本欧美在线 | 成人禁在线观看午夜亚洲 | 国产性大片黄在线观看在线放 | 99re热在线视频 | 午夜神马理论 | 国产原创一区二区 | 亚洲美女在线观看亚洲美女 | 亚洲综合在线视频 | 国产成人精品视频午夜 | 欧美三级免费网站 | 精品国产亚洲一区二区在线3d | 久久久日本久久久久123 | 国产美女主播一级成人毛片 | 456亚洲视频 | 日韩中文字幕在线看 | 久久免费网 | 国产在线精品一区二区三区不卡 | 亚洲天堂手机在线 | 亚洲欧美日韩在线一区二区三区 | japanesetubesexfree | 亚洲欧美日韩一区 | 香蕉久久夜色精品国产尤物 | 手机毛片免费看 | 暖暖视频日韩欧美在线观看 | 色综合久久88色综合天天提莫 | 成人免费视频69 | 一区中文字幕 | 国产精品视频网址 | 久久夜色精品国产噜噜亚洲a |