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

RocksDB 內(nèi)存超限問題剖析

存儲(chǔ)
在使用 RocksDB 存儲(chǔ)引擎的過程中,有部分開發(fā)者遇到了內(nèi)存使用超出預(yù)期的情況。本文針對(duì)這一問題展開了深入分析,從內(nèi)存使用原理、RocksDB 內(nèi)存管理機(jī)制、常見內(nèi)存使用問題等方面進(jìn)行了詳細(xì)探討,并提出了相應(yīng)的解決方案和優(yōu)化建議......

一、背景

1.1 前言

在現(xiàn)代數(shù)據(jù)庫(kù)系統(tǒng)中,RocksDB 作為一種高性能的鍵值存儲(chǔ)引擎,廣泛應(yīng)用于需要高吞吐量和低延遲的場(chǎng)景。然而,在使用過程中觀察到 RocksDB 的內(nèi)存使用常常超出預(yù)設(shè)的閾值,這一現(xiàn)象對(duì)系統(tǒng)的穩(wěn)定性和可用性構(gòu)成了嚴(yán)重威脅。

RocksDB 提供了通過 block-cache-size 參數(shù)來控制緩存使用的機(jī)制。開發(fā)者可以通過以下代碼片段設(shè)置緩存大小:

std::shared_ptr<rocksdb::Cache> cache = rocksdb::NewLRUCache(cache_size, -1, true);

然而,實(shí)際應(yīng)用中發(fā)現(xiàn),RocksDB 的內(nèi)存占用往往超出了設(shè)定的 cache_size 值。這種內(nèi)存使用的不可預(yù)測(cè)性導(dǎo)致了內(nèi)存分配的失控,甚至觸發(fā)了程序的 OOM(Out of Memory)錯(cuò)誤,嚴(yán)重影響了服務(wù)的連續(xù)性和可靠性。

有部分開發(fā)者報(bào)告了相似的內(nèi)存超額使用問題,該問題在 GitHub 社區(qū)也引起了廣泛關(guān)注。

1.2 內(nèi)存分析流程

在分析內(nèi)存的過程中,可以搭配許多 Linux 的命令工具來進(jìn)行。以下是一套內(nèi)存分析的基本思路:

圖片

圖片來源:https://learn.lianglianglee.com/

1、可以先用 free 和 top,查看系統(tǒng)整體的內(nèi)存使用情況。
2、再用 vmstat 和 pidstat,查看一段時(shí)間的趨勢(shì),從而判斷出內(nèi)存問題的類型。
3、最后進(jìn)行詳細(xì)分析,比如內(nèi)存分配分析、緩存/緩沖區(qū)分析、具體進(jìn)程的內(nèi)存使用分析等。

其中,第一步和第二步可以觀察到內(nèi)存問題的現(xiàn)象,而最難的往往是第三步,對(duì)內(nèi)存的使用情況進(jìn)行分析。第三步中需要結(jié)合業(yè)務(wù)代碼,對(duì)問題的根因提出假設(shè),然后配合一些工具來驗(yàn)證假設(shè)。分析的過程更像在做實(shí)驗(yàn):提出假設(shè),收集數(shù)據(jù),驗(yàn)證假設(shè),得出結(jié)論。下文中,也會(huì)搭配內(nèi)存工具進(jìn)行分析,供讀者參考。

二、問題描述

在前文所述的 RocksDB 內(nèi)存使用問題背景下,我們業(yè)務(wù)生產(chǎn)環(huán)境遭遇了相似的挑戰(zhàn)。應(yīng)用程序采用 glibc 的 ptmalloc 作為內(nèi)存分配器。在程序中,存在兩個(gè) RocksDB 實(shí)例,分別用于存儲(chǔ)不同類型的數(shù)據(jù)。根據(jù)配置,兩個(gè)實(shí)例的 block-cache-size 分別被設(shè)定為4GB和8GB。然而,實(shí)際的內(nèi)存消耗量遠(yuǎn)遠(yuǎn)超出了這一預(yù)設(shè)值,導(dǎo)致整體內(nèi)存使用量顯著高于預(yù)期。

