日韩综合在线观看I国产精品久久久久久久久久久免费I色婷婷国产在线I精品国产久I深爱五月网I中文字幕一二三区I国产亚洲精品久I国产亚洲精品久久19p

首頁 > 新聞 > 知識賦能

性能調(diào)優(yōu)攻略

2012-06-23 6648
分享至:
關(guān)于性能優(yōu)化這是一個比較大的話題,在《由12306.cn談?wù)?a href="http://m.wingst.cn/">網(wǎng)站建設(shè)性能技術(shù)》中我從業(yè)務(wù)和設(shè)計上說過一些可用的技術(shù)以及那些技術(shù)的優(yōu)缺點,今天,想從一些技術(shù)細節(jié)上談?wù)勑阅軆?yōu)化,主要是一些代碼級別的技術(shù)和方法。本文的東西是我的一些經(jīng)驗和知識,并不一定全對,希望大家指正和補充。

在開始這篇文章之前,大家可以移步去看一下酷殼以前發(fā)表的《代碼優(yōu)化概要》,這篇文章基本上告訴你——要進行優(yōu)化,先得找到性能瓶頸! 但是在講如何定位系統(tǒng)性能瓶勁之前,請讓我講一下系統(tǒng)性能的定義和測試,因為沒有這兩件事,后面的定位和SEO優(yōu)化無從談起。

一、系統(tǒng)性能定義

讓我們先來說說如何什么是系統(tǒng)性能。這個定義非常關(guān)鍵,如果我們不清楚什么是系統(tǒng)性能,那么我們將無法定位之。我見過很多朋友會覺得這很容易,但是仔細一問,其實他們并沒有一個比較系統(tǒng)的方法,所以,在這里我想告訴大家如何系統(tǒng)地來定位性能。 總體來說,系統(tǒng)性能就是兩個事:
1. Throughput ,吞吐量。也就是每秒鐘可以處理的請求數(shù),任務(wù)數(shù)。
2. Latency, 系統(tǒng)延遲。也就是系統(tǒng)在處理一個請求或一個任務(wù)時的延遲。

一般來說,一個系統(tǒng)的性能受到這兩個條件的約束,缺一不可。比如,我的系統(tǒng)可以頂?shù)米∫话偃f的并發(fā),但是系統(tǒng)的延遲是2分鐘以上,那么,這個一百萬的負載毫無意義。系統(tǒng)延遲很短,但是吞吐量很低,同樣沒有意義。所以,一個好的系統(tǒng)的性能測試必然受到這兩個條件的同時作用。 有經(jīng)驗的朋友一定知道,這兩個東西的一些關(guān)系:
• Throughput越大,Latency會越差。因為請求量過大,系統(tǒng)太繁忙,所以響應(yīng)速度自然會低。
• Latency越好,能支持的Throughput就會越高。因為Latency短說明處理速度快,于是就可以處理更多的請求。

二、系統(tǒng)性能測試

經(jīng)過上述的說明,我們知道要測試系統(tǒng)的性能,需要我們收集系統(tǒng)的Throughput和Latency這兩個值。
• 首先,需要定義Latency這個值,比如說,對于網(wǎng)站系統(tǒng)響應(yīng)時間必需是5秒以內(nèi)(對于某些實時系統(tǒng)可能需要定義的更短,比如5ms以內(nèi),這個更根據(jù)不同的業(yè)務(wù)來定義)
• 其次,開發(fā)性能測試工具,一個工具用來制造高強度的Throughput,另一個工具用來測量Latency。對于第一個工具,你可以參考一下"十個免費的Web壓力測試工具",關(guān)于如何測量Latency,你可以在代碼中測量,但是這樣會影響程序的執(zhí)行,而且只能測試到程序內(nèi)部的Latency,真正的Latency是整個系統(tǒng)都算上,包括操作系統(tǒng)和網(wǎng)絡(luò)的延時,你可以使用Wireshark來抓網(wǎng)絡(luò)包來測量。這兩個工具具體怎么做,這個還請大家自己思考去了。
• 最后,開始性能測試。你需要不斷地提升測試的Throughput,然后觀察系統(tǒng)的負載情況,如果系統(tǒng)頂?shù)米。蔷陀^察Latency的值。這樣,你就可以找到系統(tǒng)的最大負載,并且你可以知道系統(tǒng)的響應(yīng)延時是多少。

再多說一些,
• 關(guān)于Latency,如果吞吐量很少,這個值估計會非常穩(wěn)定,當(dāng)吞吐量越來越大時,系統(tǒng)的Latency會出現(xiàn)非常劇烈的抖動,所以,我們在測量Latency的時候,我們需要注意到Latency的分布,也就是說,有百分之幾的在我們允許的范圍,有百分之幾的超出了,有百分之幾的完全不可接受。也許,平均下來的Latency達標(biāo)了,但是其中僅有50%的達到了我們可接受的范圍。那也沒有意義。
• 關(guān)于性能測試,我們還需要定義一個時間段。比如:在某個吞吐量上持續(xù)15分鐘。因為當(dāng)負載到達的時候,系統(tǒng)會變得不穩(wěn)定,當(dāng)過了一兩分鐘后,系統(tǒng)才會穩(wěn)定。另外,也有可能是,你的系統(tǒng)在這個負載下前幾分鐘還表現(xiàn)正常,然后就不穩(wěn)定了,甚至垮了。所以,需要這么一段時間。這個值,我們叫做峰值極限。
• 性能測試還需要做Soak Test,也就是在某個吞吐量下,系統(tǒng)可以持續(xù)跑一周甚至更長。這個值,我們叫做系統(tǒng)的正常運行的負載極限。

性能測試有很多很復(fù)要的東西,比如:burst test等。 這里不能一一詳述,這里只說了一些和性能調(diào)優(yōu)相關(guān)的東西。總之,性能測試是一細活和累活。

三、定位性能瓶頸

有了上面的鋪墊,我們就可以測試到到系統(tǒng)的性能了,再調(diào)優(yōu)之前,我們先來說說如何找到性能的瓶頸。我見過很多朋友會覺得這很容易,但是仔細一問,其實他們并沒有一個比較系統(tǒng)的方法。

3.1)查看操作系統(tǒng)負載

首先,當(dāng)我們系統(tǒng)有問題的時候,我們不要急于去調(diào)查我們代碼,這個毫無意義。我們首要需要看的是操作系統(tǒng)的報告。看看操作系統(tǒng)的CPU利用率,看看內(nèi)存使用率,看看操作系統(tǒng)的IO,還有網(wǎng)絡(luò)的IO,網(wǎng)絡(luò)鏈接數(shù),等等。Windows下的perfmon是一個很不錯的工具,Linux下也有很多相關(guān)的命令和工具,比如:SystemTap,LatencyTOP,vmstat, sar, iostat, top, tcpdump等等 。通過觀察這些數(shù)據(jù),我們就可以知道我們的軟件的性能基本上出在哪里。比如:

1)先看CPU利用率,如果CPU利用率不高,但是系統(tǒng)的Throughput和Latency上不去了,這說明我們的程序并沒有忙于計算,而是忙于別的一些事,比如IO。(另外,CPU的利用率還要看內(nèi)核態(tài)的和用戶態(tài)的,內(nèi)核態(tài)的一上去了,整個系統(tǒng)的性能就下來了。而對于多核CPU來說,CPU 0 是相當(dāng)關(guān)鍵的,如果CPU 0的負載高,那么會影響其它核的性能,因為CPU各核間是需要有調(diào)度的,這靠CPU0完成)

2)然后,我們可以看一下IO大不大,IO和CPU一般是反著來的,CPU利用率高則IO不大,IO大則CPU就小。關(guān)于IO,我們要看三個事,一個是磁盤文件IO,一個是驅(qū)動程序的IO(如:網(wǎng)卡),一個是內(nèi)存換頁率。這三個事都會影響系統(tǒng)性能。

3)然后,查看一下網(wǎng)絡(luò)帶寬使用情況,在Linux下,你可以使用iftop, iptraf, ntop, tcpdump這些命令來查看。或是用Wireshark來查看。

4)如果CPU不高,IO不高,內(nèi)存使用不高,網(wǎng)絡(luò)帶寬使用不高。但是系統(tǒng)的性能上不去。這說明你的程序有問題,比如,你的程序被阻塞了。可能是因為等那個鎖,可能是因為等某個資源,或者是在切換上下文。

通過了解操作系統(tǒng)的性能,我們才知道性能的問題,比如:帶寬不夠,內(nèi)存不夠,TCP緩沖區(qū)不夠,等等,很多時候,不需要調(diào)整程序的,只需要調(diào)整一下硬件或操作系統(tǒng)的配置就可以了。

3.2)使用Profiler測試

接下來,我們需要使用性能檢測工具,也就是使用某個Profiler來差看一下我們程序的運行性能。如:Java的JProfiler/TPTP/CodePro Profiler,GNU的gprof,IBM的PurifyPlus,Intel的VTune,AMD的CodeAnalyst,還有Linux下的OProfile/perf,后面兩個可以讓你對你的代碼優(yōu)化到CPU的微指令級別,如果你關(guān)心CPU的L1/L2的緩存調(diào)優(yōu),那么你需要考慮一下使用VTune。 使用這些Profiler工具,可以讓你程序中各個模塊函數(shù)甚至指令的很多東西,如:運行的時間 ,調(diào)用的次數(shù),CPU的利用率,等等。這些東西對我們來說非常有用。

我們重點觀察運行時間最多,調(diào)用次數(shù)最多的那些函數(shù)和指令。這里注意一下,對于調(diào)用次數(shù)多但是時間很短的函數(shù),你可能只需要輕微優(yōu)化一下,你的性能就上去了(比如:某函數(shù)一秒種被調(diào)用100萬次,你想想如果你讓這個函數(shù)提高0.01毫秒的時間 ,這會給你帶來多大的性能)

