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

終于知道Kafka為什么這么快了!

開源 Kafka
無論 Kafka 作為 MQ 也好,還是作為存儲層也罷,無非就是兩個功能,一是 Producer 生產的數據存到 Broker,二是 Consumer 從 Broker 讀取數據。

 無論 Kafka 作為 MQ 也好,還是作為存儲層也罷,無非就是兩個功能,一是 Producer 生產的數據存到 Broker,二是 Consumer 從 Broker 讀取數據。

[[337633]]
圖片來自 Pexels

 

那 Kafka 的快也就體現在讀寫兩個方面了,下面我們就聊聊 Kafka 快的原因。

[[337634]]

 

利用 Partition 實現并行處理

我們都知道 Kafka 是一個 Pub-Sub 的消息系統,無論是發布還是訂閱,都要指定 Topic。

Topic 只是一個邏輯的概念。每個 Topic 都包含一個或多個 Partition,不同 Partition 可位于不同節點。

一方面,由于不同 Partition 可位于不同機器,因此可以充分利用集群優勢,實現機器間的并行處理。

另一方面,由于 Partition 在物理上對應一個文件夾,即使多個 Partition 位于同一個節點,也可通過配置讓同一節點上的不同 Partition 置于不同的磁盤上,從而實現磁盤間的并行處理,充分發揮多磁盤的優勢。

能并行處理,速度肯定會有提升,多個工人肯定比一個工人干的快??梢圆⑿袑懭氩煌拇疟P?那磁盤讀寫的速度可以控制嗎?那就先簡單扯扯磁盤 I/O 的那些事。

硬盤性能的制約因素是什么?如何根據磁盤 I/O 特性來進行系統設計?

硬盤內部主要部件為磁盤盤片、傳動手臂、讀寫磁頭和主軸馬達。實際數據都是寫在盤片上,讀寫主要是通過傳動手臂上的讀寫磁頭來完成。

實際運行時,主軸讓磁盤盤片轉動,然后傳動手臂可伸展讓讀取頭在盤片上進行讀寫操作。

磁盤物理結構如下圖所示:

 

由于單一盤片容量有限,一般硬盤都有兩張以上的盤片,每個盤片有兩面,都可記錄信息,所以一張盤片對應著兩個磁頭。

盤片被分為許多扇形的區域,每個區域叫一個扇區。盤片表面上以盤片中心為圓心,不同半徑的同心圓稱為磁道,不同盤片相同半徑的磁道所組成的圓柱稱為柱面。

磁道與柱面都是表示不同半徑的圓,在許多場合,磁道和柱面可以互換使用。

磁盤盤片垂直視角如下圖所示:

 

影響磁盤的關鍵因素是磁盤服務時間,即磁盤完成一個 I/O 請求所花費的時間,它由尋道時間、旋轉延遲和數據傳輸時間三部分構成。

機械硬盤的連續讀寫性能很好,但隨機讀寫性能很差,這主要是因為磁頭移動到正確的磁道上需要時間,隨機讀寫時,磁頭需要不停的移動,時間都浪費在了磁頭尋址上,所以性能不高。衡量磁盤的重要主要指標是 IOPS 和吞吐量。

在許多的開源框架如 Kafka、HBase 中,都通過追加寫的方式來盡可能的將隨機 I/O 轉換為順序 I/O,以此來降低尋址時間和旋轉延時,從而最大限度的提高 IOPS。

感興趣的同學可以看看磁盤 I/O 那些事[1],磁盤讀寫的快慢取決于你怎么使用它,也就是順序讀寫或者隨機讀寫。

順序寫磁盤

 

Kafka 中每個分區是一個有序的,不可變的消息序列,新的消息不斷追加到 Partition 的末尾,這個就是順序寫。

很久很久以前就有人做過基準測試:《每秒寫入 2 百萬(在三臺廉價機器上)》

  1. http://ifeve.com/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines/ 

由于磁盤有限,不可能保存所有數據,實際上作為消息系統 Kafka 也沒必要保存所有數據,需要刪除舊的數據。

又由于順序寫入的原因,所以 Kafka 采用各種刪除策略刪除數據的時候,并非通過使用“讀 - 寫”模式去修改文件,而是將 Partition 分為多個 Segment。