通過執(zhí)行 free -g 命令,監(jiān)測(cè)到程序的內(nèi)存使用量達(dá)到了59GB,這一數(shù)值已經(jīng)接近了物理服務(wù)器的內(nèi)存容量閾值。此外,通過定期執(zhí)行 vmstat 3 命令,觀察到自服務(wù)啟動(dòng)以來,內(nèi)存使用量持續(xù)上升,直至接近100%的使用率。這一現(xiàn)象表明,系統(tǒng)內(nèi)存已極度緊張,存在觸發(fā) OOM(Out of Memory)錯(cuò)誤的風(fēng)險(xiǎn)。

鑒于當(dāng)前內(nèi)存使用情況,確認(rèn)了內(nèi)存管理問題的存在,并認(rèn)識(shí)到需要進(jìn)一步結(jié)合源代碼進(jìn)行深入分析,以識(shí)別內(nèi)存使用異常的根本原因,并探索相應(yīng)的優(yōu)化措施。

名稱

信息

機(jī)器配置

32C64G 物理機(jī)

內(nèi)存使用量

59G

RocksDB 實(shí)例數(shù)量

2

每個(gè) RocksDB 實(shí)例文件夾大小

實(shí)例1:190G、實(shí)例2:180G

內(nèi)存分配器

glibc ptmalloc

block_cache設(shè)置

實(shí)例1:4G、實(shí)例2:8G

三、分析過程

3.1 內(nèi)存泄露分析

以下分析均在內(nèi)部測(cè)試環(huán)境中進(jìn)行,使用的是16C32G的機(jī)器。起初,懷疑 RocksDB 存在內(nèi)存泄露,會(huì)不斷申請(qǐng)內(nèi)存并且不會(huì)回收。

分析內(nèi)存泄露的常用工具有 valgrind、memleak、strace、jemalloc 的 jeprof。這里用到的工具是 jemalloc 的 jeprof。jeprof 的原理主要是在內(nèi)存的 malloc 和 free 的地方進(jìn)行監(jiān)控并收集數(shù)據(jù),使用時(shí)可以設(shè)置定期打印數(shù)據(jù)。

通過 RocksDB 提供的的 db.getProperty()  方法對(duì)各個(gè)模塊占用內(nèi)存情況進(jìn)行取值,結(jié)果如下:

rocksdb.estimate-table-readers-mem: 16014055104  // 重點(diǎn)關(guān)注
rocksdb.block-cache-usage: 1073659024  // 重點(diǎn)關(guān)注

發(fā)現(xiàn)主要占用內(nèi)存的地方有兩個(gè):block-cache-usage 和  estimate-table-readers-mem。這兩個(gè)屬性分別對(duì)應(yīng)了 RocksDB 中的 block_cache 以及 indexs/filters。

但是隨著時(shí)間的推移,block_cache 和 indexs/filters 會(huì)達(dá)到一個(gè)均衡點(diǎn),不再增加上漲。與 RocksDB 存在內(nèi)存泄露的假設(shè)不相符。

進(jìn)一步分析 RocksDB 分配內(nèi)存的調(diào)用堆棧,由于 glibc ptmalloc 無法打印調(diào)用堆棧,將 glibc ptmalloc 切換成了 jemalloc,通過 jeprof 進(jìn)行內(nèi)存調(diào)用堆棧的打印,以下是 jemalloc 的安裝方法:

# 用jemalloc 對(duì)于服務(wù)來說沒有改造成本。
# 可以直接使用LD_PRELOAD=/usr/local/lib/libjemalloc.so這種動(dòng)態(tài)鏈接的方式去植入
# 前提是Linux機(jī)器上需要先安裝jemalloc:
wget https://github.com/jemalloc/jemalloc/archive/5.1.0.tar.gz tar zxvf jemalloc-5.1.0.tar.gz
cd jemalloc-5.1.0/
./autogen.sh
./configure --prefix=/usr/local/jemalloc-5.1.0 --enable-prof
make && make install_bin install_include install_lib

上述命令中,--enable-prof 代表開啟 jemalloc 的 jeprof 功能。

安裝完成后,通過 LD_PRELOAD 命令來開啟 jemalloc 的 malloc 和 free。LD_PRELOAD 的原理是直接使用 jemalloc 的 malloc 和 free 方法替換掉 glibc 的 malloc/free。

通過以下命令啟動(dòng)程序:

export MALLOC_CONF="prof:true,lg_prof_interval:29"
LD_PRELOAD=/usr/local/jemalloc-5.1.0/lib/libjemalloc.so ./process_start

