国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網運營的一線實戰(zhàn)洞察。

從零拷貝到Kafka:sendfile、mmap與性能調優(yōu)實踐

從零拷貝到Kafka:sendfile、mmap與性能調優(yōu)實踐 1. 把“零拷貝”這三個字先拆開看零拷貝技術這個詞經常被講得玄乎其實它壓根不是“沒有拷貝”而是把 CPU 參與的數(shù)據(jù)搬運次數(shù)降到最低。只要數(shù)據(jù)還在磁盤和網卡之間流動DMA 那次拷貝就繞不開硬件總線上的電信號總得走一趟。所以更準確的說法是“減少 CPU 拷貝與上下文切換”而“零拷貝”只是這組優(yōu)化手段的統(tǒng)稱涵蓋 mmap、sendfile、splice、DMA gather 等一整套內核提供的接口。我做后端這些年發(fā)現(xiàn)一個現(xiàn)象很多人背得下“Kafka 快是因為零拷貝”但真讓他畫一次 Consumer 拉消息的完整數(shù)據(jù)流就卡殼了。而這類問題在排查線上性能瓶頸時非常致命——你以為是零拷貝沒生效實際上是 TLS 加密讓 sendfile 退化成了普通讀寫你以為是磁盤扛不住實際上是消費者 fetch 太碎導致小包滿天飛。這篇內容就圍繞零拷貝技術、常見幾種實現(xiàn)方案的取舍以及 Kafka 里到底哪條鏈路在用哪套方案展開順帶把“Kafka 為什么快”這件事講透別只停留在背結論的層面。適合誰看寫過 Java 或者做過服務端開發(fā)、用過消息隊列但沒深挖過底層、想在面試或者調優(yōu)時有話可說的同學也適合做數(shù)據(jù)管道、日志采集、文件服務的從業(yè)者因為零拷貝在那些場景里比在消息隊列里更常用。下面所有的數(shù)字和結論都基于 Linux 平臺的常規(guī)實現(xiàn)其他平臺會有差異我會在涉及的地方點出來。1.1 一次普通的文件發(fā)送數(shù)據(jù)到底走了幾趟先不看 Kafka就看最樸素的需求把服務端磁盤上一個大文件通過 Socket 發(fā)給客戶端。用 Java 寫出來大概是這樣FileInputStream fis new FileInputStream(data.log); byte[] buf new byte[8192]; Socket socket serverSocket.accept(); OutputStream os socket.getOutputStream(); int n; while ((n fis.read(buf)) ! -1) { os.write(buf, 0, n); }這段代碼邏輯沒毛病但底層發(fā)生的事比看上去多得多。read()和write()是兩個系統(tǒng)調用每一次都要從用戶態(tài)切進內核態(tài)處理完再切回用戶態(tài)。光這一套來回就是兩次上下文切換整個流程跑下來是四次切換用戶進程調用read()陷入內核態(tài)內核通過 DMA 把磁盤數(shù)據(jù)搬進內核的頁緩存page cache這次是DMA 拷貝內核把頁緩存里的數(shù)據(jù)復制到用戶態(tài)傳進來的buf數(shù)組這次是CPU 拷貝read()返回切回用戶態(tài)用戶進程調用write()再次陷入內核態(tài)內核把用戶buf里的數(shù)據(jù)復制到 Socket 發(fā)送緩沖區(qū)又是CPU 拷貝內核通過 DMA 把 Socket 緩沖區(qū)的數(shù)據(jù)搬到網卡DMA 拷貝write()返回切回用戶態(tài)。算下來總共4 次拷貝2 次 DMA 2 次 CPU4 次上下文切換。這里最虧的是第 3 步和第 6 步 —— 數(shù)據(jù)在用戶態(tài)和內核態(tài)之間被白搬了兩趟用戶進程其實壓根沒對數(shù)據(jù)做任何加工它只是當了回搬運工。對 8KB 的小文件來說這點開銷無所謂但當你在做視頻分發(fā)、日志投遞、備份同步這類動輒 GB 級的傳輸時這兩次純粹的內存拷貝會把 CPU 的 L1/L2 緩存沖得一塌糊涂內存帶寬也被吃掉一大塊。這里有個容易混淆的點DMA 拷貝也是拷貝只是不占 CPU。所謂“零拷貝”從來不承諾省掉 DMA它省的是 CPU 和上下文切換。1.2 四次上下文切換的隱性開銷上下文切換的成本常被低估。一次切換不只是保存寄存器、切換頁表那么簡單它還會污染 CPU 緩存 —— 用戶態(tài)剛預熱好的數(shù)據(jù)內核態(tài)處理時可能就被換出去了等你切回來緩存命中率掉一大截。高頻的 read/write 循環(huán)會把這個代價放大成一個顯著的性能拐點。我做個粗算假設單次上下文切換在 1 微秒量級傳 10GB 數(shù)據(jù)每次 8KB那就是 130 萬次 read 130 萬次 write約 520 萬次切換折算下來光切換就接近 5 秒的 CPU 時間這還不算兩次 CPU 拷貝吃掉的帶寬。在壓測里這個差距非常直觀同樣硬件用傳統(tǒng) read/write 走文件轉發(fā)吞吐可能卡在幾百 MB/s 且 CPU 某一個核直接跑滿換成 sendfile 之后CPU 占用能掉到原來的三分之一以下吞吐反而翻倍。這就是為什么零拷貝不是一個“錦上添花”的優(yōu)化而是大流量場景下的必選項。它把原本由 CPU 承擔的搬運工作交給內核和網卡硬件去做讓 CPU 騰出手來干真正需要它的事。1.3 零拷貝省掉的到底是什么把上面那張流程圖的賬重新算一遍真正無法消除的是兩次 DMA磁盤到頁緩存、緩沖到網卡可消除的是兩次 CPU 拷貝另外如果能讓用戶態(tài)完全不參與上下文切換也能從四次壓到兩次甚至更少。所以“零拷貝”這個名字有點營銷味它真實的含義是數(shù)據(jù)在內核態(tài)內部完成流轉用戶態(tài)不再復制一份完整的數(shù)據(jù)副本。數(shù)據(jù)依然要從磁盤到內存、從內存到網卡但那條“磁盤 → 內核 → 用戶 → 內核 → 網卡”的之字形路徑被拉直成了“磁盤 → 內核 → 網卡”。理解到這一層你就明白零拷貝有一個隱含前提你不需要修改數(shù)據(jù)內容。一旦你要對數(shù)據(jù)做加工加密、壓縮、格式轉換、內容過濾就必須把數(shù)據(jù)撈到用戶態(tài)零拷貝立刻失效。這一點在后面講 Kafka 用不了零拷貝的場景時會反復出現(xiàn)非常關鍵。2. 常見實現(xiàn)方案對比四條路線怎么選Linux 內核提供的零拷貝接口不止一個它們面向的場景并不一樣選錯了不僅沒收益還可能更慢。下面把主流四種拆開講mmapwrite、sendfile、sendfileDMA gather、splice。每一種我都標出它的拷貝次數(shù)和適用范圍方便你對照自己的業(yè)務做判斷。2.1 mmap write內存映射的取巧路線mmap()的思路是把內核頁緩存的一段區(qū)域映射到用戶進程的地址空間里。映射建立之后用戶程序讀寫那塊虛擬地址實際讀寫的就是頁緩存內核不需要再做第二份拷貝。用 mmap 重寫前面的發(fā)送邏輯FileChannel channel FileChannel.open(Paths.get(data.log), StandardOpenOption.READ); MappedByteBuffer mapped channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); SocketChannel socketChannel SocketChannel.open(addr); while (mapped.hasRemaining()) { socketChannel.write(mapped); }這條路徑上發(fā)生的事DMA 把磁盤數(shù)據(jù)搬進頁緩存mmap建立映射無拷貝write()時內核把頁緩存內容復制進 Socket 緩沖區(qū)CPU 拷貝最后 DMA 到網卡。總計3 次拷貝2 DMA 1 CPU4 次上下文切換。相比傳統(tǒng)方案省掉了一次 CPU 拷貝但write()那一步的拷貝還在因為 Socket 緩沖區(qū)是另一塊內存內核不能直接把頁緩存的頁掛上去。mmap 的優(yōu)點在于用戶態(tài)能讀寫數(shù)據(jù)。你可以一邊映射一邊改內容改完直接write不用來回拷貝。所以它適合那種“要檢查或微調數(shù)據(jù)但不希望整塊復制”的場景比如某些協(xié)議解析、內存數(shù)據(jù)庫的持久化文件。缺點是映射的建立和銷毀有成本頁緩存被長期占用大文件映射還可能觸發(fā)缺頁中斷風暴而且munmap時機不好控制的話容易造成內存回收壓力。2.2 sendfile把文件句柄直接交給內核sendfile()在 Linux 2.2 引入它的設計目標非常明確把一個文件描述符的內容直接倒進另一個描述符通常是 Socket用戶態(tài)完全不參與數(shù)據(jù)。ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);這一下把 read/write 那套徹底甩開了。內核內部的處理是DMA 把數(shù)據(jù)從磁盤讀進頁緩存然后內核把頁緩存內容復制進 Socket 緩沖區(qū)最后 DMA 發(fā)給網卡。一共3 次拷貝2 DMA 1 CPU但上下文切換只剩2 次—— 用戶進程發(fā)起sendfile進內核處理完返回中間不需要回用戶態(tài)。這個方案的收益非常明顯CPU 拷貝少了一次上下文切換少了一半而且整個邏輯走的是內核單一路徑緩存局部性也好。Java 里的FileChannel.transferTo()在 Linux 上最終就落到sendfile系統(tǒng)調用上這是后面理解 Kafka 的關鍵。不過 sendfile 2.2 的初版有個限制它只允許in_fd是文件、out_fd是 Socket反向不行而且用戶態(tài)拿不到數(shù)據(jù)只能“盲發(fā)”。想對內容做半點處理這條路就斷了。2.3 sendfile DMA gather真正的零 CPU 拷貝Linux 2.4 對 sendfile 做了一次關鍵升級如果網卡支持分散聚集Scatter-Gather DMA內核就不再把頁緩存的內容復制到 Socket 緩沖區(qū)而是只把數(shù)據(jù)的內存地址和長度描述符一個指針加長度的小結構追加到 Socket 緩沖區(qū)后面最后由網卡的 DMA 引擎按照描述符列表直接從頁緩存把數(shù)據(jù)攢起來發(fā)走。這次優(yōu)化把最后那一次 CPU 拷貝也干掉了數(shù)據(jù)流變成DMA磁盤→頁緩存 DMA gather頁緩存→網卡2 次拷貝2 次上下文切換CPU 完全不參與數(shù)據(jù)搬運。這才是真正意義上的“零拷貝”。代價是對硬件有要求網卡得支持 SG-DMA而且 Socket 緩沖區(qū)得能存描述符而不是數(shù)據(jù)本身?,F(xiàn)在主流的服務器網卡基本都支持所以你在生產環(huán)境上跑 Kafka 或者 Nginx 做靜態(tài)文件分發(fā)走的通常就是這一條。注意硬件不支持 SG-DMA 時內核會自動退化回 2.2 那條路徑功能不受影響但性能打折。判斷方法可以看ethtool -k 網卡名里的scatter-gather是否開啟。2.4 splice 與管道方案兩個 fd 之間的搬運工splice()是后來補上的一塊拼圖它解決的是 sendfile 早期只能“文件到 Socket”這一個方向的問題。splice 的做法是借助一個內核管道pipe作為中轉在兩個任意類型的文件描述符之間移動數(shù)據(jù)全程在內核態(tài)完成管道里流動的同樣只是頁的引用而不是數(shù)據(jù)副本。典型用法是先把數(shù)據(jù) splice 到管道再從管道 splice 到 Socket。它適合的場景比較特殊比如需要在兩個 Socket 之間做純轉發(fā)、或者構建代理服務。不過在標準的“文件發(fā)給客戶端”路徑上sendfile 更直接splice 多了一次管道操作優(yōu)勢不明顯。2.5 四種方案的橫向對比與選型建議把上面的分析壓成一張表選型時對著看就行方案數(shù)據(jù)拷貝次數(shù)上下文切換用戶態(tài)能否處理數(shù)據(jù)典型適用場景read write42 DMA 2 CPU4 次能小文件、需要對內容加工mmap write32 DMA 1 CPU4 次能可直接改映射區(qū)需要讀寫數(shù)據(jù)、內存映射文件sendfile32 DMA 1 CPU2 次不能文件直發(fā)、靜態(tài)資源分發(fā)sendfile DMA gather22 DMA2 次不能大文件分發(fā)、消息隊列讀路徑splice管道中轉22 DMA2 次不能代理轉發(fā)、任意 fd 之間搬運我個人的判斷邏輯很簡單要不要改數(shù)據(jù)。如果答案是“要”就從 mmap 和 read/write 里挑數(shù)據(jù)量小就別折騰直接 read/write 更省心如果答案是“不要”那 sendfile 系列基本是最優(yōu)解能上 DMA gather 就上不能也夠用。splice 屬于“sendfile 覆蓋不到的方向”時的備選日常業(yè)務里碰到的機會不多。還有一個常被忽略的點零拷貝不是免費的午餐。它省了 CPU但把壓力轉移到了頁緩存上——大量文件走 sendfile 會迅速吃掉 page cache擠占其他進程的文件緩存空間。所以在內存吃緊的機器上它帶來的收益可能被緩存淘汰的開銷抵消掉一部分這個后面講調優(yōu)時會再提。3. Kafka 里的零拷貝它用的是哪一條路線聊完通用方案回到 Kafka。很多人只知道“Kafka 用了零拷貝”但具體用在哪、用的是什么、什么情況下用不了說得清楚的不多。我把這條鏈路拆成三段消息怎么落到磁盤、broker 怎么把消息吐給消費者、索引文件為什么走的是另一套。3.1 消息從生產到落盤的這一段其實沒有零拷貝先糾正一個常見誤解零拷貝發(fā)生在消費路徑上不是生產路徑上。生產者發(fā)消息過來broker 收到的是一個字節(jié)流它需要做格式校驗、分配 offset、可能還要按批次重新組裝成日志格式這些操作都需要數(shù)據(jù)在用戶態(tài)可訪問所以這一段是普通的網絡讀寫加內存操作沒有零拷貝可言。不過生產路徑另有它的優(yōu)化手段順序追加寫和批量落盤。每條消息不是單獨一次write而是攢成一個批次batch追加到當前活躍的日志段文件末尾這樣磁盤磁頭或者說 SSD 的寫入單元幾乎不需要尋道。順序寫的吞吐能比隨機寫高出一個數(shù)量級這一點對 Kafka 的整體性能貢獻其實比零拷貝還大 —— 只是零拷貝更容易被拿來講故事。落盤之后消息就靜靜躺在日志段文件里等著被消費者拉取。真正的表演從這時開始。3.2 消費者拉取時transferTo 把數(shù)據(jù)直接推給網卡消費者發(fā) fetch 請求過來broker 的處理邏輯大致是定位到對應的日志段文件從指定 offset 開始讀取一段數(shù)據(jù)然后寫回 Socket。如果這一段用普通方式實現(xiàn)就是“讀文件到堆內存 → 寫 Socket”前面算過四次拷貝四次切換。Kafka 沒這么干。Java NIO 給FileChannel提供了transferTo(position, count, targetChannel)方法在 Linux 上它會被 JVM 映射到sendfile系統(tǒng)調用。Kafka 的日志讀取層封裝了一個TransferableChannel抽象明文連接PLAINTEXT的實現(xiàn)類在transferFrom里直接調用fileChannel.transferTo(...)把日志段文件和 Socket 通道接起來。Java 層面的調用形態(tài)大致是這樣// 簡化示意把日志段文件的一段區(qū)間直接推進 Socket long position segmentStartOffset relativeOffset; long count Math.min(remainingBytes, maxFetchBytes); fileChannel.transferTo(position, count, socketChannel);注意這里沒有byte[] buffer沒有read也沒有write數(shù)據(jù)從頁緩存直接被內核推向網卡。Java 代碼里只出現(xiàn)了一個文件通道和一個 Socket 通道用戶態(tài)從頭到尾沒碰過消息體。所以 Kafka 的消費鏈路實際是sendfile DMA gather那條路線磁盤 → 頁緩存DMA頁緩存描述符進 Socket 緩沖區(qū)網卡 DMA 按描述符取數(shù)發(fā)走。CPU 只負責發(fā)起調用和控制流程不搬數(shù)據(jù)。這就是為什么一臺普通配置的 broker 能扛住幾十萬條每秒的出口流量而 CPU 使用率還不高 —— 它壓根沒在干搬運的活。順便說一個實操中很值得注意的細節(jié)transferTo單次能傳的字節(jié)數(shù)有上限超過之后會分批循環(huán)調用。所以真正的日志段文件再大也沒關系內核會一段一段地推。但如果你看到transferTo返回 0 而數(shù)據(jù)還沒傳完那通常意味著 Socket 發(fā)送緩沖區(qū)滿了屬于正常的背壓不是 bug。3.3 為什么 Kafka 選 sendfile 而不是 mmap看到這里可能有人問既然 mmap 也能省一次拷貝而且用戶態(tài)還能訪問數(shù)據(jù)Kafka 為什么不用 mmap 讀日志原因很實在mmap 省的是拷貝但省不掉上下文切換和頁表開銷。mmap 路徑下每次發(fā)送依然是write()系統(tǒng)調用四次切換照舊而且大規(guī)模映射文件會帶來兩個麻煩一是頁表項暴漲二是內存不足時觸發(fā)缺頁中斷在 GC 敏感或者內存吃緊的機器上這種抖動很難受。Kafka 的日志文件是按段滾動、長期保留、體量巨大的映射一堆 GB 級文件對它來說不是好主意。反過來說Kafka 明確知道自己“不需要修改消息內容” —— broker 的職責就是存和轉消息體的解析交給客戶端。這個前提太適合 sendfile 了無加工、大塊連續(xù)、目標就是網絡。選型邏輯和前面那張表完全一致。3.4 索引文件反而用的是 mmap有意思的是Kafka 并沒有完全拋棄 mmap它把 mmap 用在了另一個地方偏移量索引文件和時間戳索引文件。這些索引文件的特點是小而碎——每條記錄只有 8 字節(jié)或 16 字節(jié)查詢時需要頻繁按 offset 定位。如果每次都走系統(tǒng)調用去讀開銷全在切換上。Kafka 用MappedByteBuffer把索引文件映射進內存查的時候直接在內存里做二分查找省掉了系統(tǒng)調用這一層。索引文件本身不大默認每 4KB 日志對應一條索引映射帶來的內存壓力可控正好揚長避短。所以準確的表述是Kafka 的消息數(shù)據(jù)走 sendfile索引數(shù)據(jù)走 mmap。兩套方案各用在它最擅長的地方這才是合理的工程取舍而不是“Kafka 用了零拷貝”這種一句話概括。理解了這一點你對零拷貝的理解才算從“聽說過”進到了“會用”。4. Kafka 為什么這么快零拷貝只是其中一塊拼圖標題里帶了“Kafka 為什么這么快”那就得說實話把性能全歸給零拷貝是偷懶的歸因。零拷貝確實在消費鏈路上貢獻很大但 Kafka 的高吞吐是好幾層設計疊加出來的結果。這一章逐層拆開順便說清楚零拷貝在什么情況下會失效——這部分內容比“它很快”有用得多。4.1 順序寫加頁緩存磁盤這一關被繞過去了Kafka 消息落盤是純追加永遠寫在文件末尾。機械盤上順序寫的吞吐可以到幾百 MB/sSSD 上更不用說這和隨機寫的差距是數(shù)量級的。而且現(xiàn)代操作系統(tǒng)會把空閑內存全拿來做 page cacheKafka 寫入時數(shù)據(jù)先進頁緩存由內核異步刷盤生產者感知到的延遲很低。這里有個很妙的聯(lián)動寫的時候數(shù)據(jù)進頁緩存消費的時候 sendfile 直接從頁緩存讀如果消息剛寫進來就被消費典型的實時管道場景整個鏈路一次磁盤 IO 都不需要發(fā)生全程在內存里完成。這個“寫緩存 零拷貝讀緩存”的組合才是 Kafka 吞吐數(shù)字好看的直接原因。4.2 批量、壓縮與分區(qū)并行把固定開銷攤薄單條消息走一次網絡請求代價太高Kafka 從協(xié)議層面就強制批量生產者端有batch.size和linger.ms控制攢批broker 端按批次存儲消費者端一次 fetch 也拉一批。批次越大每次請求的固定開銷網絡往返、系統(tǒng)調用、鎖競爭被攤得越薄。壓縮也是同理而且壓縮有個額外好處數(shù)據(jù)在磁盤上和在網絡上都是壓縮態(tài)broker 不解壓直接原樣轉發(fā)。壓縮比越高實際走零拷貝的字節(jié)數(shù)越少網絡和磁盤壓力同步下降。這就是為什么在日志采集這類文本重復度高的場景里開lz4或者zstd之后吞吐能明顯往上跳一截。再疊加分區(qū)一個 topic 分成多個 partition分散在不同 broker 上生產消費都并行。這一層是水平擴展的邏輯和零拷貝無關但對整體吞吐的貢獻同樣巨大。4.3 零拷貝失效的四種典型情況這一段是我最想讓你記住的因為它決定了你在線上遇到“Kafka 變慢”時該往哪查。第一種開啟 TLS/SSL 加密。這是最常見的失效原因。sendfile 的前提是數(shù)據(jù)原樣進網卡可一旦要加密就必須把數(shù)據(jù)撈到用戶態(tài)做加解密運算零拷貝直接退化成普通讀寫。所以同一個集群PLAINTEXT 端口和 SSL 端口的吞吐差距可能有一倍以上CPU 占用也完全不同。這不是配置問題是原理決定的只能靠加機器或者換加密方案來消化。第二種broker 端做消息格式轉換。當生產者和消費者使用的消息格式版本不一致broker 需要把日志里的消息反序列化再按目標格式重新序列化。這個過程中數(shù)據(jù)必須進用戶態(tài)零拷貝自然用不上。老版本集群升級期間這種情況很常見日志格式統(tǒng)一之后就好了。第三種消費端 fetch 請求太碎。每次只拉幾百字節(jié)transferTo還沒來得及發(fā)揮作用就結束了系統(tǒng)調用的固定開銷占比反而升高。表現(xiàn)出來就是 broker 的 CPU 不高、網絡包數(shù)量巨大、吞吐上不去。調大fetch.min.bytes和fetch.max.wait.ms讓消費者多等一會兒攢夠數(shù)據(jù)效果立竿見影。第四種客戶端和服務端壓縮算法不一致導致重壓縮。如果生產者用 gzip、broker 配置要求 zstdbroker 就得解壓再壓數(shù)據(jù)全程在用戶態(tài)走一遍。統(tǒng)一壓縮算法是必須遵守的紀律。4.4 一份可直接抄的參數(shù)清單下面這些參數(shù)是我在實際調優(yōu)里改動最頻繁的幾個列出來方便對照。默認值不一定適合你的場景特別是磁盤和網絡差異大的機器。參數(shù)作用位置調整思路num.io.threadsbroker處理請求的 IO 線程數(shù)通常設為磁盤數(shù)量的倍數(shù)num.network.threadsbroker網絡收發(fā)線程數(shù)高并發(fā)拉取場景適當增加log.segment.bytesbroker日志段大小默認 1GB小段利于清理但索引更碎socket.send.buffer.bytesbrokerSocket 發(fā)送緩沖區(qū)配合大流量拉取適當調大compression.typetopic / broker全鏈路統(tǒng)一文本類首選 lz4 或 zstdbatch.size/linger.ms生產者攢批大小與等待時間兩者互相制約fetch.min.bytes消費者單次拉取最小字節(jié)數(shù)調大可顯著減少請求數(shù)replica.fetch.max.bytesbroker副本同步單次拉取上限大消息場景要留意調參這件事有個基本順序先看瓶頸在哪一層磁盤、網絡、CPU、GC再動對應的參數(shù)一次只改一個維度并留出觀察窗口。上來就把十幾個參數(shù)一起改出了問題根本定位不到是哪一項引起的。5. 動手驗證怎么確認零拷貝真的生效了理論講完落到操作上。零拷貝這種東西最怕“以為自己開了”所以得能驗證。下面是我常用的幾個手段從輕到重排列都能在測試環(huán)境跑。5.1 用系統(tǒng)調用跟蹤看 sendfile 有沒有被調用最直接的辦法是盯系統(tǒng)調用。在 broker 進程上掛一個跟蹤過濾出 sendfile# 跟蹤指定進程的 sendfile 調用統(tǒng)計調用次數(shù)與傳輸字節(jié)數(shù) sudo strace -f -c -e tracesendfile,read,write -p broker_pid如果消費壓力上來之后sendfile的調用次數(shù)和返回字節(jié)數(shù)同步增長而read/write的增長相對平緩基本可以確認零拷貝在正常工作。反過來如果read和write的調用量異常高就要懷疑是不是走了加密端口、或者消費者拉得太碎。更細一點可以用-T參數(shù)看每次調用的耗時如果單次sendfile動輒幾百微秒通常是 Socket 緩沖區(qū)滿了在等屬于背壓信號而不是性能問題。# 顯示每次調用的耗時 sudo strace -T -e tracesendfile -p broker_pid5.2 對比測試加密端口與明文端口的吞吐差異想直觀感受零拷貝的價值做一組對照實驗最有效。同一個 topic、同樣的消息量和消費者邏輯只改連接端口分別跑一次壓測記錄吞吐和 broker 的 CPU 使用率。我的經驗是在消息體較大比如 10KB 以上、消費吞吐打滿的情況下SSL 端口的 broker CPU 占用會明顯高于明文端口吞吐則低一截而當消息很小、瓶頸在請求數(shù)量而非字節(jié)數(shù)時兩者的差距會縮小因為此時主要開銷是每次請求的固定成本零拷貝省下的那點拷貝量占比不高。這個對比能幫你建立一個判斷力什么時候該為加密付出性能代價什么時候可以把加密放在鏈路的兩端而不在 broker 上做。5.3 一套完整的驗證流程把上面的手段串成流程照著做一遍就能把這條鏈路摸清準備一個單分區(qū) topic寫入固定大小比如 1KB 和 100KB 各一組的消息若干 GB啟動消費者用kafka-consumer-perf-test之類的工具跑滿記錄吞吐基線同時用strace -c觀察 sendfile 的調用量和字節(jié)數(shù)用iostat -x 1看磁盤利用率用sar -n DEV 1看網卡吞吐如果寫入后立刻消費觀察磁盤讀是否接近零說明數(shù)據(jù)全在頁緩存里換到 SSL 端口重復步驟 2 到 5對比兩組數(shù)據(jù)。跑完之后你會對“零拷貝貢獻了多少、頁緩存貢獻了多少、加密損失了多少”有一個量化的認識比看十篇文章都管用。提示測試機上的頁緩存會干擾結果兩組實驗之間記得清理或者用不同的文件集否則第二組可能全程命中緩存數(shù)據(jù)不可比。6. 常見問題與排查技巧實錄這一章是我踩過的坑和幫別人排查過的典型問題整理成速查形式。很多時候你以為是零拷貝失效實際問題在別處。6.1 典型問題速查表現(xiàn)象可能原因排查動作處理方式broker CPU 高但吞吐低走的是加密端口零拷貝退化確認客戶端連接協(xié)議換明文端口或把加密放到鏈路兩端網絡包數(shù)量巨大平均包很小消費者 fetch 過于頻繁看fetch.min.bytes配置調大最小拉取字節(jié)數(shù)和等待時間磁盤讀 IO 很高頁緩存未命中消費落后于寫入對比寫入與消費的時間差增加消費者并行度或提前預熱消費延遲抖動大日志段滾動、索引重建看段大小與滾動頻率調整log.segment.bytes大消息吞吐驟降單次拉取上限不夠被拆成多次看fetch.max.bytes同步調大服務端與客戶端上限升級后性能下降消息格式不一致觸發(fā)轉換檢查日志格式版本統(tǒng)一格式版本避免 broker 端轉換6.2 三個容易踩的坑坑一把零拷貝當成萬能藥。有些場景數(shù)據(jù)本來就要加工比如要在服務端做內容脫敏、字段提取、格式轉換這時硬套 sendfile 是套不上的強行設計只會讓架構變扭。判斷標準還是那一句數(shù)據(jù)要不要改。要改就別惦記零拷貝把加工邏輯放在鏈路的其他環(huán)節(jié)更合理。坑二只盯著 broker不管消費者。零拷貝發(fā)生在 broker 向消費者發(fā)數(shù)據(jù)的那一段如果消費者自己處理慢、拉取間隔長broker 側再快也沒用。我見過太多案例最后瓶頸在消費端的反序列化和業(yè)務處理上調 broker 參數(shù)完全無效。壓測時一定要把消費端的能力單獨測出來??尤雎晕募到y(tǒng)與磁盤類型。順序寫加零拷貝這套組合在網絡存儲或者某些虛擬化磁盤上的表現(xiàn)會打折扣因為底層可能不滿足順序寫的假設。部署前先跑一輪基線測試別直接拿云上共享存儲和本地 SSD 的數(shù)據(jù)互相套用。6.3 我個人的幾條實操心得第一條先量化再優(yōu)化??吹酵掏虏恍邢确智迨?IO 密集還是 CPU 密集。如果是 IO 等待占主導零拷貝相關的東西大概率不是瓶頸往磁盤和網絡容量上找原因更快。第二條把頁緩存當成容量來規(guī)劃。零拷貝的收益很大程度依賴頁緩存命中所以 broker 所在機器的內存要給足不要把堆內存開得過大把操作系統(tǒng)緩存擠沒了。堆外內存和頁緩存之間是要搶資源的這個平衡點需要根據(jù)消息體大小和消費時效來調。第三條加密場景提前算好成本。如果合規(guī)要求全鏈路加密那就別指望零拷貝的收益容量規(guī)劃按普通轉發(fā)的模型來算留出足夠的 CPU 余量。反過來如果能接受在邊緣節(jié)點做加解密broker 內部走明文性能會好很多。第四條驗證比配置重要。參數(shù)配上去不代表生效用strace看一眼 sendfile 有沒有真的在跑往往能省下幾個小時的瞎猜。這套方法我后來用在文件服務、靜態(tài)資源分發(fā)上同樣有效凡是懷疑零拷貝沒起作用的場合先抓一把系統(tǒng)調用再說。最后分享一個觀察真正把零拷貝用好的系統(tǒng)用戶態(tài)代碼往往特別薄 —— 它只負責控制流程不碰數(shù)據(jù)本體。這個設計思路本身就值得借鑒不管你做的是消息隊列、文件服務還是數(shù)據(jù)管道減少不必要的數(shù)據(jù)經過用戶態(tài)通常都能換來實打實的性能提升。至于具體選 sendfile 還是 mmap回到那句判斷要不要改數(shù)據(jù)。不需要改就讓它一路走內核。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91亚洲欧洲| 婷婷丁香五月天综合东京热| 国产又爽又黄| 精品熟女呻吟久久91| 桃花色涩综合影院| 国产热av| 久久久久成人亚洲国产| 久久网亚洲| 亚洲国产精品V?在线播放| 九九性视频| 欧美啪啪天堂| 亚洲色图久久成人| 国产女人视频三四五区| 嗯嗯,好大,好爽,好骚| 激情婷婷综合久久| 亚洲男人的天堂V| 欧在线一二区| 天天综合网91入口| 国产精品欧美激在线| 亚洲性网| 激情综合av| 亚洲 国产 精品一区| 97丝袜亚洲在线播放| 黑人嘿嘿嘿超爽免费视频| 天天插天天操天天摸天天射天天看| 国产日韩精品suv| 欧美最婬乱婬爆婬性视频 | 密乳AV免费观看| 欧美色图亚洲特色| 久久久久成人亚洲国产| 久久久久久999| 久久婷婷五月天| 99精品人妻| 青青国产精品在线| 国产黄色小视频网站| 亚洲一区亚洲天堂| 综合久久中文字幕综合日韩精品| 亚洲精品欧洲色| 殴美性色a级欧美| 黄片免费日韩| 精国久久一区二区三区98| 艹少妇网站| 97久久久久久久精| 国产精品永久免费10000| 97激情97激情| 手机在线A片| 人人操人人操人妻人| 97天天爽| 狠狠干,狠狠操| 欧美色图 色综合图| 麻豆国产原创AV色哟哟| 日本高清_区二区三区| 97视频在线免费| 这里只有精品视频| 国产精品无码av嫩草| 九九热精品视频六| 久久最新视频免费观看| 99热亚洲| 亚洲 国产 精品一区| 国产视频第二页| 男人干美女| 爱媛媛久久国产福利| 亚洲在线91| 欧美情色贴图| 欧亚综合一卡二卡中文字幕| 婷婷五月天福利| 国产一区在线观看无码AV| 91久热| 免费看污网站| 狠狠久久亚洲欧美专区| 99久久精品无码一区二区| 色爱天堂| 中文字幕精品亚洲熟女| 久久精品视频一区三区小泽玛利亚| 97香蕉碰碰人妻国产欧美| 新97国产超碰| 情色AV电影| 久久久国产亚洲精品系列| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 3571色综合一区二区二区| 插入逼91| 999久久久免费精品国产牛牛| 一本大道青青| av橘色网站| 啊啊啊啊啊在线视频| 屌色在线97视频| 岛国片国产成人亚洲播放| 伊人热综合| 国产精品久久久亚洲第一牛牛_在线观看| 曰本熟女视频| 久久国产对白激情浪潮| 日本裸体久久色噜噜| 九九RE视频在线精品| 啪一啪免费视频| 精品日韩人妻精品一二三区| 高清在线不卡一区二区 视频| 国产熟女精品一区二区| 偷拍超碰| 亚洲妇色| 国精综合一二三区影视| 99色婷婷中文字幕乱色| 鸥美插入视频| 91精品国久久久久久无码| 歐美一級亂黃99在綫精品| 丁香五月影院| 91日韩在线| 久久这里只精品99re66图| 无码WWW免费视频网站| 久久超碰国产一区二区三区| 1000部熟女视频在线观看| 超碰97亚洲| 91色插| 天美传媒精品一区二区| 精品人妻一二三| 天天综合青苹果| 青青操在线视频| 蜜臀99久久国产| 欧州91高潮| 放黄片放3级黄片没穿衣服| 思思热一热婷婷热一热| 97视频一区| 中出20p| 成人草草视频| 亚洲综合影院| 多毛小伙内射老太婆 | 另类TS人妖一区二区三区| 超碰在线人人射| 久久精品一区二区一8| 熟女乱3伦999| 亚洲精品无码久久AV| 国产三级中文有码在线视频| 亚洲五月天激情| 久久香蕉国产传媒一区剧情天美| 高清不卡一二三区视频......| 国产精品 亚洲情色| 久久熟女人| 欧美 牲| 精品二区久久| 日韩欧美操逼xxx| 日韩精品永久在线观看| 精品免费1| 人妻熟妇久草在线| 五月天亚洲色图| 91丨九色丨国产丨人妻在线 | 亚洲 欧美 日韩 国产一区二区 | 超清福利精品视频在线| 亚洲一区二区性爱电影| 亚洲另类久操网| 91美女看B| 蜜臀久久99精品久久久久久成人小说 | 97超碰9| 一区AV| 日本3级一区二区免费| 91久精品| 一卡二卡在线播放| 色婷婷六月丁香七月婷婷| 久久毛卡| 日本三级日本三级三级人妇四虎| 欧美女同在线| 午夜AV人气不卡| 丁香五月自拍| 91操人| 91免费看一区二区三区| www久| 吉田爱美AV在线| 欧美亚洲首页| 操逼操网| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 韩国黄片aaaa| 国产精品无码久久久久2025| 粉嫩国产精品久久粉嫩| 国产欧美日产一区二区三区 - 国产欧美日| 国产精品熟女AV中文字幕在线播放| 久久夜嗨| 欧美色图片| 操B在线观看| 第45页一区二区| av橘色网站| 逼操网站| 一区二区久久天天干狠狠| 噜噜瑟| 欧美偷拍区| blacked精品一区国产| 亚洲男人天堂2019| 老熟妇一区二区三区啪啪| 中文字幕在线免费观看| 熟女色综合久久| 丰满少妇一区二区三区四区观看| 亚洲影视综合| 久久激情网| 北野未奈加勒比av| 一级黄色视频网| 狠狠干综合| 成人资源中文字幕在线观看| 成人免费不卡在线视频| 欧美熟女丝袜| 91成人久久| 99久热精品99re6热| 影音先锋每日最新资源在线观看| 禁片 高清 在线观看视频网站| 丰满少妇精品一区二区| 强奸乱伦日韩AV| 久湿久久| 91成人精品在线播放| 欧美性视频二区三区| 伊人久久综合影院精品久久久| 97精品国产97久久久久久免费| 91美女视频直播| 亚洲 一区二区 自拍| 激情五月天校园春色网| 国产aⅴ无码片毛片一级网站| 国产精品熟妇一区二区三| 少妇无码av专区线| 日韩精品人妻中文字有码在线| 性爱乱伦网址| 久久99九九九九6666免费观看软件| 色啪网| 亚洲性刺激| 国产激情久久| 99婷婷| 夜夜嗨一区二区三区三州加勒比| 天天干人人乐| 欧美日韩丝袜| 中文字幕亚洲热播人妻| 五十路熟女,国产欧美精品区一区二区三区| 天堂中文日本在线观看| 欧美黑人与女人91| 久久手机好看网站| 99老司机精品视频在线观看| 肉丝无码中文高清| 国产 日韩 另类 视频一区爱| 91日韩网站| 男人的天堂啪啪| 中文字幕高清精品一区| 亚洲AV不卡在线观看尤物| av绯色| 久久久91福利姬| 9999久久久久| 狠狠久久手机视频精品| 蜜桃网熟妇| 狠狠狠狠狠| 亚洲一区操| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 色色综合网站| 国产无马在线| AV天黑人| 婷婷精品国产一区二区三区日韩| 一区二区三区机械有限公司| 99国产在线 精品 视频| 亚州Av天美传媒| 亚洲AV无码天美传媒一区| 日韩99精品视频综合区| 中文字幕99999| 国产AV线| 超碰性爱97| 亚洲无码久久久久久久| 操国产高清| 少好三P| AV大香蕉| 日韩人妻一二三区视频| 好色综合| 春色91| 国产精彩女在线观看视频| 一级黄色影片| 亚洲日韩成人性爱视频| 色婷婷国产精品一区在线观看| 亚洲性图91| 日本一级一级一级一级| 成人八戒网站| 18禁免费视频| 思思热国产高清| 精品国产乱码久久久久久久久久毛片| 欧美日本天堂| 美欧老女人97| 色999人与兽| www.久久久久| 国产精品无码av在线| 成年无码动漫av片无尽在线| 午夜亚洲| 国产精品欧美在线观看| 日韩射图| 久久久青青草| 一二视频神马久久传媒| 日夜尻逼网| 插老姨肥穴| 男人的天堂.com| 欧美亚洲日本视频久久久| 日本三级A片网站com| 国产日韩美女小穴视频网站不卡| 99999这里都精品| 91色鬼| 69超碰综合| 91视频国品一二三区| 日本熟女中文| 91 在线亚洲| 日韩婷婷| 人人操av| 五月婷婷丁香| 天天干,天天日| 日本一级一级一级一级| 伊人久久婷婷| 青青草原人妻| 天天综和| 999 久久久| 蜜臀人妻少妇久久在线观看| 夜夜福利| 99re在线精品78| 久艹99| 亚洲做性| 91在线视频国产网站| 色吧91| 在线播放成人高清免费视频 | 夜间福利片1000无码| 国产精品探花在线| 天天色播| 神马久久中文字幕| 青青操视频在线| 骚鸭AV| 国产精品一区二区三区四区五区| 1769成人国产精品视频| 亚洲精品乱码线路中文字幕| 在线观看av区| 久久久蜜桃一区二区三区| 欧美色棕合| 日本不卡高清免v欧美日韩在线观看| 天堂资源欧美| 亚洲大胆人体av| 亚洲成人在线资源| 74成人在线| 亚洲中文日韩精品| 96AV精品| 国产精品网站www| 老司机福利社视频在线观看| 性一级黄色录像片网站导航| 日韩在线欧美精品一区二区| 国产人伦a片信息免费片| 国产免费永久精品无码| 综精品久久久aaaa| 四虎影视永久在线观看精品免费网站| 97视频播放| 久久国产免费激情视频| 婷婷五月天成人| 黑丝日韩av丝袜av| 狠狠爱夜夜| 精品二区三四区五电影 | 韩国女主播青草在线| 女上位精品在线| 狠狠躁伊人中文字幕| 911av网站免费观看| 蜜乳av首页| 91亚洲影院综合| 黑白配性爱AV成| 亚洲日本激情| 操操AV电影| 99日视频在线免费| 88xx成人精品视频| 夜夜嗨一区二区| 日本九九久久99| 久久久久九九九| 在线国产探花| 青操影院| 大香蕉强奸乱伦| 91蜜臀熟女| 天天综合网~91| 免费αV在线视频| 久久久九97| 97资源站久久| 成人5码视频| 婷婷三区| 97爱综合| 一区二区三区欧美激情| 日韩欧美中文字| 人人摸.人人色| 美女尤物福利视频| 中文久久久| 性爱精品一区| 亚洲欧洲激情| 日韩综合无码色欲vv| 在线天堂999| 嗯嗯不要 视频| 日韩黄色一区二区三区| 呦女网站| 国产亚州高清国产拍精| 99re6国产精品99re| 国产美女自拍AV| 刺激精品视频| 国产亚洲深夜激情| 亚洲av热热色| 欧美A片中文字幕| 日韩精品三区四区| 青娱乐福利99| 黄色成品网站| 婷婷丁香九月| 男人网站婷婷| 五月婷婷爱六月丁香色| 智利AV在线网| 亚洲啪啪性视频| 久久婷婷一区| 色婷五月天| 日本不卡在线二区三区| 丁香激情网| 精品午夜福利| 久热69九色熟妇97| 午夜精品久久久久久久久久蜜桃| 九九久久一区二区三区| 黄片视频,下载| 欧美日韩青操| 日本三级中国三级99人妇网站| a啊啊啊啊啊啊啊啊一区二区| 九九亚洲视频| 黄色AV免费| 成人天天看站长推荐| 亚洲欧美自拍偷拍| 亚洲色图第四色| 婷婷五月天影院| 深夜国产福利| 天天综合欧美综合| 国产高清精品福利| 免费视频观看60秒| 国产SV一线| 啊啊啊好多水| 日本不卡卡一区| 亚洲麻豆18发?| 99熟女| 蜜臀久久99精品久久久久久无删减| 免费人人搞97| 艹比视频国产精品| 91黑人狂躁丰满熟妇| 天天天天做夜夜夜夜做| 亚洲精品国产精品乱码不99| 日韩操啪| 日本黄页视频在线观看| 美腿色图| 久久99午夜精品一区人妻| 午夜毛片亚洲精品片国产久久久| 亚洲美女色图| 中文高清一区二区的| 精品九九国产无码| 我要色综合网站| 亚洲91亚洲| 东亚亚洲无码高清| 国产午夜福利专区综合| 久久天堂网| 人妻精品4K4K4K4K4| 久久精品国产亚洲AV嘿嘿| 麻豆天美一区二区| 日韩美女高潮喷水视频| 99丝袜福利在线播放| 日韩Va亚洲va欧美Ⅴa久久| 一二区在线观看视频| 97 视频在线| 色婷婷亚洲婷婷| 日韩欧美tv一区二区在线观看| 大香蕉中文201| 搞中出视频在线观看| 91爽啪| 午夜福利视频在线一区| 国产老太乱伦一区| 噜噜噜亚洲精| 9 1超碰九色| 射丝袜高跟鞋99| 亚洲中文字母在线播放| 国产精品成人AV片免费看网站| 蜜臀久久99精品久久久久电影| 欧美中文字幕男人天堂久久精品 | 99在线精品观看视频中文| 成人久久无码www| 久久一二三四五六七八九区区区| 免费伦费视频在线观看| 国产内射爽爽大片| 欧美丝袜亚洲| 十八禁电影伊人网| 97精品综合久久网| 丰满人妻一区二区三区在线| 99热婷婷| 色五月婷婷网| 日韩三级一区 | 久久大精品乱码视频人妻熟女| 日本高清电影欧美色图| 国产资源中文字幕在线| 日本在线伊人啪啪| 精品人妻一区二区蜜桃视频| 亚码人妻| 精品小视频在线| 国产欧美一区二区| 色噜噜国产在线| 亚洲AV小说| 久久久久9| 色五月首页| 亚洲无线码一区国产欧美国| 久久久久成人亚洲国产| 日韩av影片在线观看| jizzjizz欧美| 欧美强奸一区二区诱惑| 精品国产乱码久久久久久口爆网站| 国产福利精品98视频| 免费操逼91| aa片毛片| 人妻9117c| 欧 美 自 拍 偷 拍| 成人免费毛片| 国产三级资源在线观看| 无套内射人妻在线播放| 久久亚洲AV成人精品无码| 性影在线视频| 色综合久久888| 成人av动漫在线观看| 欧美一级黄色18片免费看| 亚洲精品一区二区三区在线播放| 亚洲欧美中文日韩视频中国语| 日韩另类| 夜夜爽爽爽| 亚洲18禁| 免费成人在线熟妇网| 97爱啪| 中文字幕欧洲有码| 欧美韩日精品99综合| 亚洲精品黄码久久久久| 九九九久千久久激情蜜桃在线看 | 怡红院怡春院| 日本淫穴在线| 水滴偷拍| 欧美中文字幕日韩在线| 黄色片一区二区三区四区五区| 亚州免费啪啪视频| A V少妇特黄三级| 91精品国产综合久久久蜜臀| 1204av韩国| 97超碰总站| sewuyueav| 国产综合日韩伦理| 美国日韩黄色片| av婷婷色网| 精品国产久久乱码| JuliaAnn丝袜熟女系列| 999精品国产高清一区二区| 欧美一区二区观看在线| 美女黄页| 99最新日韩偷拍视频| 超碰精品97| 岛国1区2区3区在线观看| 激情干在线| 加勒比在线视频| 欧美传媒一区| 黑人娇小av在线播放| 日韩人妻播放| 亚洲色图在线视频| 久久久天堂| 亚州一区二区成人片免费| 色色操| 亚洲高清无码在线桃色| 强上我不卡卡| 精品久久久一本一道| 亚洲阿v天堂在线| 97人人干人人操| 日韩欧亚中文在线| 青春草莓视频在线观看网址| 精品区国产区一区二区三区| yazhousetuoumei| 99re这里只有精品2| 97网色| 国产精品久久久久av| 熟女自慰久久久| 亚洲国产97| www.色婷婷.com| 99热日| 亚洲A曰本VA欧美VA视频| 国模吧 一区二区三区| 中文字幕精品久久久久人妻红杏ⅰ| 亚洲综合伊人无码久久| 囯产乱伦一区二区三女| 欧美综合传媒| 国产成人午夜视频网址| 蜜桃在线观看一区二区三区| 校园春色五月天| 亚洲婷婷五月天| 96精品久久久| 乱欲一区二区| 美女让帅哥通她小鸡鸡| 亚洲av综合色区图片亚洲| 亚洲不卡不卡中文字幕不卡| 97 国产精品| 婷婷中文网| 亚州熟妇精品| 国产女乱淫真高清免费视频| 大香蕉之青青草原| 熟妇xxxxx性春色| 伊人五月天青青草婷婷| 另类图片综合| 996热| 俺去也婷婷| 久久久久久免费电影| 欧美日韩操逼嗦吊| 尤物视频网 刘玥| 国产操逼逼网| 国产丁香精品露脸视频| 日韩在线观看中文字幕视频| 欧美小说区视频区| 亚洲一区二区麻豆影院| 国产精品播放| 亚洲91av| av网站免费线看| 欧美视频激情久久久久久| 北约熟女超碰| 九九九九免费视频| 五月天成人综合| 91伊人| 开心六月色| 亚洲第2页| 欧美后入式| 丁香六月啪啪| 日韩一区二区精彩视频| 好看的久久不射无码影视影院| 色视频蜜乳| 91爱欧美| 开心五月婷婷激情| 一区在线精品中文字幕| 日韩久草| 色色操| 中国一级αV| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 久久国模av| 加勒比在线视频一区二区三区| 久草毛片| 国产精品白虎| 亚洲色图亚洲无码强奸乱伦| 91岛国动作片| 蜜乳AV一区| 91精品人妻一品二品三品| 成人AV素股で擦久久| 蜜乳AV.COM| 91热| 熟女欧美日韩综合婷婷| 五月色网| 操逼片国产| 天天久久| 老熟女中文字幕高清| 嗯嗯嗯啊啊啊在线免费观看| 亚洲精品无码久久AV| 不卡二三区人妻少妇| 亚洲熟久久| 亚洲91少妇| 亚洲αv一区二区三区| 精品无码久久久久久久久果冻糖心| 精品99999久久久久久| 久久精品国产亚洲AV嘿嘿| 91这里只有精品| 91熟女.com| 欧美极品女人的天堂| 亚洲一区中文字幕一区| 天天日天天搞天天干| 粉嫩AV一区二区夜夜| 午夜AV污污污| 自拍丝袜美腿人妻| 97人人操人人干| 日韩色| 日韩成人高清一区二区| 97伊人超碰| 欧亚日韩综合精品国产| 日本免费一区二| 国产精品免费视频不卡| 国产黄色影片在线观看| 国产精品日日摸夜夜添骚逼| 久久精品99| www.AV有限公司一区| 天综合网| 精品少妇一区二区三区在线视频| 夜夜躁狠狠躁日日躁av| 欧美一级二级三级| 中文字幕精品专区搜索结果91| 国产精品乱码久久久久久久久久久久| 91久久国产综合久久| 大香蕉丝袜一级片| 在线岛国新天堂8| 人人弄人人摸| 丁香七月婷婷| 死我十八禁| 欧美日韩精品久久久久东北老熟妇| 啊啊啊啊二区好大| 97资源制服丝袜| 欧美制服网站美腿丝袜| 99精品视频在线观看| 国产久久成人| 国产精品自拍视频| 91熟女丨91老女人| 999久久久国产精品| 天堂亚洲精品| 九九热在线精品视频| 日本在线视频导航| 破苞ⅩXXX性无码动漫无码| 最新日韩黄片| 1769精品一区二区三区| 插欧洲美女欧美精品| 久久99亚洲精品久久99果| 999岛国大片| 伊人久久大香大香线蕉中文| 婷婷五月天成人网| 丁香六月激情| 久热伊人99re| 97超久碰| 久草老司机| 一二三四区电影| 激情综合 婷婷五月 红杏| 亚洲熟女av中文字幕| 久久久久久久性爱| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 99只有精品| 一区二区三区成人| 9999久久久久| 女生久久网| 日本一区二区三区四区免费观看| 日韩激情啪啪| 深爱伊人影院| 思思久热在线精品66| 国产精品爱欲| 日韩激情啪啪| 精品一区96| 九区国产| 2019男人的天堂| 国产综合色精品在线观看| 日韩乱伦AⅤ| 亚洲精品精品一区二区| 91亚洲青青草原精品1区| 欧洲精品一区二区三区| 人人妻人人爽人人精品| 懂色中文一区二区三区| 日韩三级天堂在线观看| 加勒比在线视频| 九九九九九九九九九九九蜜桃| 久久香蕉国产线看观看亚洲女人 | 91色人| 亚洲毛片基地专区| 国产一级内射无挡观看| 欧美姓爱综合网| 小说区 图片区色 综合区| 思思热影视| 久久久久久性爱视频| 97伦乱| 日韩精品色呦呦| 国产精品区在线12p| 99re国产中文字幕| 久草热制服丝袜在线观看 | 97视频在线免费播放| 亚洲人天堂| 日本一区二区做爱的视频| 一个人在线看的黄色电影网站| 女同性恋一区二区三区精品视频| 亚洲猛交| 秋霞无码av鲁丝片一区| 超碰亚洲欧美日韩无| 亚洲日本大香蕉1| 国产精品久久久久亚洲av| 性爱久久| 久久大香蕉97| 亚洲欧美日韩精品久久久一区二区 | 日语五十路和六十路亚洲国产精品| 日韩A优精品在线观看| 中文字幕少妇色| 97免费在线观看| 国人欧美精品一区二区| 2017大香蕉国产精品久久| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 久草视频在线视频在线视频在线观看| 蜜臀少妇一区二区| 91美女视频。| 日韩 欧美 视频 在线 一区| 麻豆伊人网| 国产丝袜欧美在线视频| 91久久久久免| 婷婷激情四射| 防屏蔽在线视频| 97超碰欧美手机在线| 国产精品久久久久久久黄无码| 少妇三P| 日本孕妇一区二区视频操逼免费看| 熟妇熟女视频一区二区三区| 精品一区二区2| 欧美国产日韩高清在线| 色欧美在线| 午夜精品探花| 久久久久久久久9| 九九碰九九爱97| 亚洲玖玖爱| 99无码视频| 高清无码人妻久久久一区二区三区aⅴ| 麻豆国产97在线| 伊人影院在线理论播放| 屁股久久久久久| 色婷久久| 亚洲精品蜜桃久久久| 亚洲操逼网| 大香蕉中文在线| 熟女人妻av在线资源,黄色的资源 粉嫩国产精品久久粉嫩 | 人人摸人人叼| 久草综合网| 亚洲天堂,男人| 日本综合色图| 午夜精品久久久99| 五月婷亚洲精品天堂| 久久婷婷在线观看视频| 久久无码成人| 秋霞福利网| 99在线观看| 免费AV中文网在线观看| 欧美色图片91| 97超碰人操| 中文字幕在线日亚洲9| 国产精品农村妇女精品| 午夜天天碰综合视频| 国产探花日韩援交| 色男人色天堂东京热| 久久久国产三级黄色片| 电家庭影院午夜69久久夜色精品国产69乱 | 96久久久| 91 亚洲情侣偷拍 久久| 立川理惠无码一区二区| 日日超碰亚洲| 大乔未久88一区| 99人人干| 久久久一区二区三区三州| 蜜桃臀一区二区三区久久| 婷婷综合激情| 国产精品露脸在线观看| 日韩无码服务区| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 另类图片五月| 成人性爱视频在线看| 男人的天堂日韩| 欧美嗯啊……在线观看视频免费| 日本成人A片免费看| 欧美色老汉| 午夜精品久久久久| 男人的天堂不卡一区二区| 国产辣妈在线视频福利| 亚洲天在线| 老熟妇综合| 成人在线视频网| 91在线超高颜值国产| 美女久久久久久久久久久| 九九成人精品| 亚洲综合色男人网| 青青草丝袜在线视频| 欧美在线播放| 在线看污网站| 久操影视| 久久久久久久少妇| 色五月激情网| 久久‘黄片视频| 18禁看网站一区| 久久一区二区蜜桃| 伊人网一本| 大香蕉欧美伊| 国产精品青青草| 六月色色| 国产一级不卡在线观看| 精品无码一区二区三区色欲| 东北女人高潮视频| 亚洲精品国产精品乱码不卡| 偷窥自拍亚洲色图| 五月婷丁香| 日本国产高清色www视频在线| 97超碰磁| 色欲天天综合久久久无码网中文| 久久久久极品| 五月天加勒比啪| 91国产美女丝袜足交精品视频 | 一级特级aaaa毛片免费观看 | 人妻少妇久久中文字幕一区二区 麻豆| 97草草| 日韩视频小说在线观看| 久久有碼| 91亚·色| 老女人日韩美91| 久久久艹艹艹| 久久免费精品视频免一| a v网站在线播放| 午夜120视频在线观看| 亚洲?V无码专区在线电影| 97欧美视频| 日韩性爱长视频免费| 嗯嗯啊好爽| 欧美日本不卡在线| 日本大香蕉综合网红本杳社区| 成人开心网在线视频| 色综合20p| 日本免费一区二区不卡| 99在线啪| 欧美日韩国产人人| 亚洲AV在线资源| 九九超碰综合网| 嗯嗯啊啊的视频| 狠狠色丁香| 91操人| 久久精品国产精品亚洲艾通辽熟妇| 无码国产精品午夜不卡(| 色人久久| 欧美日韩亚洲一区二区在线观看| 美女视频尤物网在线看| 亚欧视频在线| 亚洲黄网在哪免费看| 96久久精品一二三区色欲| 久久久国产成人一区二区三区在线 | 欧洲小说色图视频另类| 91精产一区二区三区| 青草视频人妻在线观看| 2020中文字幕在线| 人妻精品一区二区三区| 国产精选视频| 性夜影院爽黄A爽免费动漫| 香蕉国产精品麻豆亚洲欧美日韩| ,成人免费啪啪视频| 久久riav中文精品| 激情五月天社区| 欧美操逼一二三区| 男女打扑克高清网站| 91网站18在线| 男人天堂最新手机版在线青青草| 偷拍亚洲视频一区二区三区四区| 91亚洲综合在线| 成人自拍三级在线观看| 最新中文字幕在线亚洲| 色色婷婷五月| wwe 天天干.com| 无码人妻毛片丰满熟妇精品区| 91久热| 中文字幕第9页萱萱影音先锋| 欧美国产欧美在线观看| 欧美国产伊人久久久久| 精品丰满人妻一区二区三区免费观| 高清不卡国产| 亚洲人久久久网| 亚洲高潮影院| 欧美中文字幕日韩在线| 五月丁香六月激情综合| 午夜情侣自拍网站| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 91碰碰碰| 熟女自慰久久久| 欧美草草高清日韩视频| 成人性爱免费播放| 在线观看综合精品亚洲| 亚洲国产综合久久久性感熟妇| 青青草久久| 亚洲欧美情色| 日韩精品在线观看网站| 色老汉色| 亚洲综合图色在线| 亚洲一区二区AV| 黑人无码一区二区| 久久欧洲| 激情内射| 精品成人无码| 久久大香蕉手机高清| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 成人av影院在线观看| www色色色com| 欧美情色贴图| 国产精品午夜AV完会免费 | {男男暴菊gay无套网站| 69精品人人人人| 国产精品久久久九九九| 无码78| 被体育老师抱着c到高潮| 色诱中文字幕| 天天综合青苹果| 久久免费精品视频免一| 久久久久亚洲精品| 国产成人在线观看网址| 91精品无码人妻系列| 欧美视频第二页| 欧美性爱第1 页| 日本女人操逼| 玖玖爱综合网| 园内精品自拍视频在线播放| 97人人中文网| 九九九久久久W精品| 午夜福利免费福利视频| 精品久久大胆人体| 欧美色女人| 欧美黑人XXXⅩ高潮交| 久久精品操| 91|九色|国产熟女| 深夜激情无码| 亚洲电影91| 国产精品久久99日日| 丁香五月AV| 国产又粗又长视频| 丁香九月激情| 亚洲美女高潮喷水视频| blacked精品一区国产| 中文字幕78| 亚洲伊人a线观看视频| 噜噜吧,噜噜色,噜噜| 亚洲日韩乱码中文无码蜜桃臀网站| 色操逼网| 蜜臀色乳| 欧洲综合无码| 国产精品不卡一区二区三区| 国产高清精品一区二区三区毛片| 看黑丝美女操逼青青网站| 嗯嗯啊好爽| 国产丝袜美女诱惑| 久久超碰国产一区二区三区| 大香蕉伊人一区在线观看| 999精品女人| 2011国产精品| 无码高清操逼| 91殴美大片| 九九视频黄色片| 91/欧美| 中文字幕亚韩| 久草看看看| 亚洲欧美日韩综合在线尤物 | 久久久久七视频| 国产日逼视频| 色香欲天天天天综合色| 在线观看色视频| 亚洲色图 91| 天天日老熟妇| 操婢日韩| 欧美午夜视频| 精品-91人妻子系列| 亚洲在线91| 精品十三区| 中文字幕一二区二三区人妻专区| 伊人96在线| 99精品视频在线观看| 蜜臀无码视频在线观看| 青青草视频在线观看一区二区| 乱伦a片视频| 欧美日综合| a男人的天堂| 八戒无码国产午夜福利| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 在线日韩日本亚洲国产| 欧美国产成人在线| 黄色av片三级三级三级免费看| 欧美九九九| 亚洲色性情三级| 一级久久性爱视频| 97资源久久| 999 久久久| 日本大片日本一区二区免费高清| 超碰免费人妻人人| 加勒比伊人综合| 天堂精品在线| 国产精品美女在线一区| 91美| 久偷拍| 五月激情小说| 能在线播放的国产三级| 青娱乐啪啪视频| 欧美综合在线91| 麻豆人妻精品一区二区| 久草免费福利在线播放| 性猛交| 搞中出视频在线观看| 精品久久99| 密乳AV免费观看| 欧美亚洲综合高清在线| 激情五月婷婷| 亚洲精品一二区| 天天操夜夜操| 中文字幕国产| 欧洲精品网| 亚洲精品 大香蕉| 另类 日韩 熟女| 综合伊人激情| 啊啊啊好舒服视频| 超碰这里只有精品| 色综合美国| 亚洲色诱惑| 伊人五月天激情| 亚洲天堂另类| 日本最新1区2区3区| 色哟哟-国产专区| Julia在线播放亚洲久久| 亚洲最大的综合性av| 亚洲视频中文一区| 欧美在线天堂| 快播久久人人aV| 亚洲超碰综合网| 欧美大香蕉在线观看| 天天天天干| 国产精品青草综合久久| 九色在线熟女国产黑人| 91青青| 狠狠做深爱婷婷久久二区| 丰满搜索结果 -第18页- 久久高清无码| 9九九九九视频在线观看| 国产成人久久久精品免费AV| 翔田千里AⅤHD无码| 搡老熟女免费视频 | 熟妇最新先锋一二三区| 久久人妻精品| 久久婷婷影院| 五月丁香色色网| heyZO天然素人无码AⅤ专区| 日韩无码一级黄色av片| 久久精品熟妇丰满人妻99| 狠狠爱夜夜| 欧美综合天堂| 好色美女九七第一页| 青青青草原| 91欧美少妇| 日韩在线观看AV| 久久鲁夜| 天堂伊人久久| 青草视频人妻在线观看| 亚洲综合一| 91亚洲欧美综合高清在线| 手机在线人成免费视频| 亚州情色j区| 日本超碰在线国产一区| 欧美综合自拍成人自拍第二十页| 久久免费精彩视频| 超97在线精品视频| 曰本人妻人人澡人人夹| 国产精品探花在线| 精品超碰国产| 91操人| 国内精品久久久久影院亚洲| 国产精品久久久三级无码| 九九热九九| 日韩美一区| 国产婷婷一区| 秋霞男人网| 日韩欧美偷拍美女视频| 成人一级二级| 99re视频在线播放青草| 亚洲情欲| 中文字幕在线观看网址| 翔田千里Av在线| 99在线无码精品秘 入口黑人| 日韩精品在线观看网站| 激情五月综合网| 亚洲色图超碰在线| 久久久婷| 黄色av播放免不| 欧美加勒比| 97综合激情| 台湾一区国产高清在线| 搡老女人老妇女AAA一VU麻豆| 精品一二三区久久AAA片| 亚洲精品男人的天堂| 国产女人高潮视频| 久久综合女优| 快播久久人人aV| 人妻精品视频一区二区三区| 国产特级毛片AAAAAA高潮流水| 污污汅18禁网站在线永久免费观看 | 欧美日韩狠狠爱| 亚洲欧美碰碰| 免费少妇一区二区| 久热91| 国产60区。| 日韩91网| 一中国女人毛片水真多| 玖玖玖玖精品国产剧情| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 |