每個 Segment 對應一個物理文件,通過刪除整個文件的方式去刪除 Partition 內的數據。

這種方式清除舊數據的方式,也避免了對文件的隨機寫操作。

充分利用 Page Cache

引入 Cache 層的目的是為了提高 Linux 操作系統對磁盤訪問的性能。Cache 層在內存中緩存了磁盤上的部分數據。

當數據的請求到達時,如果在 Cache 中存在該數據且是最新的,則直接將數據傳遞給用戶程序,免除了對底層磁盤的操作,提高了性能。Cache 層也正是磁盤 IOPS 為什么能突破 200 的主要原因之一。

在 Linux 的實現中,文件 Cache 分為兩個層面,一是 Page Cache,另一個 Buffer Cache,每一個 Page Cache 包含若干 Buffer Cache。

Page Cache 主要用來作為文件系統上的文件數據的緩存來用,尤其是針對當進程對文件有 read/write 操作的時候。

Buffer Cache 則主要是設計用來在系統對塊設備進行讀寫的時候,對塊進行數據緩存的系統來使用。

使用 Page Cache 的好處:

  • I/O Scheduler 會將連續的小塊寫組裝成大塊的物理寫從而提高性能。
  • I/O Scheduler 會嘗試將一些寫操作重新按順序排好,從而減少磁盤頭的移動時間。
  • 充分利用所有空閑內存(非 JVM 內存)。如果使用應用層 Cache(即 JVM 堆內存),會增加 GC 負擔。
  • 讀操作可直接在 Page Cache 內進行。如果消費和生產速度相當,甚至不需要通過物理磁盤(直接通過 Page Cache)交換數據。
  • 如果進程重啟,JVM 內的 Cache 會失效,但 Page Cache 仍然可用。

Broker 收到數據后,寫磁盤時只是將數據寫入 Page Cache,并不保證數據一定完全寫入磁盤。從這一點看,可能會造成機器宕機時,Page Cache 內的數據未寫入磁盤從而造成數據丟失。

但是這種丟失只發生在機器斷電等造成操作系統不工作的場景,而這種場景完全可以由 Kafka 層面的 Replication 機制去解決。

如果為了保證這種情況下數據不丟失而強制將 Page Cache 中的數據 Flush 到磁盤,反而會降低性能。

也正因如此,Kafka 雖然提供了 flush.messages 和 flush.ms 兩個參數將 Page Cache 中的數據強制 Flush 到磁盤,但是 Kafka 并不建議使用。

零拷貝技術

Kafka 中存在大量的網絡數據持久化到磁盤(Producer 到 Broker)和磁盤文件通過網絡發送(Broker 到 Consumer)的過程。這一過程的性能直接影響 Kafka 的整體吞吐量。

操作系統的核心是內核,獨立于普通的應用程序,可以訪問受保護的內存空間,也有訪問底層硬件設備的權限。

為了避免用戶進程直接操作內核,保證內核安全,操作系統將虛擬內存劃分為兩部分,一部分是內核空間(Kernel-space),一部分是用戶空間(User-space)。

傳統的 Linux 系統中,標準的 I/O 接口(例如 read,write)都是基于數據拷貝操作的,即 I/O 操作會導致數據在內核地址空間的緩沖區和用戶地址空間的緩沖區之間進行拷貝,所以標準 I/O 也被稱作緩存 I/O。

這樣做的好處是,如果所請求的數據已經存放在內核的高速緩沖存儲器中,那么就可以減少實際的 I/O 操作,但壞處就是數據拷貝的過程,會導致 CPU 開銷。

我們把 Kafka 的生產和消費簡化成如下兩個過程來看[2]:

  • 網絡數據持久化到磁盤 (Producer 到 Broker)
  • 磁盤文件通過網絡發送(Broker 到 Consumer)

①網絡數據持久化到磁盤 (Producer 到 Broker)

傳統模式下,數據從網絡傳輸到文件需要 4 次數據拷貝、4 次上下文切換和兩次系統調用。

  1. data = socket.read()// 讀取網絡數據  
  2. File file = new File()  
  3. file.write(data)// 持久化到磁盤  
  4. file.flush() 