上述命令中 export MALLOC_CONF="prof:true,lg_prof_interval:29" 代表開啟 jeprof 的信息捕獲,內(nèi)存每次上漲 2的29次方 btyes (512MB) 便記錄一次信息。最終輸出了結(jié)果,可以通過以下命令將結(jié)果轉(zhuǎn)成調(diào)用堆棧圖:

jeprof  --show_bytes --pdf ./process_start jeprof.34447.0.f.heap > result.pdf

最終觀察堆棧圖(只截取了部分)發(fā)現(xiàn),RocksDB 正常調(diào)用分配內(nèi)存的方法:rocksdb::AllocateBlock,沒有觀察到有內(nèi)存泄露的情況。

圖片

3.2 系統(tǒng) glibc ptmalloc 分析

搜索了很多類似的問題,發(fā)現(xiàn)也有開發(fā)者都遇到了 glibc 內(nèi)存分配不釋放的問題,便懷疑是否是 glibc 的內(nèi)存分配不合理導(dǎo)致的。目前線上環(huán)境 glibc 的版本是2.17。

圖片

查看了線上機(jī)器的 /proc/meminfo,大部分內(nèi)存主要用在了程序申請(qǐng)的棧內(nèi)存和堆內(nèi)存中,可以看到下圖中 Active(anon)  匿名內(nèi)存占用了52G,這部分內(nèi)存申請(qǐng)后沒有被釋放。

glibc 申請(qǐng)的內(nèi)存均屬于這部分內(nèi)存。

圖片

其次,通過 pmap -X pid 查看進(jìn)程的內(nèi)存塊,發(fā)現(xiàn)有很多64MB的內(nèi)存段。

圖片

為什么會(huì)創(chuàng)建這么多的64M的內(nèi)存區(qū)域?這個(gè)跟 glibc 的內(nèi)存分配器有關(guān)系。glibc 每次進(jìn)行 mmap 分配時(shí)申請(qǐng)內(nèi)存的大小在64位系統(tǒng)上默認(rèn)為64MB。

此時(shí)便進(jìn)一步提出了新的假設(shè):是否因?yàn)?glibc 的內(nèi)存分配機(jī)制不合理,導(dǎo)致內(nèi)存不斷申請(qǐng),但是不釋放資源?

分析 glibc 分配的內(nèi)存情況,可以使用 glibc 提供的接口:

malloc_info(https://man7.org/linux/man-pages/man3/malloc_info.3.html

The malloc_info() function exports an XML string that describes the current state of the memory-allocation implementation in the caller. The string is printed on the file stream stream. The exported string includes information about all arenas.

以下為 malloc_info 的接口定義。該接口會(huì)將內(nèi)存分配的情況直接以 XML 的形式輸出到文件中。

#include <malloc.h>
int malloc_info(int options, FILE *stream);

在程序中添加內(nèi)存信息打印的代碼,每隔一段時(shí)間觸發(fā)一次打印:

FILE *filePointer;
filePointer = fopen("mem_info.log", "a");
if (filePointer != nullptr) {
  malloc_info(0, filePointer);
  fclose(filePointer);
}

以下為 malloc_info 輸出的內(nèi)容(截取部分內(nèi)容):

<malloc versinotallow="1">
<heap nr="0">
<sizes>
  <size from="17" to="32" total="32" count="1"/>
  <size from="33" to="48" total="48" count="1"/>
  <size from="81" to="96" total="1824" count="19"/>
  <size from="97" to="112" total="112" count="1"/>
  <size from="33" to="33" total="42636" count="1292"/>
  // ....
</sizes>
<total type="fast" count="22" size="2016"/>
<total type="rest" count="5509" size="33761685"/>
<system type="current" size="230117376"/>
<system type="max" size="230117376"/>
<aspace type="total" size="230117376"/>
<aspace type="mprotect" size="230117376"/>
</heap>

XML 內(nèi)容闡述:

1.nr 即 arena,通常一個(gè)線程一個(gè),線程間會(huì)相互爭(zhēng)搶 arena。

2.<size from="17" to="32" total="32" count="1"/>

大小在一定范圍內(nèi)的內(nèi)存,會(huì)放到一個(gè)鏈表里,這就是其中一個(gè)鏈表。from 是內(nèi)存下限,to是上限,上面的意思是內(nèi)存分配在 [17,32] 范圍內(nèi)的空閑內(nèi)存總共有32個(gè)。

3.<total type="fast" count="22" size="2016"/>

即 fastbin 這鏈表當(dāng)前有22個(gè)空閑內(nèi)存塊,大小為2016字節(jié)。

4.<total type="rest" count="5500" size="33761685"/>

除 fastbin 以外,所有鏈表空閑的內(nèi)存數(shù)量,以及內(nèi)存大小,此處內(nèi)存塊數(shù)量為5509,大小為33761685字節(jié)。

因此,fast 和 rest 加起來為當(dāng)前 glibc 中空閑的未歸還給操作系統(tǒng)的內(nèi)存。通過命令 awk 將文件中所有 fast 和 rest 占用的內(nèi)存加起來后,發(fā)現(xiàn)約為 4G 。

圖片

當(dāng)前 RocksDB 進(jìn)程的內(nèi)存使用量為20.48G,上述提到 block-cache-usage 和 estimate-table-readers-mem 加起來只有15.9G (1073659024 bytes + 16014055104 bytes)。相當(dāng)于中間差距還有4G左右。剛好和 glibc 占用的空閑內(nèi)存相吻合。

圖片

最終確認(rèn)是由于 glibc 的 ptmalloc 內(nèi)存管理器申請(qǐng)內(nèi)存不回收,導(dǎo)致了機(jī)器內(nèi)存緊張。

四、問題解決

發(fā)現(xiàn)是 glibc ptmalloc 的問題之后,解決也相對(duì)簡(jiǎn)單,業(yè)內(nèi)有更好的 ptmalloc 替代方案,如 jemalloc 以及 tcmalloc。

將 jemalloc 應(yīng)用到線上環(huán)境之后發(fā)現(xiàn),確實(shí)像預(yù)期那樣,內(nèi)存的使用相比于 ptmalloc 更少,此前,機(jī)器的內(nèi)存一直維持在高位,使用 jemalloc 之后,內(nèi)存的使用下降了1/4(從95%+下降到80%+),隨著內(nèi)存地釋放,有更多的內(nèi)存可用于處理請(qǐng)求,IO和CPU的使用率就降低了,下圖是內(nèi)存、磁盤IO使用率以及 CPU 空閑率的對(duì)比圖。

圖片

在相關(guān)性能指標(biāo)得到優(yōu)化之后,服務(wù)可用性以及RT也得到了提升。

圖片

五、總結(jié)

在進(jìn)行內(nèi)存超量使用問題的分析過程中,最初懷疑是 RocksDB 存在一些內(nèi)存管理不合理的地方導(dǎo)致了內(nèi)存超量使用。然而,經(jīng)過深入研究和分析,發(fā)現(xiàn)實(shí)際的原因主要由 glibc的 ptmalloc 內(nèi)存回收機(jī)制所導(dǎo)致。整個(gè)分析過程較為繁瑣,需要結(jié)合一些合適的內(nèi)存分析工具,逐層深入,不斷假設(shè)并驗(yàn)證猜想。

總的來說,內(nèi)存超量使用問題得到了解釋,也成功解決。通過逐步深入,持續(xù)假設(shè)和驗(yàn)證,最終找到了真正的問題所在,希望能為讀者在解決類似問題上提供一些靈感和思路。

六、參考文獻(xiàn)

  1. https://github.com/facebook/rocksdb/wiki/Partitioned-Index-Filters
  2. https://github.com/facebook/rocksdb/wiki/Memory-usage-in-RocksDB
  3. http://jemalloc.net/jemalloc.3.htmlhttps://paper.seebug.org/papers/Archive/refs/heap/glibc%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86ptmalloc%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90.pdf
  4. https://man7.org/linux/man-pages/man3/malloc_info.3.html
責(zé)任編輯:龐桂玉 來源: vivo互聯(lián)網(wǎng)技術(shù)
相關(guān)推薦

2009-09-03 16:58:49

C#內(nèi)存管理

2010-05-27 12:58:07

SVN升級(jí)

2010-02-01 13:34:59

Python 腳本

2011-07-18 17:14:16

Objective-C 內(nèi)存 Cocoa

2009-10-19 10:52:48

綜合布線市場(chǎng)

2010-02-23 10:32:20

Python 腳本

2010-02-23 10:05:52

Python歷史

2010-02-05 18:00:18

Android源代碼

2010-02-06 15:32:30

Android架構(gòu)

2013-09-05 09:42:06

2021-12-11 08:05:12

FlinkRocksDB數(shù)據(jù)

2018-03-07 13:21:26

RocksDB數(shù)據(jù)存儲(chǔ)

2022-08-31 08:04:08

Ceph配置選項(xiàng)

2025-06-16 09:46:06

2021-09-28 10:59:53

MYSQLPerformance 內(nèi)存管理

2010-01-08 14:06:49

JSON 形式

2010-03-01 16:48:02

Python模塊

2010-06-01 11:22:30

SVN合并跟蹤

2010-05-24 16:58:44

SVN安裝

2011-07-21 09:42:27

Objective-C 內(nèi)存 Autoreleas
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

8x8x最新地址| 国产一区二区高清视频| 任我爽在线视频| 99tv成人影院| 亚洲成人你懂的| 久久天堂国产精品| 一区二区的视频| 黄色综合网站| 伊人久久大香线蕉av一区二区| 玖玖爱视频在线| 19禁羞羞电影院在线观看| 成人国产精品免费观看视频| 茄子视频成人在线| 欧美黄色aaa| 亚洲成a人片77777在线播放 | 精品一区精品二区| av在线网址导航| 美女视频在线免费| 亚洲欧美区自拍先锋| 久久精品二区| 国产视频手机在线| 久久婷婷亚洲| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 欧美成人伊人久久综合网| 国产男女无遮挡| 制服丝袜在线播放| 国产精品天天看| 精品婷婷色一区二区三区蜜桃| 91精品国产乱码久久| 亚洲欧美日本国产专区一区| 久久精品99无色码中文字幕| 精品人妻一区二区三区蜜桃视频| 国产精品久久久久av蜜臀| 欧美日韩大陆一区二区| 日批视频在线免费看| 久久亚洲导航| 一区二区免费视频| 91手机视频在线| www.在线视频.com| 26uuu色噜噜精品一区二区| 91观看网站| 国产露脸国语对白在线| 日韩中文欧美在线| 日韩av男人的天堂| 波多野结衣国产| 一区二区日韩免费看| 欧美国产视频一区二区| 国产精品丝袜一区二区| 水蜜桃久久夜色精品一区| 亚洲午夜国产成人av电影男同| 污污内射在线观看一区二区少妇| 一区二区三区视频播放| 欧美一级理论片| 亚洲精品中文字幕乱码无线| avtt久久| 欧美一区午夜精品| 一卡二卡三卡四卡五卡| 国产精品成人3p一区二区三区| 欧美日本一区二区| mm131国产精品| 中文字幕成人| 91精品国产综合久久精品app| 在线观看免费av网址| 久久av影院| 欧美精品久久99久久在免费线| 成人日韩在线视频| 九九99久久精品在免费线bt| 欧美一区午夜视频在线观看| 女教师高潮黄又色视频| 北岛玲精品视频在线观看| 91精品国产综合久久香蕉的特点| 亚洲一区二区中文字幕在线观看| 亚洲一区二区三区在线免费| 精品国产91久久久久久久妲己| 国产av一区二区三区传媒| 懂色av一区二区| 亚洲欧美激情精品一区二区| 久久国产柳州莫菁门| 91视频综合| 精品少妇v888av| 国产做受高潮漫动| 日韩精品每日更新| 91欧美精品午夜性色福利在线 | 色老太综合网| 欧美日韩国产大片| 成人啪啪18免费游戏链接| 国内精品国产成人国产三级粉色 | 亚洲一区二区三区毛片| 刘玥91精选国产在线观看| 91论坛在线播放| 一区二区三区av在线| 欧美精品videossex少妇| 婷婷丁香久久五月婷婷| 性欧美videossex精品| 亚洲精选av| 亚洲美女黄色片| 久久久久久久麻豆| 激情自拍一区| 国产精品一区二区三区成人| 亚洲国产综合网| 国产偷国产偷亚洲高清人白洁| 国产成年人在线观看| caoporn视频在线| 欧美日韩一区二区三区免费看| 一级做a爱视频| 亚洲精品无吗| 欧美另类第一页| 亚洲欧美日韩一区二区三区四区| 国内精品视频666| 欧美精品亚洲| 色呦呦网站在线观看| 日本高清不卡一区| xxxx国产视频| 首页国产精品| 日本国产高清不卡| 韩国av在线免费观看| 国产人成一区二区三区影院| 99在线免费视频观看| 日本中文字幕视频一区| 日韩精品中文字幕在线| 免看一级a毛片一片成人不卡| 免费视频一区二区| 看欧美日韩国产| 国产黄色大片在线观看| 欧美日韩成人在线| 国产黄片一区二区三区| 日韩视频三区| 国产精品免费在线播放| 高清全集视频免费在线| 欧美丝袜丝nylons| 国产偷人妻精品一区| 国内精品久久久久久久97牛牛| 国产精品久久久久久久久久久久久| 秋霞欧美在线观看| 夜夜亚洲天天久久| 色偷偷中文字幕| 国产精品久久久久久影院8一贰佰 国产精品久久久久久麻豆一区软件 | 成人vr资源| 国产91网红主播在线观看| 天堂在线视频免费| 午夜精品久久久久久久久久| 少妇欧美激情一区二区三区| 亚洲乱码电影| 成人黄色免费在线观看| jizz亚洲| 欧美亚洲一区三区| 国产三级黄色片| 卡一卡二国产精品| 亚洲精品8mav| 国产精品伦一区二区| 中文字幕精品一区久久久久| 免费黄色av片| 国产欧美日韩在线观看| 中文字幕天天干| 91亚洲一区| 92福利视频午夜1000合集在线观看| 麻豆视频在线免费观看| 欧美三片在线视频观看| 国产视频精品免费| 国产在线精品一区二区三区不卡| 中文字幕在线中文字幕日亚韩一区 | 四虎影院在线播放| 欧美日韩亚洲一区二区三区| 少妇户外露出[11p]| 亚洲资源av| 日本在线播放不卡| 亚洲国产91视频| 精品中文字幕在线| 无码国产精品高潮久久99| 欧美性猛交视频| 日本人亚洲人jjzzjjz| 精品综合久久久久久8888| 干日本少妇视频| 大奶在线精品| 国产91在线播放精品91| av大片在线看| 欧美一二三区在线观看| 日韩欧美大片在线观看| 久久婷婷国产综合国色天香| 欧美丰满熟妇xxxxx| 欧美mv日韩| 成人黄色片视频网站| 伊人久久综合一区二区| 久久精品99久久久香蕉| 蜜臀av中文字幕| 91国模大尺度私拍在线视频| 精品国产视频一区二区三区| 成人动漫一区二区三区| 欧美 国产 小说 另类| 99精品在线免费在线观看| 国产精品久久久久久久久久久久冷 | 精品产国自在拍| 97国产超碰| 日韩av超清在线观看| 欧美乱妇40p| 欧美女v视频| 欧美一区二区精品在线| 99热只有这里有精品| 亚洲国产成人在线| 亚洲 欧美 日韩在线| 蜜桃视频免费观看一区| 日韩一级性生活片| 日韩av久操| 成人国产一区二区| 日本免费在线一区| 欧美一级黄色网| 性爱视频在线播放| 一区二区三区四区在线观看视频 | 成人午夜av在线| 在线观看av网页| 99综合在线| 久久久99精品视频| 欧美日韩一二三四| 精品一区二区不卡| 精品国产亚洲一区二区三区| 国产第一区电影| 国产美女高潮在线| 久久艹在线视频| av电影在线播放高清免费观看| 亚洲精品国产拍免费91在线| 国产三级视频在线播放| 欧洲精品中文字幕| 中文字幕超碰在线| 亚洲一级二级三级| 欧美日韩在线观看成人| 中文字幕在线观看不卡| 亚洲码无人客一区二区三区| 北条麻妃一区二区三区| 免费看的av网站| 久久99久久99| 韩国视频一区二区三区| 久久一区精品| 成人羞羞国产免费网站| 136国产福利精品导航网址| 国产手机视频在线观看| 久久中文视频| 先锋影音日韩| 精品久久中文| 日韩欧美第二区在线观看| 亚洲丝袜啪啪| 蜜桃传媒视频麻豆第一区免费观看| 久久悠悠精品综合网| av一区二区三区免费| 精品视频在线观看网站| 亚洲a级在线观看| 91麻豆精品| 91精品啪aⅴ在线观看国产| jizzyou欧美16| 国产精品一区二区三区毛片淫片 | 美女爆乳18禁www久久久久久 | 九九热久久免费视频| 国产午夜精品一区二区三区四区 | 欧美日韩一二三四| 深田咏美在线x99av| 欧美日韩性在线观看| 亚洲欧美日韩不卡一区二区三区| 色婷婷一区二区三区| 亚洲一区美女| 伊人成综合网| 欧美极品少妇无套实战| 亚洲无线一线二线三线区别av| 成年丰满熟妇午夜免费视频| 精品福利av| 人妻有码中文字幕| 蜜臀久久久久久久| 中文字幕第10页| 成人午夜激情在线| 亚洲国产欧美视频| 国产精品人成在线观看免费| 亚洲人与黑人屁股眼交| 亚洲精品高清在线| 日韩伦人妻无码| 欧洲一区二区三区在线| 亚洲综合精品视频| 精品国产麻豆免费人成网站| 三级做a全过程在线观看| 亚洲一区999| а√天堂资源地址在线下载| 久久久久女教师免费一区| 一级毛片久久久| 91在线免费看网站| 美女福利一区| 亚洲精品日韩成人| 欧美理论在线| 免费av网址在线| 久久99国产精品久久99| 麻豆短视频在线观看| 久久久久亚洲蜜桃| 九九热精品免费视频| 欧美性猛交xxxx免费看| 国产精品久久久久毛片| 亚洲国产精品人人爽夜夜爽| av资源网在线观看| 久久久久久久999精品视频| 日韩精品影院| 高清视频在线观看一区| 国产成人av| av在线免费观看国产| 日韩精品亚洲专区| 美女露出粉嫩尿囗让男人桶| 国产片一区二区三区| 一区二区三区免费高清视频| 欧美中文字幕一区二区三区 | 大陆极品少妇内射aaaaaa| 久久不射网站| 亚洲欧美综合视频| 国产精品久线观看视频| 五月天婷婷综合网| 91精品国产综合久久久久久久久久 | 暖暖成人免费视频| av观看久久| 日韩av有码| 无码日韩人妻精品久久蜜桃| 国产高清不卡二三区| 久久午夜精品视频| 欧美日韩美女视频| 亚洲av无码一区二区三区性色| 中文字幕av一区中文字幕天堂| 99热99re6国产在线播放| 成人www视频在线观看| 国产欧美日韩在线观看视频| 欧美视频免费看欧美视频| 国产九九视频一区二区三区| 成人黄色a级片| 色综合久久久久综合体桃花网| 亚洲精品久久久久久久久久久久久久| 自拍偷拍亚洲区| 日韩三区在线| 日本福利一区二区三区| 国产日韩视频| 成人区人妻精品一区二| 一区二区成人在线| 亚洲av无码乱码国产精品久久| 日韩在线视频观看| 九色成人搞黄网站| 日韩福利视频| 日韩激情一区二区| 日韩免费高清一区二区| 偷拍一区二区三区四区| 欧美特黄一级视频| 久久久久久午夜| 97成人在线| 国产日本在线播放| 成人免费av网站| 国产无遮挡又黄又爽在线观看| 日韩免费看网站| 天堂va在线| 国产原创精品| 91久久综合| 中文文字幕文字幕高清| 精品久久久国产| 青春草在线观看 | 国产精品一区免费在线 | 粉嫩高清一区二区三区精品视频 | 日本中文字幕在线一区| 免费观看美女裸体网站| 99久久99久久精品免费看蜜桃| 国产午夜小视频| 亚洲精品有码在线| 成人四虎影院| 椎名由奈jux491在线播放| 韩国女主播成人在线| 日本aⅴ在线观看| 欧美成人精精品一区二区频| 2019中文字幕在线电影免费| 国产尤物99| 免费观看30秒视频久久| 欧美h片在线观看| 精品久久久三级丝袜| 日本不卡网站| 日韩影片在线播放| 国产综合久久久久影院| 国产在线视频二区| 亚洲精品视频久久| 亚洲国产91视频| www.成年人视频| 久久无码av三级| 国产精品久久综合青草亚洲AV| 欧美大奶子在线| 亚洲人亚洲人色久| 亚洲一区二区在线视频观看| 亚洲国产一区二区视频| 第三区美女视频在线| 91九色国产视频| 亚洲精品乱码久久久久久蜜桃麻豆| 一卡二卡三卡四卡| 91麻豆精品国产综合久久久久久| 波多野结衣在线观看| 日韩欧美亚洲日产国| 国产精品综合一区二区| 欧美h在线观看| 欧美成人免费一级人片100| 亚欧日韩另类中文欧美| 国产美女视频免费看| 亚洲不卡在线观看| 永久免费av在线| 精品卡一卡二| 久久爱www久久做| 欧美a视频在线观看| 久久久国产一区二区三区|