使用Profiler有個問題我們需要注意一下,因為Profiler會讓你的程序運行的性能變低,像PurifyPlus這樣的工具會在你的代碼中插入很多代碼,會導(dǎo)致你的程序運行效率變低,從而沒發(fā)測試出在高吞吐量下的系統(tǒng)的性能,對此,一般有兩個方法來定位系統(tǒng)瓶頸:

1)在你的代碼中自己做統(tǒng)計,使用微秒級的計時器和函數(shù)調(diào)用計算器,每隔10秒把統(tǒng)計log到文件中。

2)分段注釋你的代碼塊,讓一些函數(shù)空轉(zhuǎn),做Hard Code的Mock,然后再測試一下系統(tǒng)的Throughput和Latency是否有質(zhì)的變化,如果有,那么被注釋的函數(shù)就是性能瓶頸,再在這個函數(shù)體內(nèi)注釋代碼,直到找到最耗性能的語句。

四、常見的系統(tǒng)瓶頸

下面這些東西是我所經(jīng)歷過的一些問題,也許并不全,也許并不對,大家可以補充指正,我純屬拋磚引玉。關(guān)于系統(tǒng)架構(gòu)方面的性能調(diào)優(yōu),大家可移步看一下《由12306.cn談?wù)劸W(wǎng)站性能技術(shù)》,關(guān)于Web方面的一些性能調(diào)優(yōu)的東西,大家可以看看《Web開發(fā)中需要了解的東西》一文中的性能一章。我在這里就不再說設(shè)計和架構(gòu)上的東西了。

一般來說,性能優(yōu)化也就是下面的幾個策略:
• 用空間換時間。各種cache如CPU L1/L2/RAM到硬盤,都是用空間來換時間的策略。這樣策略基本上是把計算的過程一步一步的保存或緩存下來,這樣就不用每次用的時候都要再計算一遍,比如數(shù)據(jù)緩沖,CDN,等。這樣的策略還表現(xiàn)為冗余數(shù)據(jù),比如數(shù)據(jù)鏡象,負載均衡什么的。
• 用時間換空間。有時候,少量的空間可能性能會更好,比如網(wǎng)絡(luò)傳輸,如果有一些壓縮數(shù)據(jù)的算法(如前些天說的"Huffman 編碼壓縮算法" 和 "rsync 的核心算法"),這樣的算法其實很耗時,但是因為瓶頸在網(wǎng)絡(luò)傳輸,所以用時間來換空間反而能省時間。
• 簡化代碼。最高效的程序就是不執(zhí)行任何代碼的程序,所以,代碼越少性能就越高。關(guān)于代碼級優(yōu)化的技術(shù)大學(xué)里的教科書有很多示例了。如:減少循環(huán)的層數(shù),減少遞歸,在循環(huán)中少聲明變量,少做分配和釋放內(nèi)存的操作,盡量把循環(huán)體內(nèi)的表達式抽到循環(huán)外,條件表達的中的多個條件判斷的次序,盡量在程序啟動時把一些東西準(zhǔn)備好,注意函數(shù)調(diào)用的開銷(棧上開銷),注意面向?qū)ο笳Z言中臨時對象的開銷,小心使用異常(不要用異常來檢查一些可接受可忽略并經(jīng)常發(fā)生的錯誤),…… 等等,等等,這連東西需要我們非常了解編程語言和常用的庫。
• 并行處理。如果CPU只有一個核,你要玩多進程,多線程,對于計算密集型的軟件會反而更慢(因為操作系統(tǒng)調(diào)度和切換開銷很大),CPU的核多了才能真正體現(xiàn)出多進程多線程的優(yōu)勢。并行處理需要我們的程序有Scalability,不能水平或垂直擴展的程序無法進行并行處理。從架構(gòu)上來說,這表再為——是否可以做到不改代碼只是加加機器就可以完成性能提升?

總之,根據(jù)2:8原則來說,20%的代碼耗了你80%的性能,找到那20%的代碼,你就可以優(yōu)化那80%的性能。 下面的一些東西都是我的一些經(jīng)驗,我只例舉了一些最有價值的性能調(diào)優(yōu)的的方法,供你參考,也歡迎補充。

4.1)算法調(diào)優(yōu)。算法非常重要,好的算法會有更好的性能。舉幾個我經(jīng)歷過的項目的例子,大家可以感覺一下。
• 一個是過濾算法,系統(tǒng)需要對收到的請求做過濾,我們把可以被filter in/out的東西配置在了一個文件中,原有的過濾算法是遍歷過濾配置,后來,我們找到了一種方法可以對這個過濾配置進行排序,這樣就可以用二分折半的方法來過濾,系統(tǒng)性能增加了50%。
• 一個是哈希算法。計算哈希算法的函數(shù)并不高效,一方面是計算太費時,另一方面是碰撞太高,碰撞高了就跟單向鏈表一個性能(可參看Hash Collision DoS 問題)。我們知道,算法都是和需要處理的數(shù)據(jù)很有關(guān)系的,就算是被大家所嘲笑的"冒泡排序"在某些情況下(大多數(shù)數(shù)據(jù)是排好序的)其效率會高于所有的排序算法。哈希算法也一樣,廣為人知的哈希算法都是用英文字典做測試,但是我們的業(yè)務(wù)在數(shù)據(jù)有其特殊性,所以,對于還需要根據(jù)自己的數(shù)據(jù)來挑選適合的哈希算法。對于我以前的一個項目,公司內(nèi)某牛人給我發(fā)來了一個哈希算法,結(jié)果讓我們的系統(tǒng)性能上升了150%。(關(guān)于各種哈希算法,你一定要看看StackExchange上的這篇關(guān)于各種hash算法的文章 )
• 分而治之和預(yù)處理。以前有一個程序為了生成月報表,每次都需要計算很長的時間,有時候需要花將近一整天的時間。于是我們把我們找到了一種方法可以把這個算法發(fā)成增量式的,也就是說我每天都把當(dāng)天的數(shù)據(jù)計算好了后和前一天的報表合并,這樣可以大大的節(jié)省計算時間,每天的數(shù)據(jù)計算量只需要20分鐘,但是如果我要算整個月的,系統(tǒng)則需要10個小時以上(SQL語句在大數(shù)據(jù)量面前性能成級數(shù)性下降)。這種分而治之的思路在大數(shù)據(jù)面前對性能有很幫助,就像merge排序一樣。SQL語句和數(shù)據(jù)庫的性能優(yōu)化也是這一策略,如:使用嵌套式的Select而不是笛卡爾積的Select,使用視圖,等等。

4.2)代碼調(diào)優(yōu)。從我的經(jīng)驗上來說,代碼上的調(diào)優(yōu)有下面這幾點:
• 字符串操作。這是最費系統(tǒng)性能的事了,無論是strcpy, strcat還是strlen,最需要注意的是字符串子串匹配。所以,能用整型最好用整型。舉幾個例子,第一個例子是N年前做銀行的時候,我的同事喜歡把日期存成字符串(如:2012-05-29 08:30:02),我勒個去,一個select where between語句相當(dāng)耗時。另一個例子是,我以前有個同事把一些狀態(tài)碼用字符串來處理,他的理由是,這樣可以在界面上直接顯示,后來性能調(diào)優(yōu)的時候,我把這些狀態(tài)碼全改成整型,然后用位操作查狀態(tài),因為有一個每秒鐘被調(diào)用了150K次的函數(shù)里面有三處需要檢查狀態(tài),經(jīng)過改善以后,整個系統(tǒng)的性能上升了30%左右。還有一個例子是,我以前從事的某個產(chǎn)品編程規(guī)范中有一條是要在每個函數(shù)中把函數(shù)名定義出來,如:const char fname[]="functionName()", 這是為了好打日志,但是為什么不聲明成 static類型的呢?
• 多線程調(diào)優(yōu)。有人說,thread is evil,這個對于系統(tǒng)性能在某些時候是個問題。因為多線程瓶頸就在于互斥和同步的鎖上,以及線程上下文切換的成本,怎么樣的少用鎖或不用鎖是根本(比如:多版本并發(fā)控制(MVCC)在分布式系統(tǒng)中的應(yīng)用 中說的樂觀鎖可以解決性能問題),此外,還有讀寫鎖也可以解決大多數(shù)是讀操作的并發(fā)的性能問題。這里多說一點在C++中,我們可能會使用線程安全的智能指針AutoPtr或是別的一些容器,只要是線程安全的,其不管三七二十一都要上鎖,上鎖是個成本很高的操作,使用AutoPtr會讓我們的系統(tǒng)性能下降得很快,如果你可以保證不會有線程并發(fā)問題,那么你應(yīng)該不要用AutoPtr。我記得我上次我們同事去掉智能指針的引用計數(shù),讓系統(tǒng)性能提升了50%以上。對于Java對象的引用計數(shù),如果我猜的沒錯的話,到處都是鎖,所以,Java的性能問題一直是個問題。另外,線程不是越多越好,線程間的調(diào)度和上下文切換也是很夸張的事,盡可能的在一個線程里干,盡可能的不要同步線程。這會讓你有很多的性能。
• 內(nèi)存分配。不要小看程序的內(nèi)存分配。malloc/realloc/calloc這樣的系統(tǒng)調(diào)非常耗時,尤其是當(dāng)內(nèi)存出現(xiàn)碎片的時候。我以前的公司出過這樣一個問題——在用戶的站點上,我們的程序有一天不響應(yīng)了,用GDB跟進去一看,系統(tǒng)hang在了malloc操作上,20秒都沒有返回,重啟一些系統(tǒng)就好了。這就是內(nèi)存碎片的問題。這就是為什么很多人抱怨STL有嚴重的內(nèi)存碎片的問題,因為太多的小內(nèi)存的分配釋放了。有很多人會以為用內(nèi)存池可以解決這個問題,但是實際上他們只是重新發(fā)明了Runtime-C或操作系統(tǒng)的內(nèi)存管理機制,完全于事無補。當(dāng)然解決內(nèi)存碎片的問題還是通過內(nèi)存池,具體來說是一系列不同尺寸的內(nèi)存池(這個留給大家自己去思考)。當(dāng)然,少進行動態(tài)內(nèi)存分配是最好的。說到內(nèi)存池就需要說一下池化技術(shù)。比如線程池,連接池等。池化技術(shù)對于一些短作業(yè)來說(如http服務(wù)) 相當(dāng)相當(dāng)?shù)挠行А_@項技術(shù)可以減少鏈接建立,線程創(chuàng)建的開銷,從而提高性能。
• 異步操作。我們知道Unix下的文件操作是有block和non-block的方式的,像有些系統(tǒng)調(diào)用也是block式的,如:Socket下的select,Windows下的WaitforObject之類的,如果我們的程序是同步操作,那么會非常影響性能,我們可以改成異步的,但是改成異步的方式會讓你的程序變復(fù)雜。異步方式一般要通過隊列,要注間隊列的性能問題,另外,異步下的狀態(tài)通知通常是個問題,比如消息事件通知方式,有callback方式,等,這些方式同樣可能會影響你的性能。但是通常來說,異步操作會讓性能的吞吐率有很大提升(Throughput),但是會犧牲系統(tǒng)的響應(yīng)時間(latency)。這需要業(yè)務(wù)上支持。
• 語言和代碼庫。我們要熟悉語言以及所使用的函數(shù)庫或類庫的性能。比如:STL中的很多容器分配了內(nèi)存后,那怕你刪除元素,內(nèi)存也不會回收,其會造成內(nèi)存泄露的假像,并可能造成內(nèi)存碎片問題。再如,STL某些容器的size()==0 和 empty()是不一樣的,因為,size()是O(n)復(fù)雜度,empty()是O(1)的復(fù)雜度,這個要小心。Java中的JVM調(diào)優(yōu)需要使用的這些參數(shù):-Xms -Xmx -Xmn -XX:SurvivorRatio -XX:MaxTenuringThreshold,還需要注意JVM的GC,GC的霸氣大家都知道,尤其是full GC(還整理內(nèi)存碎片),他就像"恐龍?zhí)丶壙速愄?一樣,他運行的時候,整個世界的時間都停止了。