這一過程實際上發生了四次數據拷貝:

  • 首先通過 DMA copy 將網絡數據拷貝到內核態 Socket Buffer。
  • 然后應用程序將內核態 Buffer 數據讀入用戶態(CPU copy)。
  • 接著用戶程序將用戶態 Buffer 再拷貝到內核態(CPU copy)。
  • 最后通過 DMA copy 將數據拷貝到磁盤文件。

DMA(Direct Memory Access):直接存儲器訪問。DMA 是一種無需 CPU 的參與,讓外設和系統內存之間進行雙向數據傳輸的硬件機制。

使用 DMA 可以使系統 CPU 從實際的 I/O 數據傳輸過程中擺脫出來,從而大大提高系統的吞吐率。

同時,還伴隨著四次上下文切換,如下圖所示:

 

數據落盤通常都是非實時的,Kafka 生產者數據持久化也是如此。Kafka 的數據并不是實時的寫入硬盤,它充分利用了現代操作系統分頁存儲來利用內存提高 I/O 效率,就是上一節提到的 Page Cache。

對于 Kafka 來說,Producer 生產的數據存到 Broker,這個過程讀取到 socket buffer 的網絡數據,其實可以直接在內核空間完成落盤。

并沒有必要將 socket buffer 的網絡數據,讀取到應用進程緩沖區;在這里應用進程緩沖區其實就是 Broker,Broker 收到生產者的數據,就是為了持久化。

在此特殊場景下:接收來自 socket buffer 的網絡數據,應用進程不需要中間處理、直接進行持久化時??梢允褂?mmap 內存文件映射。

Memory Mapped Files:簡稱 mmap,也有叫 MMFile 的,使用 mmap 的目的是將內核中讀緩沖區(read buffer)的地址與用戶空間的緩沖區(user buffer)進行映射。

從而實現內核緩沖區與應用程序內存的共享,省去了將數據從內核讀緩沖區(read buffer)拷貝到用戶緩沖區(user buffer)的過程。

它的工作原理是直接利用操作系統的 Page 來實現文件到物理內存的直接映射。完成映射之后你對物理內存的操作會被同步到硬盤上。

使用這種方式可以獲取很大的 I/O 提升,省去了用戶空間到內核空間復制的開銷。

mmap 也有一個很明顯的缺陷:不可靠,寫到 mmap 中的數據并沒有被真正的寫到硬盤,操作系統會在程序主動調用 Flush 的時候才把數據真正的寫到硬盤。

Kafka 提供了一個參數 producer.type 來控制是不是主動 Flush;如果 Kafka 寫入到 mmap 之后就立即 Flush,然后再返回 Producer 叫同步(sync)。

寫入 mmap 之后立即返回 Producer 不調用 Flush 就叫異步(async),默認是 sync。

 

零拷貝(Zero-copy)技術指在計算機執行操作時,CPU 不需要先將數據從一個內存區域復制到另一個內存區域,從而可以減少上下文切換以及 CPU 的拷貝時間。

它的作用是在數據報從網絡設備到用戶程序空間傳遞的過程中,減少數據拷貝次數,減少系統調用,實現 CPU 的零參與,徹底消除 CPU 在這方面的負載。

目前零拷貝技術主要有三種類型[3]:

  • 直接 I/O:數據直接跨過內核,在用戶地址空間與 I/O 設備之間傳遞,內核只是進行必要的虛擬存儲配置等輔助工作。
  • 避免內核和用戶空間之間的數據拷貝:當應用程序不需要對數據進行訪問時,則可以避免將數據從內核空間拷貝到用戶空間,mmap,sendfile,splice && tee,sockmap。
  • copy on write:寫時拷貝技術,數據不需要提前拷貝,而是當需要修改的時候再進行部分拷貝。

②磁盤文件通過網絡發送(Broker 到 Consumer)

傳統方式實現:先讀取磁盤、再用 Socket 發送,實際也是進過四次 Copy。

  1. buffer = File.read  
  2. Socket.send(buffer) 