4.3)網(wǎng)絡(luò)調(diào)優(yōu)

關(guān)于網(wǎng)絡(luò)調(diào)優(yōu),尤其是TCP Tuning(你可以以這兩個關(guān)鍵詞在網(wǎng)上找到很多文章),這里面有很多很多東西可以說。看看Linux下TCP/IP的那么多參數(shù)就知道了(順便說一下,你也許不喜歡Linux,但是你不能否認Linux給我們了很多可以進行內(nèi)核調(diào)優(yōu)的權(quán)力)。強烈建議大家看看《TCP/IP 詳解 卷1:協(xié)議》這本書。我在這里只講一些概念上的東西。

A) TCP調(diào)優(yōu)

我們知道TCP鏈接是有很多開銷的,一個是會占用文件描述符,另一個是會開緩存,一般來說一個系統(tǒng)可以支持的TCP鏈接數(shù)是有限的,我們需要清楚地認識到TCP鏈接對系統(tǒng)的開銷是很大的。正是因為TCP是耗資源的,所以,很多攻擊都是讓你系統(tǒng)上出現(xiàn)大量的TCP鏈接,把你的系統(tǒng)資源耗盡。比如著名的SYNC Flood攻擊。

所以,我們要注意配置KeepAlive參數(shù),這個參數(shù)的意思是定義一個時間,如果鏈接上沒有數(shù)據(jù)傳輸,系統(tǒng)會在這個時間發(fā)一個包,如果沒有收到回應(yīng),那么TCP就認為鏈接斷了,然后就會把鏈接關(guān)閉,這樣可以回收系統(tǒng)資源開銷。(注:HTTP層上也有KeepAlive參數(shù))對于像HTTP這樣的短鏈接,設(shè)置一個1-2分鐘的keepalive非常重要。這可以在一定程度上防止DoS攻擊。有下面幾個參數(shù)(下面這些參數(shù)的值僅供參考):

net.ipv4.tcp_keepalive_probes = 5

net.ipv4.tcp_keepalive_intvl = 20

net.ipv4.tcp_fin_timeout = 30

對于TCP的TIME_WAIT這個狀態(tài),主動關(guān)閉的一方進入TIME_WAIT狀態(tài),TIME_WAIT狀態(tài)將持續(xù)2個MSL(Max Segment Lifetime),默認為4分鐘,TIME_WAIT狀態(tài)下的資源不能回收。有大量的TIME_WAIT鏈接的情況一般是在HTTP服務(wù)器上。對此,有兩個參數(shù)需要注意

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_tw_recycle=1

前者表示重用TIME_WAIT,后者表示回收TIME_WAIT的資源。

TCP還有一個重要的概念叫RWIN(TCP Receive Window Size),這個東西的意思是,我一個TCP鏈接在沒有向Sender發(fā)出ack時可以接收到的最大的數(shù)據(jù)包。為什么這個很重要?因為如果Sender沒有收到Receiver發(fā)過來ack,Sender就會停止發(fā)送數(shù)據(jù)并會等一段時間,如果超時,那么就會重傳。這就是為什么TCP鏈接是可靠鏈接的原因。重傳還不是最嚴重的,如果有丟包發(fā)生的話,TCP的帶寬使用率會馬上受到影響(會盲目減半),再丟包,再減半,然后如果不丟包了,就逐步恢復(fù)。相關(guān)參數(shù)如下:

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

一般來說,理論上的RWIN應(yīng)該設(shè)置成:吞吐量 * 回路時間。Sender端的buffer應(yīng)該和RWIN有一樣的大小,因為Sender端發(fā)送完數(shù)據(jù)后要等Receiver端確認,如果網(wǎng)絡(luò)延時很大,buffer過小了,確認的次數(shù)就會多,于是性能就不高,對網(wǎng)絡(luò)的利用率也就不高了。也就是說,對于延遲大的網(wǎng)絡(luò),我們需要大的buffer,這樣可以少一點ack,多一些數(shù)據(jù),對于響應(yīng)快一點的網(wǎng)絡(luò),可以少一些buffer。因為,如果有丟包(沒有收到ack),buffer過大可能會有問題,因為這會讓TCP重傳所有的數(shù)據(jù),反而影響網(wǎng)絡(luò)性能。(當(dāng)然,網(wǎng)絡(luò)差的情況下,就別玩什么高性能了) 所以,高性能的網(wǎng)絡(luò)重要的是要讓網(wǎng)絡(luò)丟包率非常非常地小(基本上是用在LAN里),如果網(wǎng)絡(luò)基本是可信的,這樣用大一點的buffer會有更好的網(wǎng)絡(luò)傳輸性能(來來回回太多太影響性能了)。

另外,我們想一想,如果網(wǎng)絡(luò)質(zhì)量非常好,基本不丟包,而業(yè)務(wù)上我們不怕偶爾丟幾個包,如果是這樣的話,那么,我們?yōu)槭裁床挥盟俣雀斓腢DP呢?你想過這個問題了嗎?

B)UDP調(diào)優(yōu)

說到UDP的調(diào)優(yōu),有一些事我想重點說一樣,那就是MTU——最大傳輸單元(其實這對TCP也一樣,因為這是鏈路層上的東西)。所謂最大傳輸單元,你可以想像成是公路上的公交車,假設(shè)一個公交車可以最多坐70人,帶寬就像是公路的車道數(shù)一樣,如果一條路上最多可以容下100輛公交車,那意味著我最多可以運送7000人,但是如果公交車坐不滿,比如平均每輛車只有20人,那么我只運送了2000人,于是我公路資源(帶寬資源)就被浪費了。 所以,我們對于一個UDP的包,我們要盡量地讓他大到MTU的最大尺寸再往網(wǎng)絡(luò)上傳,這樣可以最大化帶寬利用率。對于這個MTU,以太網(wǎng)是1500字節(jié),光纖是4352字節(jié),802.11無線網(wǎng)是7981。但是,當(dāng)我們用TCP/UDP發(fā)包的時候,我們的有效負載Payload要低于這個值,因為IP協(xié)議會加上20個字節(jié),UDP會加上8個字節(jié)(TCP加的更多),所以,一般來說,你的一個UDP包的最大應(yīng)該是1500-8-20=1472,這是你的數(shù)據(jù)的大小。當(dāng)然,如果你用光纖的話, 這個值就可以更大一些。(順便說一下,對于某些NB的千光以態(tài)網(wǎng)網(wǎng)卡來說,在網(wǎng)卡上,網(wǎng)卡硬件如果發(fā)現(xiàn)你的包的大小超過了MTU,其會幫你做fragment,到了目標(biāo)端又會幫你做重組,這就不需要你在程序中處理了)

再多說一下,使用Socket編程的時候,你可以使用setsockopt() 設(shè)置 SO_SNDBUF/SO_RCVBUF 的大小,TTL和KeepAlive這些關(guān)鍵的設(shè)置,當(dāng)然,還有很多,具體你可以查看一下Socket的手冊。

最后說一點,UDP還有一個最大的好處是multi-cast多播,這個技術(shù)對于你需要在內(nèi)網(wǎng)里通知多臺結(jié)點時非常方便和高效。而且,多播這種技術(shù)對于機會的水平擴展(需要增加機器來偵聽多播信息)也很有利。

C)網(wǎng)卡調(diào)優(yōu)

對于網(wǎng)卡,我們也是可以調(diào)優(yōu)的,這對于千兆以及網(wǎng)網(wǎng)卡非常必要,在Linux下,我們可以用ifconfig查看網(wǎng)上的統(tǒng)計信息,如果我們看到overrun上有數(shù)據(jù),我們就可能需要調(diào)整一下txqueuelen的尺寸(一般默認為1000),我們可以調(diào)大一些,如:ifconfig eth0 txqueuelen 5000。Linux下還有一個命令叫:ethtool可以用于設(shè)置網(wǎng)卡的緩沖區(qū)大小。在Windows下,我們可以在網(wǎng)卡適配器中的高級選項卡中調(diào)整相關(guān)的參數(shù)(如:Receive Buffers, Transmit Buffer等,不同的網(wǎng)卡有不同的參數(shù))。把Buffer調(diào)大對于需要大數(shù)據(jù)量的網(wǎng)絡(luò)傳輸非常有效。

D)其它網(wǎng)絡(luò)性能

關(guān)于多路復(fù)用技術(shù),也就是用一個線程來管理所有的TCP鏈接,有三個系統(tǒng)調(diào)用要重點注意:一個是select,這個系統(tǒng)調(diào)用只支持上限1024個鏈接,第二個是poll,其可以突破1024的限制,但是select和poll本質(zhì)上是使用的輪詢機制,輪詢機制在鏈接多的時候性能很差,因主是O(n)的算法,所以,epoll出現(xiàn)了,epoll是操作系統(tǒng)內(nèi)核支持的,僅當(dāng)在鏈接活躍時,操作系統(tǒng)才會callback,這是由操作系統(tǒng)通知觸發(fā)的,但其只有Linux Kernel 2.6以后才支持(準(zhǔn)確說是2.5.44中引入的),當(dāng)然,如果所有的鏈接都是活躍的,過多的使用epoll_ctl可能會比輪詢的方式還影響性能,不過影響的不大。

另外,關(guān)于一些和DNS Lookup的系統(tǒng)調(diào)用要小心,比如:gethostbyaddr/gethostbyname,這個函數(shù)可能會相當(dāng)?shù)馁M時,因為其要到網(wǎng)絡(luò)上去找域名,因為DNS的遞歸查詢,會導(dǎo)致嚴重超時,而又不能通過設(shè)置什么參數(shù)來設(shè)置time out,對此你可以通過配置hosts文件來加快速度,或是自己在內(nèi)存中管理對應(yīng)表,在程序啟動時查好,而不要在運行時每次都查。另外,在多線程下面,gethostbyname會一個更嚴重的問題,就是如果有一個線程的gethostbyname發(fā)生阻塞,其它線程都會在gethostbyname處發(fā)生阻塞,這個比較變態(tài),要小心。(你可以試試GNU的gethostbyname_r(),這個的性能要好一些) 這種到網(wǎng)上找信息的東西很多,比如,如果你的Linux使用了NIS,或是NFS,某些用戶或文件相關(guān)的系統(tǒng)調(diào)用就很慢,所以要小心。

4.4)系統(tǒng)調(diào)優(yōu)

A)I/O模型

前面說到過select/poll/epoll這三個系統(tǒng)調(diào)用,我們都知道,Unix/Linux下把所有的設(shè)備都當(dāng)成文件來進行I/O,所以,那三個操作更應(yīng)該算是I/O相關(guān)的系統(tǒng)調(diào)用。說到 I/O模型,這對于我們的I/O性能相當(dāng)重要,我們知道,Unix/Linux經(jīng)典的I/O方式是(關(guān)于Linux下的I/O模型,大家可以讀一下這篇文章《使用異步I/O大大提高性能》):

第一種,同步阻塞式I/O,這個不說了。

第二種,同步無阻塞方式。其通過fctnl設(shè)置 O_NONBLOCK 來完成。

第三種,對于select/poll/epoll這三個是I/O不阻塞,但是在事件上阻塞,算是:I/O異步,事件同步的調(diào)用。

第四種,AIO方式。這種I/O 模型是一種處理與 I/O 并行的模型。I/O請求會立即返回,說明請求已經(jīng)成功發(fā)起了。在后臺完成I/O操作時,向應(yīng)用程序發(fā)起通知,通知有兩種方式:一種是產(chǎn)生一個信號,另一種是執(zhí)行一個基于線程的回調(diào)函數(shù)來完成這次 I/O 處理過程。

第四種因為沒有任何的阻塞,無論是I/O上,還是事件通知上,所以,其可以讓你充分地利用CPU,比起第二種同步無阻塞好處就是,第二種要你一遍一遍地去輪詢。Nginx之所所以高效,是其使用了epoll和AIO的方式來進行I/O的。

再說一下Windows下的I/O模型,

a)一個是WriteFile系統(tǒng)調(diào)用,這個系統(tǒng)調(diào)用可以是同步阻塞的,也可以是同步無阻塞的,關(guān)于看文件是不是以O(shè)verlapped打開的。關(guān)于同步無阻塞,需要設(shè)置其最后一個參數(shù)Overlapped,微軟叫Overlapped I/O,你需要WaitForSingleObject才能知道有沒有寫完成。這個系統(tǒng)調(diào)用的性能可想而知。

b)另一個叫WriteFileEx的系統(tǒng)調(diào)用,其可以實現(xiàn)異步I/O,并可以讓你傳入一個callback函數(shù),等I/O結(jié)束后回調(diào)之, 但是這個回調(diào)的過程Windows是把callback函數(shù)放到了APC(Asynchronous Procedure Calls)的隊列中,然后,只用當(dāng)應(yīng)用程序當(dāng)前線程成為可被通知狀態(tài)(Alterable)時,才會被回調(diào)。只有當(dāng)你的線程使用了這幾個函數(shù)時WaitForSingleObjectEx, WaitForMultipleObjectsEx, MsgWaitForMultipleObjectsEx, SignalObjectAndWait 和 SleepEx,線程才會成為Alterable狀態(tài)。可見,這個模型,還是有wait,所以性能也不高。

c)然后是IOCP – IO Completion Port,IOCP會把I/O的結(jié)果放在一個隊列中,但是,偵聽這個隊列的不是主線程,而是專門來干這個事的一個或多個線程去干(老的平臺要你自己創(chuàng)建線程,新的平臺是你可以創(chuàng)建一個線程池)。IOCP是一個線程池模型。這個和Linux下的AIO模型比較相似,但是實現(xiàn)方式和使用方式完全不一樣。

當(dāng)然,真正提高I/O性能方式是把和外設(shè)的I/O的次數(shù)降到最低,最好沒有,所以,對于讀來說,內(nèi)存cache通常可以從質(zhì)上提升性能,因為內(nèi)存比外設(shè)快太多了。對于寫來說,cache住要寫的數(shù)據(jù),少寫幾次,但是cache帶來的問題就是實時性的問題,也就是latency會變大,我們需要在寫的次數(shù)上和相應(yīng)上做權(quán)衡。

B)多核CPU調(diào)優(yōu)

關(guān)于CPU的多核技術(shù),我們知道,CPU0是很關(guān)鍵的,如果0號CPU被用得過狠的話,別的CPU性能也會下降,因為CPU0是有調(diào)整功能的,所以,我們不能任由操作系統(tǒng)負載均衡,因為我們自己更了解自己的程序,所以,我們可以手動地為其分配CPU核,而不會過多地占用CPU0,或是讓我們關(guān)鍵進程和一堆別的進程擠在一起。
• 對于Windows來說,我們可以通過"任務(wù)管理器"中的"進程"而中右鍵菜單中的"設(shè)置相關(guān)性……"(Set Affinity…)來設(shè)置并限制這個進程能被運行在哪些核上。
• 對于Linux來說,可以使用taskset命令來設(shè)置(你可以通過安裝schedutils來安裝這個命令:apt-get install schedutils)

多核CPU還有一個技術(shù)叫NUMA技術(shù)(Non-Uniform Memory Access)。傳統(tǒng)的多核運算是使用SMP(Symmetric Multi-Processor )模式,多個處理器共享一個集中的存儲器和I/O總線。于是就會出現(xiàn)一致存儲器訪問的問題,一致性通常意味著性能問題。NUMA模式下,處理器被劃分成多個node, 每個node有自己的本地存儲器空間。關(guān)于NUMA的一些技術(shù)細節(jié),你可以查看一下這篇文章《Linux 的 NUMA 技術(shù)》,在Linux下,對NUMA調(diào)優(yōu)的命令是:numactl 。如下面的命令:(指定命令"myprogram arg1 arg2"運行在node 0 上,其內(nèi)存分配在node 0 和 1上)

numactl --cpubind=0 --membind=0,1 myprogram arg1 arg2

當(dāng)然,上面這個命令并不好,因為內(nèi)存跨越了兩個node,這非常不好。最好的方式是只讓程序訪問和自己運行一樣的node,如:

$ numactl --membind 1 --cpunodebind 1 --localalloc myapplication

C)文件系統(tǒng)調(diào)優(yōu)

關(guān)于文件系統(tǒng),因為文件系統(tǒng)也是有cache的,所以,為了讓文件系統(tǒng)有最大的性能。首要的事情就是分配足夠大的內(nèi)存,這個非常關(guān)鍵,在Linux下可以使用free命令來查看 free/used/buffers/cached,理想來說,buffers和cached應(yīng)該有40%左右。然后是一個快速的硬盤控制器,SCSI會好很多。最快的是Intel SSD 固態(tài)硬盤,速度超快,但是寫次數(shù)有限。

接下來,我們就可以調(diào)優(yōu)文件系統(tǒng)配置了,對于Linux的Ext3/4來說,幾乎在所有情況下都有所幫助的一個參數(shù)是關(guān)閉文件系統(tǒng)訪問時間,在/etc/fstab下看看你的文件系統(tǒng) 有沒有noatime參數(shù)(一般來說應(yīng)該有),還有一個是dealloc,它可以讓系統(tǒng)在最后時刻決定寫入文件發(fā)生時使用哪個塊,可優(yōu)化這個寫入程序。還要注間一下三種日志模式:data=journal、data=ordered和data=writeback。默認設(shè)置data=ordered提供性能和防護之間的最佳平衡。

當(dāng)然,對于這些來說,ext4的默認設(shè)置基本上是最佳優(yōu)化了。

這里介紹一個Linux下的查看I/O的命令—— iotop,可以讓你看到各進程的磁盤讀寫的負載情況。

其它還有一些關(guān)于NFS、XFS的調(diào)優(yōu),大家可以上google搜索一些相關(guān)優(yōu)化的文章看看。關(guān)于各文件系統(tǒng),大家可以看一下這篇文章——《Linux日志文件系統(tǒng)及性能分析》