這一過程可以類比上邊的生產消息:

  • 首先通過系統調用將文件數據讀入到內核態 Buffer(DMA 拷貝)。
  • 然后應用程序將內存態 Buffer 數據讀入到用戶態 Buffer(CPU 拷貝)。
  • 接著用戶程序通過 Socket 發送數據時將用戶態 Buffer 數據拷貝到內核態 Buffer(CPU 拷貝)。
  • 最后通過 DMA 拷貝將數據拷貝到 NIC Buffer。

Linux 2.4+ 內核通過 Sendfile 系統調用,提供了零拷貝。數據通過 DMA 拷貝到內核態 Buffer 后,直接通過 DMA 拷貝到 NIC Buffer,無需 CPU 拷貝。這也是零拷貝這一說法的來源。

除了減少數據拷貝外,因為整個讀文件,網絡發送由一個 Sendfile 調用完成,整個過程只有兩次上下文切換,因此大大提高了性能。

 

Kafka 在這里采用的方案是通過 NIO 的 transferTo/transferFrom 調用操作系統的 Sendfile 實現零拷貝。

總共發生 2 次內核數據拷貝、2 次上下文切換和一次系統調用,消除了 CPU 數據拷貝。

批處理

在很多情況下,系統的瓶頸不是 CPU 或磁盤,而是網絡IO。

因此,除了操作系統提供的低級批處理之外,Kafka 的客戶端和 Broker 還會在通過網絡發送數據之前,在一個批處理中累積多條記錄 (包括讀和寫)。

記錄的批處理分攤了網絡往返的開銷,使用了更大的數據包從而提高了帶寬利用率。

數據壓縮

Producer 可將數據壓縮后發送給 Broker,從而減少網絡傳輸代價,目前支持的壓縮算法有:Snappy、Gzip、LZ4。數據壓縮一般都是和批處理配套使用來作為優化手段的。

下次面試官問我 Kafka 為什么快,我就這么說:

  • Partition 并行處理。
  • 順序寫磁盤,充分利用磁盤特性。
  • 利用了現代操作系統分頁存儲 Page Cache 來利用內存提高 I/O 效率。
  • 采用了零拷貝技術:Producer 生產的數據持久化到 Broker,采用 mmap 文件映射,實現順序的快速寫入;Customer 從 Broker 讀取數據,采用 Sendfile,將磁盤文件讀到 OS 內核緩沖區后,轉到 NIO buffer進行網絡發送,減少 CPU 消耗。

參考資料:

  • 美團——磁盤 I/O 那些事

https://tech.meituan.com/2017/05/19/about-desk-io.html

  • Kafka零拷貝

https://zhuanlan.zhihu.com/p/78335525

  • Linux - Zero-copy(零拷貝)

https://cllc.fun/2020/03/18/linux-zero-copy/

作者:不假

編輯:陶家龍

出處:轉載自公眾號 JavaKeeper(ID:JavaKeeper)

 

責任編輯:武曉燕 來源: JavaKeeper
相關推薦

2024-02-26 21:15:20

Kafka緩存參數

2020-03-30 15:05:46

Kafka消息數據

2018-10-28 15:40:23

Python編程語言

2021-10-13 09:00:19

排序數據集開發

2023-11-02 10:22:29

gRPC后端通信

2024-11-26 08:52:34

SQL優化Kafka

2013-03-04 10:10:36

WebKit瀏覽器

2018-08-16 08:03:21

Python語言解釋器

2022-06-02 08:03:19

PyCharmPython代碼

2019-08-30 14:58:47

JavaScript程序員編程語言

2020-02-27 15:44:41

Nginx服務器反向代理

2022-06-13 21:52:02

CDN網絡節點

2020-02-27 21:03:30

調度器架構效率

2024-07-30 09:01:12

2024-09-14 09:41:17

2012-08-17 10:01:07

云計算

2020-06-16 14:13:50

Kubernetes容器Linux

2022-05-30 10:23:59

HTTPHTTP 1.1TCP

2024-03-07 10:21:56

2014-05-26 17:00:51

點贊
收藏

51CTO技術棧公眾號