4.5)數(shù)據(jù)庫調(diào)優(yōu)

數(shù)據(jù)庫調(diào)優(yōu)并不是我的強項,我就僅用我非常有限的知識說上一些吧。注意,下面的這些東西并不一定正確,因為在不同的業(yè)務(wù)場景,不同的數(shù)據(jù)庫設(shè)計下可能會得到完全相反的結(jié)論,所以,我僅在這里做一些一般性的說明,具體問題還要具體分析。

A)數(shù)據(jù)庫引擎調(diào)優(yōu)

我對數(shù)據(jù)庫引擎不是熟,但是有幾個事情我覺得是一定要去了解的。
• 數(shù)據(jù)庫的鎖的方式。這個非常非常地重要。并發(fā)情況下,鎖是非常非常影響性能的。各種隔離級別,行鎖,表鎖,頁鎖,讀寫鎖,事務(wù)鎖,以及各種寫優(yōu)先還是讀優(yōu)先機制。性能最高的是不要鎖,所以,分庫分表,冗余數(shù)據(jù),減少一致性事務(wù)處理,可以有效地提高性能。NoSQL就是犧牲了一致性和事務(wù)處理,并冗余數(shù)據(jù),從而達到了分布式和高性能。
• 數(shù)據(jù)庫的存儲機制。不但要搞清楚各種類型字段是怎么存儲的,更重要的是數(shù)據(jù)庫的數(shù)據(jù)存儲方式,是怎么分區(qū)的,是怎么管理的,比如Oracle的數(shù)據(jù)文件,表空間,段,等等。了解清楚這個機制可以減輕很多的I/O負載。比如:MySQL下使用show engines;可以看到各種存儲引擎的支持。不同的存儲引擎有不同的側(cè)重點,針對不同的業(yè)務(wù)或數(shù)據(jù)庫設(shè)計會讓你有不同的性能。
• 數(shù)據(jù)庫的分布式策略。最簡單的就是復(fù)制或鏡像,需要了解分布式的一致性算法,或是主主同步,主從同步。通過了解這種技術(shù)的機理可以做到數(shù)據(jù)庫級別的水平擴展。

B)SQL語句優(yōu)化

關(guān)于SQL語句的優(yōu)化,首先也是要使用工具,比如:MySQL SQL Query Analyzer,Oracle SQL Performance Analyzer,或是微軟SQL Query Analyzer,基本上來說,所有的RMDB都會有這樣的工具,來讓你查看你的應(yīng)用中的SQL的性能問題。 還可以使用explain來看看SQL語句最終Execution Plan會是什么樣的。

還有一點很重要,數(shù)據(jù)庫的各種操作需要大量的內(nèi)存,所以服務(wù)器的內(nèi)存要夠,優(yōu)其應(yīng)對那些多表查詢的SQL語句,那是相當(dāng)?shù)暮膬?nèi)存。

下面我根據(jù)我有限的數(shù)據(jù)庫SQL的知識說幾個會有性能問題的SQL:
• 全表檢索。比如:select * from user where lastname = "xxxx",這樣的SQL語句基本上是全表查找,線性復(fù)雜度O(n),記錄數(shù)越多,性能也越差(如:100條記錄的查找要50ms,一百萬條記錄需要5分鐘)。對于這種情況,我們可以有兩種方法提高性能:一種方法是分表,把記錄數(shù)降下來,另一種方法是建索引(為lastname建索引)。索引就像是key-value的數(shù)據(jù)結(jié)構(gòu)一樣,key就是where后面的字段,value就是物理行號,對索引的搜索復(fù)雜度是基本上是O(log(n)) ——用B-Tree實現(xiàn)索引(如:100條記錄的查找要50ms,一百萬條記錄需要100ms)。
• 索引。對于索引字段,最好不要在字段上做計算、類型轉(zhuǎn)換、函數(shù)、空值判斷、字段連接操作,這些操作都會破壞索引原本的性能。當(dāng)然,索引一般都出現(xiàn)在Where或是Order by字句中,所以對Where和Order by子句中的子段最好不要進行計算操作,或是加上什么NOT之類的,或是使用什么函數(shù)。
• 多表查詢。關(guān)系型數(shù)據(jù)庫最多的操作就是多表查詢,多表查詢主要有三個關(guān)鍵字,EXISTS,IN和JOIN(關(guān)于各種join,可以參看圖解SQL的Join一文)。基本來說,現(xiàn)代的數(shù)據(jù)引擎對SQL語句優(yōu)化得都挺好的,JOIN和IN/EXISTS在結(jié)果上有些不同,但性能基本上都差不多。有人說,EXISTS的性能要好于IN,IN的性能要好于JOIN,我各人覺得,這個還要看你的數(shù)據(jù)、schema和SQL語句的復(fù)雜度,對于一般的簡單的情況來說,都差不多,所以千萬不要使用過多的嵌套,千萬不要讓你的SQL太復(fù)雜,寧可使用幾個簡單的SQL也不要使用一個巨大無比的嵌套N級的SQL。還有人說,如果兩個表的數(shù)據(jù)量差不多,Exists的性能可能會高于In,In可能會高于Join,如果這兩個表一大一小,那么子查詢中,Exists用大表,In則用小表。這個,我沒有驗證過,放在這里讓大家討論吧。另,有一篇關(guān)于SQL Server的文章大家可以看看《IN vs JOIN vs EXISTS》
• JOIN操作。有人說,Join表的順序會影響性能,只要Join的結(jié)果集是一樣,性能和join的次序無關(guān)。因為后臺的數(shù)據(jù)庫引擎會幫我們優(yōu)化的。Join有三種實現(xiàn)算法,嵌套循環(huán),排序歸并,和Hash式的Join。(MySQL只支持第一種) • 嵌套循環(huán),就好像是我們常見的多重嵌套循環(huán)。注意,前面的索引說過,數(shù)據(jù)庫的索引查找算法用的是B-Tree,這是O(log(n))的算法,所以,整個算法復(fù)法度應(yīng)該是O(log(n)) * O(log(m)) 這樣的。
• Hash式的Join,主要解決嵌套循環(huán)的O(log(n))的復(fù)雜,使用一個臨時的hash表來標(biāo)記。
• 排序歸并,意思是兩個表按照查詢字段排好序,然后再合并。當(dāng)然,索引字段一般是排好序的。

還是那句話,具體要看什么樣的數(shù)據(jù),什么樣的SQL語句,你才知道用哪種方法是最好的。
• 部分結(jié)果集。我們知道MySQL里的Limit關(guān)鍵字,Oracle里的rownum,SQL Server里的Top都是在限制前幾條的返回結(jié)果。這給了我們數(shù)據(jù)庫引擎很多可以調(diào)優(yōu)的空間。一般來說,返回top n的記錄數(shù)據(jù)需要我們使用order by,注意在這里我們需要為order by的字段建立索引。有了被建索引的order by后,會讓我們的select語句的性能不會被記錄數(shù)的所影響。使用這個技術(shù),一般來說我們前臺會以分頁方式來顯現(xiàn)數(shù)據(jù),Mysql用的是OFFSET,SQL Server用的是FETCH NEXT,這種Fetch的方式其實并不好是線性復(fù)雜度,所以,如果我們能夠知道order by字段的第二頁的起始值,我們就可以在where語句里直接使用>=的表達式來select,這種技術(shù)叫seek,而不是fetch,seek的性能比fetch要高很多。
• 字符串。正如我前面所說的,字符串操作對性能上有非常大的惡夢,所以,能用數(shù)據(jù)的情況就用數(shù)字,比如:時間,工號,等。
• 全文檢索。千萬不要用Like之類的東西來做全文檢索,如果要玩全文檢索,可以嘗試使用Sphinx。
• 其它。 • 不要select *,而是明確指出各個字段,如果有多個表,一定要在字段名前加上表名,不要讓引擎去算。
• 不要用Having,因為其要遍歷所有的記錄。性能差得不能再差。
• 盡可能地使用UNION ALL 取代 UNION。
• 索引過多,insert和delete就會越慢。而update如果update多數(shù)索引,也會慢,但是如果只update一個,則只會影響一個索引表。
本文發(fā)布于北京網(wǎng)站建設(shè)公司尚品中國http://m.wingst.cn/
來源聲明:

本文章系尚品中國編輯原創(chuàng)或采編整理,如需轉(zhuǎn)載請注明來自尚品中國。以上內(nèi)容部分(包含圖片、文字)來源于網(wǎng)絡(luò),如有侵權(quán),請及時與本站聯(lián)系(010-60259772)。

立即預(yù)約專屬顧問 開啟數(shù)字化轉(zhuǎn)型之旅!

10年+資深項目經(jīng)理1V1服務(wù) | 行業(yè)定制化方案 | 精準(zhǔn)報價體系
獲取策劃方案
立即預(yù)約專屬顧問 開啟數(shù)字化轉(zhuǎn)型之旅!

咨詢我們,獲得專業(yè)的服務(wù)和報價

聯(lián)系我們,免費獲取項目方案及報價,或只是聊一聊您的項目? 在收到您的需求留言后我們將由專業(yè)人員于24小時內(nèi)與您取得聯(lián)系,請您保持電話暢通!

  • 科研院所解決方案
  • 外貿(mào)出海解決方案
  • 協(xié)會學(xué)會解決方案
  • 集團上市公司解決方案
  • 生物醫(yī)藥解決方案
  • 制造業(yè)解決方案
  • 高校教育解決方案
  • 信創(chuàng)網(wǎng)站改造解決方案
更多服務(wù)咨詢,請聯(lián)系尚品

010-60259772

您的姓名 *
您的電話 *
您的郵箱
公司名稱 *
超碰人人乐 | 91九色国产| 久久99久久久久 | 国产精品99蜜臀久久不卡二区 | 欧美 国产 视频 | 成人国产一区二区 | 在线观看黄色小视频 | 开心综合网 | 8x8x在线观看视频 | 91热精品| 国产九九热视频 | av在线免费观看网站 | 国产成人av电影 | 国产精品视频地址 | 欧美91成人网 | 99热免费在线 | 精品国产一区二 | 91黄色在线视频 | 日韩欧美国产激情在线播放 | 色视频在线免费 | 日本中文字幕在线播放 | 成人av电影免费在线观看 | 麻豆网站免费观看 | 午夜精品一区二区三区在线视频 | 69视频在线播放 | 国产小视频你懂的在线 | 日韩激情网 | 韩日精品在线 | 天天看天天干 | 国产亚洲免费观看 | 亚洲精品国产片 | 精品福利网站 | 日韩在线播放欧美字幕 | 国产69精品久久99的直播节目 | 日韩免费观看高清 | 超碰在线97观看 | 欧美动漫一区二区三区 | 天天艹天天 | ww亚洲ww亚在线观看 | 成人黄色片免费 | 久久亚洲电影 | 国色天香永久免费 | 在线 精品 国产 | 午夜精品视频一区 | 人人爽人人爽人人爽 | 久久免费看a级毛毛片 | 色婷婷婷 | 午夜精品久久久久久99热明星 | 国产精品嫩草影院99网站 | 日韩av免费一区 | 九九免费观看全部免费视频 | 日本性生活一级片 | 91av在线国产 | 色夜影院 | 久久久久久国产精品免费 | 热久久免费视频 | 久久视频在线免费观看 | 国产在线永久 | 免费国产黄线在线观看视频 | 日本高清中文字幕有码在线 | 国产精品不卡在线播放 | 成年人在线免费看视频 | 免费观看性生交 | 免费看黄色大全 | 久久综合给合久久狠狠色 | 99热精品国产一区二区在线观看 | 日本不卡一区二区三区在线观看 | 中文字幕在线观看播放 | 亚洲精品777 | 亚洲人成人99网站 | 九色精品在线 | 日日天天av | 久久精品中文字幕少妇 | 亚洲免费av网站 | 狠狠狠狠狠狠狠狠干 | 日韩欧美大片免费观看 | 久久久久久毛片精品免费不卡 | 国产在线一区二区 | 成人国产综合 | 久久久久国产一区二区三区四区 | 欧美韩日在线 | 999成人国产| 五月激情天| 成人动漫视频在线 | 国产精品日韩在线播放 | 亚洲午夜大片 | 日本中文字幕网站 | 国产欧美综合视频 | 黄色大片视频网站 | 操操操综合 | 免费在线国产精品 | 午夜国产一区二区三区四区 | av久久在线 | 日韩午夜剧场 | 在线观看日本高清mv视频 | 亚洲色图美腿丝袜 | 99国产成+人+综合+亚洲 欧美 | 国产亚洲精品美女久久 | 国产久视频| 国产手机精品视频 | 在线观看视频你懂 | 国产午夜精品视频 | 国产一级不卡视频 | 成人久久久久久久久久 | 日韩在线观看第一页 | 亚州国产精品视频 | 麻豆精品视频在线观看免费 | 一区在线电影 | www.夜色321.com | 色视频在线 | 天天操天天操天天操天天操天天操天天操 | 国产精品久久久久久麻豆一区 | 成人免费在线看片 | 特级黄色片免费看 | 欧美性超爽 | 婷婷丁香色| 久久综合偷偷噜噜噜色 | 在线国产视频观看 | av免费看电影| 亚洲成人av免费 | 亚洲91视频| 日韩二三区 | 99久久www | 国产在线观看中文字幕 | 激情开心| 成人av动漫在线 | av免费线看| 亚洲麻豆精品 | 国产理论一区二区三区 | 区一区二区三在线观看 | 亚洲成人家庭影院 | 欧美va天堂在线电影 | 99视频精品全部免费 在线 | 特级西西www44高清大胆图片 | 人人爱在线视频 | 91九色蝌蚪 | 91精品久久香蕉国产线看观看 | 91香蕉视频污在线 | 97色资源 | 中文字幕视频三区 | 中文字幕一区在线观看视频 | 美女视频a美女大全免费下载蜜臀 | 三级在线国产 | 亚洲精品久久久久58 | 久久欧美精品 | 91久久精品日日躁夜夜躁国产 | 91麻豆国产 | 在线观看中文字幕视频 | 欧美aaa级片 | 中文字幕 国产专区 | 丁香花在线观看免费完整版视频 | 国产精品6 | 337p西西人体大胆瓣开下部 | 九九久久久久久久久激情 | 国产日本在线播放 | avav片 | 九九综合九九 | 91精品综合在线观看 | 国产福利免费在线观看 | www视频免费在线观看 | 色成人亚洲网 | 欧美一区二区三区免费看 | 免费一级片观看 | 亚洲理论片 | 亚洲国产精品成人va在线观看 | 婷婷中文字幕在线观看 | av黄色免费看 | 在线 欧美 日韩 | av成年人电影 | 黄色av网站在线免费观看 | 国产视频一区二区在线 | 玖玖国产精品视频 | 精品电影一区 | 亚洲成av人片一区二区梦乃 | 少妇bbbb搡bbbb搡bbbb | av在观看 | 欧美日韩精品免费观看 | 久久精品国产亚洲aⅴ | 欧美韩国日本在线观看 | 久久国产成人午夜av影院宅 | 国产精品久久久久久欧美 | 99久久精品免费 | 一区二区视频免费在线观看 | 国产精品久久久久影院 | 天天操夜操 | 99热国产在线 | 亚洲激情综合 | 在线免费观看麻豆视频 | 国产在线一线 | 亚洲精品啊啊啊 | 国产一及片 | 久久99影院 | 五月天激情视频在线观看 | 最新中文在线视频 | 成人午夜黄色 | 亚洲涩综合 | 91免费高清 | 1024手机在线看 | 午夜天使 | 欧美夫妻生活视频 | 亚洲综合色av | 97视频网址 | 免费观看久久 | 蜜桃av人人夜夜澡人人爽 | 蜜臀av夜夜澡人人爽人人桃色 | 国产精品久久久久久久久久久免费看 | 精品视频9999 | 成片视频在线观看 | 色综合天天视频在线观看 | 久久99免费观看 | 天天摸天天干天天操天天射 | 一区二区三区四区不卡 | av成人动漫在线观看 | 92国产精品久久久久首页 | 黄色在线网站噜噜噜 | av不卡网站| 久久这里有精品 | 黄网av在线 | 国产老太婆免费交性大片 | 国产探花视频在线播放 | 中文理论片 | 黄色av网站在线免费观看 | 人人爽人人搞 | 精品国产一区二区三区久久久蜜月 | 97成人精品区在线播放 | 午夜av免费在线观看 | 日韩在线国产 | 手机av电影在线 | 欧美性网站| 99久久久| 日韩一级黄色av | 国产精品久久久久三级 | 国产精品视频99 | 欧美成人999 | 91影视成人 | 91久久精品一区二区三区 | 视频在线一区二区三区 | 在线观看国产日韩欧美 | 久久久久中文 | 韩国av一区 | 国产精品成人久久 | 中文字幕在线观看91 | 亚洲一区二区三区精品在线观看 | 国产精品日韩久久久久 | 亚洲免费成人 | 日韩啪啪小视频 | 国产精品1000 | 99欧美视频 | 日本一区二区三区免费看 | 手机看片福利 | 欧美精品在线观看免费 | 伊人婷婷色| 天天干天天色2020 | 日本成人中文字幕在线观看 | 人人舔人人| 最近中文字幕第一页 | 99热.com| 国产高清精 | 国产做aⅴ在线视频播放 | 日韩精品免费在线播放 | 日日干视频 | 揉bbb玩bbb少妇bbb | 色综合久久久久综合体桃花网 | 欧美一级片在线观看视频 | av一级免费| 视频在线99 | 国产精品久久久久久久久久久久 | 午夜精品久久久久久久爽 | 日本不卡123区 | 亚洲国产精品第一区二区 | 999久久久久久久久 69av视频在线观看 | 国产精品1区2区3区在线观看 | 天天操操操操操操 | av成人免费在线观看 | 97热视频| 欧美日韩国产在线一区 | 亚洲免费不卡 | 成人污视频在线观看 | 欧洲视频一区 | 在线精品视频免费播放 | 亚洲三级在线播放 | 精品99在线观看 | 久久精品网址 | 久久国产高清 | 久久精品国产成人精品 | 欧美久久久久久久久中文字幕 | 国产剧情一区二区 | 99人成在线观看视频 | 一区二区三区在线观看免费视频 | 免费视频在线观看网站 | 狠狠色丁香婷婷综合欧美 | 麻豆传媒视频在线播放 | 成人久久18免费网站麻豆 | 欧美一区二区三区在线观看 | 国产98色在线 | 日韩 | 日韩91精品 | 国产精品久久久久久吹潮天美传媒 | 国产性xxxx | 日韩在线视频观看免费 | 精品麻豆入口免费 | 3d黄动漫免费看 | 欧美激情第十页 | 91九色精品女同系列 | 国产精品久久久久久一二三四五 | 免费观看国产精品视频 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 婷婷六月激情 | 日日干网址 | 欧美精品久久久久久久亚洲调教 | 久久一区国产 | av+在线播放在线播放 | 玖玖在线看 | 亚洲四虎影院 | 91福利视频免费 | 18性欧美xxxⅹ性满足 | 免费视频黄 | 欧美一级电影在线观看 | 日韩av成人在线观看 | 在线精品观看 | 99国产精品 | 射射射综合网 | 4438全国亚洲精品在线观看视频 | 日韩av手机在线看 | 色妞久久福利网 | 亚洲视频电影在线 | 91丨porny丨九色 | 伊人射| 成人av电影免费观看 | 久久国产精品久久w女人spa | 亚洲三区在线 | 99精品在线观看视频 | 在线国产一区二区 | 五月婷婷,六月丁香 | 在线不卡a | 成人久久| 久久久久国产精品免费免费搜索 | 香蕉免费 | 91亚洲激情 | 久久精品99久久 | 国产一区高清在线 | 成人国产精品电影 | 特级黄色一级 | 1024久久 | 国产在线国偷精品产拍免费yy | 欧美日韩高清国产 | 欧美日韩一区二区久久 | 国产日韩中文字幕在线 | 9999激情 | av中文资源在线 | 人人草在线视频 | 亚洲最大av在线播放 | 91热视频在线观看 | 欧美精品亚洲二区 | 欧美贵妇性狂欢 | 成人一区二区在线观看 | 色香蕉视频 | 521色香蕉网站在线观看 | 一级黄色片毛片 | 久久综合毛片 | 一区二区三区久久精品 | 亚洲视频电影在线 | 欧美综合在线观看 | 久久精品99国产精品日本 | 精品一区在线看 | 国产一区二区影院 | 人人插人人玩 | 狠狠色免费 | 国产日产亚洲精华av | 热久久国产 | 91亚洲在线观看 | 美女黄濒| 国产亚洲婷婷免费 | 99色在线视频 | 天天干天天操天天爱 | 日韩精品一区二区不卡 | 一区电影| 久久久一本精品99久久精品66 | 国产午夜精品一区二区三区四区 | av在线免费在线观看 | 免费涩涩网站 | 久久免费视频一区 | 午夜成人免费影院 | 丝袜美女在线观看 | 国产精品麻豆91 | 国产精品久久久久久久久软件 | 国产精品九九久久久久久久 | 久久国产精品久久精品 | 久久99精品国产 | 日日操日日 | 亚洲国产欧美在线人成大黄瓜 | 91欧美视频网站 | 永久免费精品视频 | 婷婷六月中文字幕 | 亚洲视频精品在线 | 在线欧美小视频 | 少妇bbb好爽 | 亚洲精品国产综合99久久夜夜嗨 | 成人h动漫精品一区二 | 国产人成精品一区二区三 | 337p日本欧洲亚洲大胆裸体艺术 | 丁香婷婷激情网 | 亚洲精品乱码久久久久久高潮 | 精品国产一区二区三区四区在线观看 | 国产五十路毛片 | 日韩精品视频在线免费观看 | 欧美日韩高清在线一区 | 在线欧美a | 精品婷婷 | a v在线视频 | 久久久久精 | 五月激情视频 | 97日日| 国产情侣一区 | 成年人免费观看在线视频 | 国产精品综合久久久久久 | a在线播放| 国产精品破处视频 | 欧美激情精品久久久久久免费 | 色五月成人 | 日韩三级不卡 | 亚洲视频播放 | 91在线www | 国产亚洲精品美女 | 91精品免费在线视频 | 丁香综合激情 | 亚洲精品合集 | 81精品国产乱码久久久久久 | 99国产精品久久久久久久久久 | 91九色网站 | 激情开心色 | 日韩欧美视频在线观看免费 | 久久久综合色 | 欧美精品色 | 夜夜操天天 | 天天射天天射 | 97日日碰人人模人人澡分享吧 | 欧美精品在线观看免费 | 狠狠狠狠狠狠狠 | 精品久久久久久久久久久久久久久久久久 | 四虎影视4hu4虎成人 | 久久午夜精品影院一区 | 色在线网 | av一二三区 | 国产99久| 黄色三级久久 | 懂色av懂色av粉嫩av分享吧 | 丁香在线视频 | 高清中文字幕 | 久草资源免费 | 日韩视频中文字幕在线观看 | 亚洲国产三级在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久伊人五月天 | 欧美 日韩 成人 | 91丨九色丨国产丨porny精品 | 国产精品国产亚洲精品看不卡15 | 久久99热国产| 九九精品毛片 | 国产精品久久久久久久av电影 | 日韩av在线免费播放 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 日韩xxx视频 | 欧美大香线蕉线伊人久久 | 97操碰 | 久久99久久99精品免观看粉嫩 | 五月婷婷,六月丁香 | 日韩精品一区二区三区电影 | 日韩欧美国产免费播放 | 亚洲视频在线视频 | 成人av网址大全 | 亚洲国产欧美一区二区三区丁香婷 | 免费a现在观看 | 99精品在线看 | 亚洲精品视频免费 | 久久香蕉国产精品麻豆粉嫩av | 精品国产乱子伦一区二区 | 久久久精品免费看 | 成年人国产在线观看 | 美女久久网站 | 久久99亚洲精品久久久久 | 免费看麻豆 | 中文字幕一区二区三区精华液 | 亚洲精品在线观看中文字幕 | 伊人精品影院 | 亚洲片在线资源 | 国产区在线视频 | 国产淫片 | 亚洲黄色免费在线看 | 6080yy午夜一二三区久久 | 玖玖精品在线 | 国产h片在线观看 | 国产精品久久久久影视 | 国内精品中文字幕 | 国产视频1| 精品国内自产拍在线观看视频 | 在线黄色av电影 | 成人高清av在线 | 成人欧美在线 | 99久久精品免费一区 | 国产精品一区二区三区在线免费观看 | 91免费观看国产 | 超碰人人91 | 免费性网站 | 91精品国产综合久久婷婷香蕉 | 久久综合加勒比 | 五月天伊人网 | 国产日韩视频在线观看 | 国产精品第72页 | 亚洲精品免费在线播放 | 欧美成人性战久久 | 亚洲一区网站 | 黄色综合 | 欧美激情第八页 | 日韩三级精品 | 久久久在线免费观看 | 精品国产乱码久久久久久1区2匹 | 少妇资源站 | 天天操天天色天天 | 午夜av片| www.激情五月.com | 日韩欧美精选 | 亚洲一级黄色大片 | 成年人黄色av| 深夜免费福利视频 | 国产精品二区在线观看 | 黄色亚洲在线 | 曰本免费av | 中文字幕在线播放第一页 | 久久九九久久 | 亚洲精品永久免费视频 | 国产在线观看你懂得 | 国产黄色看片 | 日韩精品网址 | 国产一区二区高清视频 | 免费高清国产 | 亚洲午夜久久久影院 | 在线韩国电影免费观影完整版 | 久草手机视频 | 免费看污的网站 | 一区二区三区www | 91av视频观看| 黄色一级大片免费看 | 在线观看亚洲国产精品 | 一区二区三区在线播放 | www99久久 | 日韩一区二区三 | 久草精品视频在线看网站免费 | 亚洲精品久 | 97爱爱爱| 中文字幕人成一区 | 色婷婷免费视频 | 国内外成人在线视频 | 欧美色道| 91日本在线播放 | 国产视频97| 五月花激情 | www.狠狠 | 人人爱人人做人人爽 | 伊人伊成久久人综合网站 | 国产男女无遮挡猛进猛出在线观看 | 天天操福利视频 | 久久久久久久国产精品 | 狠狠狠综合| 色成人亚洲 | 天天夜夜狠狠操 | 97狠狠干 | 国产精品一区二区在线 | www操操| 精品国产自在精品国产精野外直播 | 黄色毛片一级 | 午夜精品导航 | 国产在线97| 在线精品视频免费播放 | 中文字幕视频播放 | 天天干夜夜操视频 | 国产精品毛片久久久久久久久久99999999 | 国产精品女人久久久久久 | 99视频这里只有 | 9在线观看免费高清完整版 玖玖爱免费视频 | 免费三级av| 国产成人精品一区二区三区网站观看 | 日本不卡123区 | 中文字幕在线视频免费播放 | 日日骑| 中文字幕一区二区三区久久蜜桃 | 亚州精品在线视频 | 国产高清av在线播放 | 美女视频网站久久 | 波多野结衣视频网址 | 国产最新在线视频 | 亚洲h色精品 | 国产亚洲视频系列 | 黄a网 | 欧美不卡视频在线 | 国产精品 中文字幕 亚洲 欧美 | 亚洲夜夜网 | 天天射天天操天天色 | 日韩在线第一 | 99视频精品视频高清免费 | 综合网av | av高清在线 | 成人免费看黄 | 天天操夜夜摸 | 伊人网综合在线观看 | 日韩视频免费 | 久久天天综合网 | 成人亚洲精品久久久久 | 黄色大片国产 | 亚洲精品久久在线 | 亚洲午夜在线视频 | 91激情视频在线 | 成人天堂网 | 亚洲婷婷综合色高清在线 | av夜夜操| 午夜精品视频一区二区三区在线看 | 欧美一级片免费播放 | 96久久欧美麻豆网站 | av经典在线| 九色精品免费永久在线 | 久久国内视频 | 亚洲精品av中文字幕在线在线 | 国产精品黑丝在线观看 | 色狠狠综合 | 欧美日韩久 | 欧美亚洲xxx | 国产成人在线观看免费 | 国产精品成人免费精品自在线观看 | 在线中文字幕电影 | 国产精品99精品 | 中文字幕观看视频 | 91看片淫黄大片一级在线观看 | 欧美午夜精品久久久久久孕妇 | 中文字幕在线观看亚洲 | 最近中文字幕在线播放 | 97精产国品一二三产区在线 | 91视频在线免费 | 国产手机av在线 | 午夜久久影院 | 91 在线视频播放 | 亚洲一级二级三级 | 天天射一射 | 成人久久精品视频 | 青草视频在线 | 在线久热 | 国产精品成人久久久久久久 | 香蕉网站在线观看 | 丁香资源影视免费观看 | 正在播放国产精品 | 五月激情六月丁香 | 久草精品资源 | 欧美激情操 | 一区二区国产精品 | 日本三级在线观看中文字 | 亚洲五月六月 | 日韩在线不卡视频 | 天天综合网天天综合色 | 免费网站观看www在线观看 | av成人免费在线看 | 天天干中文字幕 | 亚洲欧美精品一区 | av 一区二区三区 | 五月天天av| 国产精品12345 | 最近中文字幕大全中文字幕免费 | 国产一区二区在线影院 | 午夜av剧场 | 91精品蜜桃 | 黄色片网站大全 | 91av99| 国产精品久久久久久久久大全 | 中文字幕乱码日本亚洲一区二区 | 国产午夜免费视频 | 成人黄色毛片视频 | 亚洲一二区精品 | 美女视频永久黄网站免费观看国产 | 日韩免费中文 | 欧美性大战 | 国产精品成人自产拍在线观看 | 免费av在线网 | 欧美日韩不卡一区二区 | 天天激情综合网 | 日韩资源在线播放 | freejavvideo日本免费 | 欧美日韩久| 免费福利视频网站 | 日韩免费三区 | 综合色天天 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 成人午夜在线电影 | 国产午夜在线观看视频 | 国产精品午夜久久久久久99热 | 97视频在线观看成人 | 久久怡红院 | 美女视频黄的免费的 | 激情av网址| 91精品免费在线视频 | 精品一区精品二区高清 | 国产女人40精品一区毛片视频 | 探花视频在线观看+在线播放 | 午夜视频播放 | 色综合久久久久久中文网 | 一区二区激情视频 | 国产亚洲精品美女久久 | 中文字幕精品一区二区三区电影 | 在线观看免费一区 | 亚洲干视频在线观看 | 91香蕉视频污在线 | 国产在线精品观看 | 久99久中文字幕在线 | 韩国视频一区二区三区 | 欧美日韩二三区 | 97国产视频| 最近中文字幕免费大全 | 久久国产精品99久久久久久丝袜 | 国产一级电影在线 | 久久新 | 国产精品久久久999 国产91九色视频 | 国产小视频在线播放 | bbbb操bbbb| 成人黄色电影在线播放 | 91精品第一页 | 色综合在 | 亚洲精品资源 | 久久福利| 免费观看9x视频网站在线观看 | 国产精品久久久久久麻豆一区 | 色在线免费视频 | free. 性欧美.com| 国产资源网 | 中文在线免费看视频 | 国产黄色看片 | 婷婷黄色片 | 99精品免费在线 | 国产视频在线免费观看 | 亚洲国产影院av久久久久 | 成人午夜在线电影 | 国产精品麻豆果冻传媒在线播放 | 成人av影视 | 国产小视频在线免费观看 | 国产99久久九九精品 | 九九久久免费 | 99色视频在线 | 国产精品美女久久久久久 | 久久精品播放 | 99在线热播精品免费99热 | 久久这里精品视频 | 超级av在线| 91大神精品视频 | 中文字幕在线观看第二页 | 娇妻呻吟一区二区三区 | 亚洲一区二区三区四区精品 | av视屏在线播放 | 免费网站看v片在线a | 国产精品黄色在线观看 | 欧美有色 | av成人在线观看 | 国产xvideos免费视频播放 | 成年人黄色在线观看 | 日本动漫做毛片一区二区 | 国产91av视频在线观看 | 在线你懂 | 国产精品久久久久一区二区 | 日韩系列在线 | 黄色片网站大全 | 国产99久久精品一区二区永久免费 | 欧美一级免费 | 久草在线这里只有精品 | avv天堂| 亚洲特级毛片 | 亚洲午夜剧场 | 国产成人三级一区二区在线观看一 | 国产视频一区在线免费观看 | 国产精品尤物视频 | zzijzzij亚洲成熟少妇 | 美女视频黄频 | 97电影手机 | 国产精品va在线播放 | 手机在线欧美 | 久久久久久久久久久久久久电影 | 国产二区电影 | 在线观看a视频 | 狠狠色丁香久久综合网 | 天天干天天做 | 伊人成人精品 | 最近中文字幕 | 92国产精品久久久久首页 | 国产精品嫩草影院123 | 四虎成人精品永久免费av | 亚洲丝袜一区二区 | 国产视频一区在线 | 九九九九九九精品任你躁 | 免费在线观看日韩视频 | 久草免费电影 | 狠狠干天天干 | 麻豆免费在线视频 | 一区二区激情 | 综合网天天射 | 久久久黄色av | a国产精品 | 日本最大色倩网站www | 超碰国产在线 | 久久夜色网 | 99色在线观看视频 | 黄色91在线| 亚洲国产精久久久久久久 | 天天干 夜夜操 | 成人动漫一区二区 | 国产麻豆精品在线观看 | 国产亚洲精品成人av久久ww | 久久久久久久久久久高潮一区二区 | 久久久国产精品一区二区三区 | 天天操天天怕 | 右手影院亚洲欧美 | 久久久久久久久久久久久久免费看 | 国产精品一区二区久久久久 | 亚洲欧洲一级 | 久久成人高清 | 国产高清精品在线观看 | 中文字幕视频播放 | av高清一区二区三区 | 九九热精品视频在线观看 | 久久久鲁 | 国产精品九九热 | 视频一区二区三区视频 | 一级片色播影院 | 天天激情| 美女久久久久久久久久久 | 国产精品视频久久久 | 99热九九这里只有精品10 | 成人av动漫在线观看 | 国产精品久久久久久久久久ktv | 亚洲视频专区在线 | 国产精品入口久久 | 久久精品99国产精品亚洲最刺激 | 精品久久久久久电影 | 一区二区三区久久精品 | 日日干日日操 | 成人免费看片98欧美 | 91视频麻豆视频 | 美女福利视频一区二区 | 最新精品视频在线 | 日韩r级电影在线观看 | 国产成人香蕉 | 中文字幕在线观看网 | 天天干天天搞天天射 | 成年人电影免费看 | 国产精品中文久久久久久久 | 亚洲精品66| 国产三级视频在线 | 特黄色大片 | 久久久久一区二区三区 | 蜜臀av免费一区二区三区 | 国产婷婷精品 | 欧美精品做受xxx性少妇 | 久久成人一区二区 | 99热亚洲精品 | 激情欧美一区二区三区 | 午夜精品av在线 | 色97在线 | 久久夜色精品国产欧美一区麻豆 | 国产精品久久久久9999 | 天天躁日日躁狠狠躁av麻豆 | 久久资源总站 | 激情丁香月 | 久久草草热国产精品直播 | 久草视频免费在线观看 | 国产黄在线播放 | 久久久久一区 | 国产成人三级在线 | 在线视频a | 中文字幕欧美日韩va免费视频 | 在线国产能看的 | 欧美日韩国产页 | 99999精品| 偷拍视频一区 | 国产精品情侣视频 | 黄色一级免费电影 | 黄色a在线观看 | 国产精品美女久久久久久2018 | 久久老司机精品视频 | 激情av网 | 日韩午夜大片 | 久久久午夜影院 | 国产亚洲久久 | 午夜神马福利 | 日韩精品免费在线观看 | 日韩高清av | 亚洲aⅴ久久精品 | 五月婷婷在线综合 | 精品久久久久亚洲 | 天天干天天操天天操 | 欧美激情视频一区二区三区 | 亚洲激情 欧美激情 | 狠狠撸电影 | 亚洲专区视频在线观看 | 国产成人精品一区二三区 | www.天天综合 | 97超碰在线资源 | 91爱爱电影| 91丨九色丨蝌蚪丨对白 | 中文字幕一区二区三区乱码在线 | 国产亚洲综合性久久久影院 | 超碰成人网 | 91av在线免费观看 | 久久综合免费 | 国产精品一区二区无线 | 三三级黄色片之日韩 | 91福利免费 | 国产免费一区二区三区网站免费 | av3级在线 | 香蕉视频免费在线播放 | 五月婷婷在线观看 | 91传媒激情理伦片 | 最新av网站在线观看 | 精品a级片 | 十八岁免进欧美 | 国产麻豆精品久久一二三 | 18岁免费看片 | 国产精品va在线 | 27xxoo无遮挡动态视频 | 亚洲 欧美日韩 国产 中文 | 国产精品久久久免费 | 国产精品网站 | 日本在线观看中文字幕无线观看 | 亚洲国内精品在线 | 91精品久久久久久 | 国产一级精品视频 | 欧美巨乳波霸 | 91综合色 | 中文字幕在线视频免费播放 | 日韩一区二区三区高清免费看看 | 国产第一页精品 | 香蕉网址| 国产破处视频在线播放 | 午夜精品久久久 | 激情综合婷婷 | 四季av综合网站 | 国产黄在线 | 午夜影院日本 | 日韩av中文在线观看 | 免费看国产精品 | 国产精品视频线看 | 日日射av| 欧美精品久久久久久久久久久 | 亚洲精品av在线 | 精品国产_亚洲人成在线 | 国产精品视屏 | 国产一区自拍视频 | 久久久九色精品国产一区二区三区 | 深爱五月网 | 在线黄网站 | 久久国内免费视频 | 成人动图 | 亚洲国产精久久久久久久 | 最近中文字幕大全中文字幕免费 | 成人久久18免费网站 | 最新av观看 | 中文字幕在线国产精品 | 在线小视频 | 999久久久国产精品 高清av免费观看 | 国产精品一区二区三区在线看 | 色吊丝在线永久观看最新版本 | 免费在线国产视频 | 国产一级不卡视频 | 在线播放视频一区 | 久久伊人色综合 | 97超碰福利久久精品 | 日韩精品在线看 | 国产理论片在线观看 | 日韩aⅴ视频 | 久久伦理| 91精品一区二区在线观看 | 波多野结衣在线观看一区二区三区 | 香蕉网址 | 午夜视频在线观看一区二区 | 久久公开视频 | 又黄又刺激视频 | 一级免费观看 | 亚洲午夜精品一区二区三区电影院 | 高清久久久久久 | 色综合久久88色综合天天免费 | 久久69精品 | 国产精品久久久777 成人手机在线视频 | 五月天综合网站 | 日韩亚洲在线观看 | 亚洲精品中文在线观看 | av在线免费观看网站 | 超碰日韩 | 在线有码中文字幕 | 一本大道久久精品懂色aⅴ 五月婷社区 | 精品国产91亚洲一区二区三区www | 久久香蕉电影 | 中文av在线天堂 | 国产成人精品一区一区一区 | 狠狠色噜噜狠狠狠狠2022 | 黄色网址中文字幕 | 天天操 夜夜操 | 四川妇女搡bbbb搡bbbb搡 |