av网站免费在线观看| 亚洲精品毛片一区二区三区| 一区二区日韩| 欧美视频裸体精品| 在线视频不卡国产| 欧美熟妇另类久久久久久不卡| 日韩av网站在线观看| 欧美美女操人视频| 特级西西www444人体聚色| 亚洲精品一区国产| 欧美性猛片xxxx免费看久爱| 欧美视频在线观看视频| 天堂中文8资源在线8| 成人小视频在线| 国产精自产拍久久久久久| 日韩乱码人妻无码中文字幕| 希岛爱理一区二区三区| 亚洲精品美女久久| 国偷自产av一区二区三区麻豆| 日本综合字幕| 午夜视频久久久久久| 欧美性视频在线播放| 黄色小视频在线观看| 成人午夜又粗又硬又大| 成人免费激情视频| 亚洲精品毛片一区二区三区| 亚洲一区亚洲| 久久久爽爽爽美女图片| jizz亚洲少妇| 99精品视频在线观看播放| 亚洲图片欧美日产| 亚洲一区二区三区综合| 亚洲码欧美码一区二区三区| 91精品国产综合久久久蜜臀图片| 另类小说色综合| 免费日韩电影| 欧美午夜精品在线| 99er在线视频| 污污影院在线观看| 亚洲乱码中文字幕| 在线视频福利一区| 天堂中文8资源在线8| 国产精品麻豆久久久| 日本一区网站| 国产女主播在线写真| 久久午夜色播影院免费高清| 久久久久久久久四区三区| 黄色www视频| 成人av片在线观看| 国产乱码精品一区二区三区中文 | 国产成人精品一区二| 成人福利视频网| 伊人久久一区二区| 蜜桃视频在线观看一区| 国产欧美日韩专区发布| 91一区二区视频| 国产在线一区观看| 999久久久| 亚洲精品成人区在线观看| 国产999精品久久| 国产精品视频500部| 成人毛片视频免费看| av在线不卡免费看| 久久免费看av| 国产精品麻豆一区二区三区| 中文字幕免费观看一区| 综合网五月天| 污视频网站免费在线观看| 亚洲成a人v欧美综合天堂| av之家在线观看| 日韩影片中文字幕| 欧美日韩国产高清一区二区| 中文字幕1234区| 一区二区三区四区高清视频| 亚洲国产精品久久久久久| 18禁裸乳无遮挡啪啪无码免费| 视频国产一区| 久久久www成人免费精品张筱雨| 欧美日韩精品一区二区三区视频播放| 伊人久久亚洲影院| 日韩男女性生活视频| 国产精品毛片一区二区在线看舒淇 | 3344国产精品免费看| 人人草在线观看| 国产在线播放一区| 欧美成人综合一区| v天堂福利视频在线观看| 性欧美大战久久久久久久久| 999精品视频在线| 日韩区欧美区| 亚洲日韩中文字幕| 欧美日韩免费一区二区| 日韩中文字幕亚洲一区二区va在线| 国产日韩在线精品av| 国产 日韩 欧美 精品| 国产女人aaa级久久久级| 欧美黄网在线观看| 性感美女一区二区在线观看| 日韩欧美亚洲另类制服综合在线| 国产男女猛烈无遮挡a片漫画 | 玩弄japan白嫩少妇hd| 成人久久精品| 亚洲日韩中文字幕| 国产真实夫妇交换视频| 日本欧洲一区二区| 国产尤物91| 久久日韩视频| 欧美日韩国产精品一区二区三区四区 | 欧洲成人免费视频| 午夜精品久久久久久久99| 久久久久久亚洲综合| 国产xxxx振车| 色噜噜成人av在线| 亚洲人成网站777色婷婷| 精品无码黑人又粗又大又长| 黄色小说综合网站| 色播亚洲视频在线观看| 国产精品一二三产区| 在线综合+亚洲+欧美中文字幕| 欧美狂猛xxxxx乱大交3| 亚洲国产精品一区| 99国内精品久久久久久久软件| 国产大学生校花援交在线播放| 午夜婷婷国产麻豆精品| 久久久久亚洲av无码网站| 98精品久久久久久久| 国产精品18久久久久久首页狼| 亚洲av成人无码网天堂| 亚洲成人动漫在线观看| 中文字幕一区二区三区四| 成人精品影视| 国产精品爱久久久久久久| 色视频在线观看| 欧美日韩亚洲91| 国产精品久久久久久亚洲色 | 久久国产精品久久久久| 亚洲中文字幕一区二区| 国产欧美一区二区精品秋霞影院| 国模吧无码一区二区三区| 欧美色图五月天| 91国内精品久久| 午夜黄色小视频| 欧美日韩精品国产| 免费在线观看你懂的| 国产麻豆综合| 免费观看成人在线| 欧美成人h版| 一本色道久久88亚洲综合88 | 日韩欧美一区电影| 精品深夜av无码一区二区老年| 成人美女视频在线观看18| 妞干网在线观看视频| 久久影视三级福利片| 欧美一级电影久久| 麻豆影视在线| 欧美色综合久久| 亚洲一级理论片| 国精产品一区一区三区mba视频| 手机成人av在线| 欧一区二区三区| 欧美精品久久一区二区| 亚洲欧洲成人在线| 一本到高清视频免费精品| 亚洲av熟女国产一区二区性色 | 国产精品三级美女白浆呻吟| 91大神xh98hx在线播放| 91.麻豆视频| 久久午夜无码鲁丝片午夜精品| 不卡一区二区在线| 日本黄色三级大片| 99久精品视频在线观看视频| 99久久99久久| 欧美国产大片| 久久久精品电影| 狠狠人妻久久久久久综合麻豆| 黑人巨大精品欧美一区二区免费| 精品亚洲aⅴ无码一区二区三区| 黄色日韩网站视频| 99精品人妻少妇一区二区 | 国产成人高清精品免费5388| 亲子乱一区二区三区电影| sese一区| 精品粉嫩超白一线天av| 成人公开免费视频| 亚洲精品免费在线观看| 亚洲一级Av无码毛片久久精品| 久久国产99| 欧美h视频在线观看| 精品欧美午夜寂寞影院| 国产欧美精品久久久| 成人影音在线| 精品激情国产视频| 天堂在线免费av| 91精品国产入口在线| 在线观看黄网站| 亚洲精品视频自拍| 日本污视频网站| 成人精品国产免费网站| 九九热99视频| 在线亚洲欧美| 菠萝蜜视频在线观看入口| 成人激情在线| 欧美二区三区| 成人盗摄视频| 成人久久久久爱| 怡红院成人在线| 久久人人爽人人爽人人片av高请 | xx欧美撒尿嘘撒尿xx| 91久久在线| 日韩人妻一区二区三区蜜桃视频| 精品日本12videosex| 国产精品日本一区二区| 国产高清日韩| 国产欧美va欧美va香蕉在| 国产精品一区二区av影院萌芽| 欧美精品18videosex性欧美| 日本欧美在线视频免费观看| 亚洲情综合五月天| 天堂а√在线8种子蜜桃视频 | 欧美久久久久| 爱爱爱视频网站| 日韩一区二区三区免费播放| 欧美福利精品| 私拍精品福利视频在线一区| 国产精品v欧美精品∨日韩| 国内精品视频| 国产色综合天天综合网| 久久久成人av毛片免费观看| 欧美亚洲视频在线看网址| jizzjizz中国精品麻豆| 欧美日韩国产成人| 欧美精品videossex少妇| 久久精品99无色码中文字幕| 免费黄色在线看| 日韩中文在线观看| 蜜桃视频网站在线| 精品久久久av| av电影高清在线观看| 久久亚洲国产精品成人av秋霞| 老司机在线看片网av| 色噜噜狠狠狠综合曰曰曰| wwwww在线观看免费视频| 一区二区三欧美| 日本中文字幕在线观看| 久久影视电视剧免费网站| 国产超级va在线视频| 欧美精品亚州精品| 欧美v亚洲v| 亚洲91精品在线| 中文字幕在线高清| 国产精品第一区| 亚洲在线资源| 91九色在线观看| eeuss鲁片一区二区三区| 国产一区二区三区四区五区加勒比 | 欧美凹凸一区二区三区视频| 国产精品免费不| 伊人av成人| 欧美破处大片在线视频| 国产美女在线一区| 久久成人亚洲| 中文字幕在线视频精品| 风间由美一区二区三区在线观看| www.555国产精品免费| 91一区二区三区在线播放| 中文字幕免费高清| 国产精品久久看| 欧美精品videos极品| 午夜精品福利一区二区三区av| 久草国产精品视频| 欧美性大战久久久| 99国产精品99| 日韩国产高清视频在线| 成年人视频在线免费观看| 久久这里有精品视频| 91九色在线播放| 国产成人精品免费视频| 9.1麻豆精品| 精品国产一区二区三区日日嗨 | 日韩中文字幕无砖| 久久综合久久久| 国产精品99久久精品| 777av视频| 麻豆国产一区二区| 美女网站视频在线观看| 欧美极品另类videosde| 国内偷拍精品视频| 色狠狠av一区二区三区| www.日韩在线观看| 亚洲欧美综合区自拍另类| 国产成人午夜| 国产精品1区2区在线观看 | 亚洲风情亚aⅴ在线发布| 成年在线观看免费人视频| 色综合视频网站| 美女久久久久久| 九九九九九精品| 中文字幕一区二区三区乱码图片| 男人操女人免费软件| 激情综合网av| 亚洲ⅴ国产v天堂a无码二区| 亚洲一区av在线| 国产精品久久久久久免费播放| 亚洲精品狠狠操| 新版中文在线官网| 国产精品久久久久免费a∨| 风间由美中文字幕在线看视频国产欧美 | 国产刺激高潮av| 日韩中文字幕免费| 成人影院大全| 精品国产乱码久久久久久丨区2区| 国产精品毛片一区二区在线看| 中文字幕日本最新乱码视频| 国产成人午夜精品影院观看视频| 婷婷丁香综合网| 日本国产一区二区| 亚洲欧美日韩动漫| 久久久久久久久综合| 高清精品久久| 在线视频亚洲自拍| 青青国产91久久久久久| 右手影院亚洲欧美| 精品电影在线观看| 亚洲伦理在线观看| 欧美成人午夜激情视频| www.久久99| 中文字幕99| 麻豆精品蜜桃视频网站| 极品久久久久久久| 欧美日韩三级一区二区| 免费成人av电影| 日本久久久久久久久| 亚洲小说图片| 日韩有码免费视频| 久久一区二区三区国产精品| 日韩成人免费在线观看| 亚洲精品成人久久久| 7777kkk亚洲综合欧美网站| 国产精品免费区二区三区观看| 欧美久色视频| 美女伦理水蜜桃4| 亚洲成人自拍网| 婷婷丁香花五月天| 91爱视频在线| 久久99蜜桃| 91热这里只有精品| 国产精品对白交换视频| ,亚洲人成毛片在线播放| 久久久精品免费视频| 久久免费福利| av日韩在线看| av中文字幕一区| 国产又大又黄视频| 亚洲天堂av综合网| 亚洲福利影视| 800av在线免费观看| 成人av免费观看| 亚洲综合久久网| 在线视频国产日韩| 懂色av色香蕉一区二区蜜桃| 日本大片免费看| 久久婷婷色综合| 中文字幕第315页| 久久人人爽人人爽爽久久| 综合中文字幕| 国产免费人做人爱午夜视频| 中文字幕不卡的av| 性欧美8khd高清极品| 91超碰caoporn97人人| 精品99在线| 国产sm在线观看| 狠狠久久五月精品中文字幕| 在线视频二区| 精品国产_亚洲人成在线| 日本不卡中文字幕| 在线免费日韩av| 亚洲男人第一av网站| 日韩精品一页| 91成人在线观看喷潮教学| 国产精品日韩成人| 亚洲精品97久久中文字幕| 日韩av理论片| 一区二区中文字| 88久久精品无码一区二区毛片| 这里只有精品99re| 不卡一二三区| 超碰10000| 久久久精品2019中文字幕之3| 国产精品无码久久av| 欧美一区二三区| 亚洲精品国产首次亮相| 一区二区三区免费在线观看视频| 欧美日韩亚洲综合| 咪咪网在线视频| 国产日韩第一页| 久久免费看少妇高潮| 亚洲男人第一天堂| 国产欧美精品一区二区三区介绍| 一区二区三区四区五区精品视频| 久久国产高清视频|