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

教你玩轉MyRocks/RocksDB—STATISTICS與后臺線程篇

數據庫 MySQL 開發工具
本文將介紹SHOW ENGINE ROCKSDB STATUS中關于STATISTICS統計值與后臺線程的實現原理。在了解實現原理的基礎上,便可以較容易地通過擴展功能使它更好地為我們服務。

[[219775]]

0. Intro

在facebook的MySQL版本(以下稱為MyRocks)中,RocksDB是可選的存儲引擎。相比于InnoDB引擎,RocksDB的一個重要的優勢是它使用更少的磁盤空間。在生產系統中,特別是用戶數在億級以上的互聯網應用,磁盤空間是其中比較大的成本之一,而能夠使用更少的磁盤空間的RocksDB無疑是具有吸引力的。然而在生產系統中使用新的存儲引擎自然有它的潛在風險,除了通過外部的各種benchmark工具測試得到各種性能數據,全方位的內部指標可以幫助我們真正了解數據庫內部正在發生的事情,對于性能調優和開發都具有指導意義。而MyRocks通過SHOW ENGINE ROCKSDB STATUS和多個INFORMATION_SCHEMA表等方式提供了較為全面的內部指標。

本文將介紹SHOW ENGINE ROCKSDB STATUS中關于STATISTICS統計值與后臺線程的實現原理。在了解實現原理的基礎上,便可以較容易地通過擴展功能使它更好地為我們服務。

調用SHOW ENGINE ROCKSDB STATUS指令會返回多行數據,其中包括:

  • STATISTICS:RocksDB引擎所有線程的所有操作的各類count/time的累加,比如rocksdb.block.cache.hit和rocksdb.db.write.micros。
  • BG_THREADS: 后臺線程的狀態。
  • DBSTATS: 數據庫操作的統計。
  • CF_COMPACTION: 各個Column family進行compaction的相關指標統計。
  • MEMORY_STATS: 內存使用情況。

調用SHOW ENGINE ROCKSDB STATUS會返回若干行數據,然而這些數據并非事先存儲于某個表格中,而是通過調用位于rocksdb/ha_rocksdb.cc文件中的rocksdb_show_status函數將內存中對應的數值進行規整返回給用戶。

1. STATISTICS

根據RocksDB官方相關文檔介紹STATISTICS,開啟STATISTICS會增加增加5%-10%額外開銷。

STATISTICS統計值記錄著RocksDB引擎所有線程的所有操作的各類count/time的累加。RocksDB引擎在它的各類操作如Put/Get/Delete中的代碼都設立了很多埋點。

以函數GetEntryFromCache為例,它的作用是返回可用的block cache。特別地,可以看到statistics是GetEntryFromCache和block_cache->Lookup的一個參數。沒錯,就是靠著statistics這個參數它到處收集數據。

當有可用的block cache時,調用了三次RecordTick為其中三個統計值增加計數;沒有可用的block cache,同樣也為BLOCK_CACHE_MISS和block_cache_miss_ticker增加計數。

 

  1. Cache::Handle* GetEntryFromCache(Cache* block_cache, const Slice& key 
  2.                                  Tickers block_cache_miss_ticker,  
  3.                                  Tickers block_cache_hit_ticker,  
  4.                                  Statisticsstatistics) {  
  5.   auto cache_handle = block_cache->Lookup(keystatistics);  
  6.   if (cache_handle != nullptr) {  
  7.     PERF_COUNTER_ADD(block_cache_hit_count, 1);  
  8.     // overall cache hit  
  9.     RecordTick(statistics, BLOCK_CACHE_HIT);  
  10.     // total bytes read from cache  
  11.     RecordTick(statistics, BLOCK_CACHE_BYTES_READ,  
  12.                block_cache->GetUsage(cache_handle));  
  13.     // block-type specific cache hit  
  14.     RecordTick(statistics, block_cache_hit_ticker);  
  15.   } else {  
  16.     // overall cache miss  
  17.     RecordTick(statistics, BLOCK_CACHE_MISS);  
  18.     // block-type specific cache miss  
  19.     RecordTick(statistics, block_cache_miss_ticker);  
  20.   }  
  21.   return cache_handle;  
  22.  

1.1 RocksDB的STATISTICS接口

使用STATISTICS的方法也很簡單。

它的頭文件位于: 

  1. include/rocksdb/statistics.h  
  2. monitoring/statistics.h  

使用方法: 

  1. Options options;  
  2. options.statistics = rocksdb::CreateDBStatistics();  

可選統計級別:

  • kExceptDetailedTimers: 除去mutex等待和壓縮的計時
  • kExceptTimeForMutex: 除去mutex等待的計時
  • kAll: 所有

數據統計類型分成兩種:

  • ticker:計數,類型是64位無符號整型。用于度量counters (e.g. “rocksdb.block.cache.hit”), cumulative bytes (e.g. “rocksdb.bytes.written”) 或者 time (e.g. “rocksdb.l0.slowdown.micros”)。
  • histogram:統計數據的統計分布,包括***值、最小值、平均值、中位數、標準差。

統計函數的接口:

  • MeasureTime:函數名有歧義。實際上是把value記錄到histogram中。
  • RecordTick:累加ticker。

獲取結果的接口:

  • Statistics::getTickerCount:指定ticker type獲得count。
  • Statistics::histogramData:指定Histograms type,返回一個HistogramData結構體,成員是統計值,包括***值、最小值、平均值、中位數、標準差。
  • Statistics::getHistogramString:指定Histograms type,返回直方圖可讀的字符串。
  • Statistics::ToString():返回可讀的字符串,包括所有的ticker和histogram。

1.2 RocksDB的STATISTICS實現

RocksDB實現了StatisticsImpl類,繼承了Statistics的接口。

  • 主要接口:
  • getTickerCount
  • histogramData
  • getHistogramString
  • getAndResetTickerCount
  • recordTick
  • measureTime
  • ToString

成員變量:

  • TickerInfo tickers_[INTERNAL_TICKER_ENUM_MAX];
  • HistogramInfo histograms_[INTERNAL_HISTOGRAM_ENUM_MAX];

這里的TickerInfo和HistogramInfo類型的數據結構是相似的:一個線程局部的counter或者time;加上一個非線程局部的統計值用來累加counter或者time。

TickerInfo類型包含兩個參數:

ThreadLocalPtr類型(真實類型ThreadTickerInfo)的thread_value,包含:

  • 整型類型的value
  • 指向merged_sum的指針
  • 整型類型的merged_sum
  • HistogreamInfo類型包含兩個參數:

ThreadLocalPtr類型(真實類型ThreadHistogramInfo)的thread_value,包含:

  • HistogramImpl類型的value
  • 指向merged_hist的指針
  • 指向merge_lock的指針
  • HistogramImpl類型的merged_hist
  • Mutex類型的merge_lock

事實上,STATISTICS相關實現是比較巧妙的,也是使用STATISTICS僅增加5%-10%的關鍵。為了避免線程間共享數據導致CPU的cache頻繁失效,merged_sum和merged_hist初始化時都是空的,而且當且僅當線程退出時,才調用mergeThreadValue函數將TickerInfo和HistogreamInfo中的線程局部變量累加到merged_sum和merged_hist。

1.3 MyRocks的使用

MyRocks使用了RocksDB提供的接口進行數據統計。通過聲明了變量rocksdb_stats,并且隨著RocksDB引擎啟動時通過rocksdb_init_func函數進行初始化。 

  1. rocksdb_stats = rocksdb::CreateDBStatistics();  
  2. rocksdb_db_options->statistics = rocksdb_stats;  

除了使用所有RocksDB引擎層的統計,MyRocks還通過定義了 

  1. commit_latency_stats = new rocksdb::HistogramImpl(); 

在rocksdb_commit_by_xid和rocksdb_commit兩個函數中通過計時的方式,統計了每一次commit所花費的時間。 

  1. rocksdb::StopWatchNano timer(rocksdb::Env::Default(), true);  
  2. ...  
  3. commit_latency_stats->Add(timer.ElapsedNanos() / 1000);  

在rocksdb_show_status函數中,輸出Statistics統計的過程如下:

如果定義rocksdb_stats,則調用rocksdb_stats->ToString()將統計值轉化為可讀的字符串;

commit_latency_stats是直方圖的類型,輸出對應的50%, 95%, 99%, 100%四個位點的對應的值。

假如定義了is-write-stopped或者actual-delayed-write-rate等Property變量,同樣會將它們輸出。

2 后臺線程

通過調用SHOW ENGINE ROCKSDB STATUS可以得到與BG_THREADS相關結果,它的輸出結果類似于: 

  1. Type: BG_THREADS  
  2. Name: 140173379593984  
  3. Status:  
  4. thread_type: Low Pri##  
  5. cf_name: default  
  6. operation_type: Compaction  
  7. operation_stage: CompactionJob::ProcessKeyValueCompaction  
  8. elapsed_time_ms: 6172.244 ms  
  9. BaseInputLevel: 0  
  10. BytesRead: 992806363  
  11. BytesWritten: 992071408  
  12. IsDeletion: 0  
  13. IsManual: 0  
  14. IsTrivialMove: 0  
  15. JobID: 1936  
  16. OutputLevel: 5  
  17. TotalInputBytes: 1586832446  
  18. state_type:  

可以看到較多的信息量:這個線程正在進行Compaction,處于CompactionJob::ProcessKeyValueCompaction階段,已經耗時6172.244 ms,讀取的字節數為992806363,寫出的字節數為992071408。然而并不包括可能感興趣的正在進行Compaction的源文件和目標文件等信息。正如文章開頭提到的,了解實現原理能夠使我們更好地進行擴展。

2.1 thread status的接口與實現

MyRocks中的SHOW ENGINE ROCKSDB STATUS指令展示BG_THREAD的機制使用了RocksDB中關于thread status的接口。

它的頭文件位于: 

  1. include/rocksdb/env.h  
  2. include/rocksdb/thread_status.h  
  3. util/thread_operation.h  
  4. monitoring/thread_status_updater.h  
  5. monitoring/thread_status_util.h  

關鍵類:

  • ThreadStatusUpdater:存儲了各自后臺線程的狀態和所有后臺線程狀態的指針。
  • ThreadStatusUtil:該類只有靜態變量和靜態方法,推薦通過該類的方法去更新ThreadStatusUpdater中的狀態。

使用方法:

  • 將該線程的統計加入ThreadStatusUpdater:調用ThreadStatusUtil::RegisterThread
  • 將該線程的統計從ThreadStatusUpdater刪除:調用ThreadStatusUtil::UnregisterThread
  • 其他修改thread status的函數:見monitoring/thread_status_util.h

通過調用env的GetThreadList()函數可以獲得當前后臺線程的狀態,狀態的狀態值存放于一個vector中。將其中的內容展現出來,類似于下圖:

從代碼中可以看到,實現thread status的目的展示flush和compaction的運行狀態。當然,我們也可以將用戶線程的狀態存儲到thread status,通過調用SHOW ENGINE ROCKSDB STATUS指令展示。

特別地,可以看到compaction特有的狀態值有: 

  1. enum CompactionPropertyType : int {  
  2.     COMPACTION_JOB_ID = 0,  
  3.     COMPACTION_INPUT_OUTPUT_LEVEL,  
  4.     COMPACTION_PROP_FLAGS,  
  5.     COMPACTION_TOTAL_INPUT_BYTES,  
  6.     COMPACTION_BYTES_READ,  
  7.     COMPACTION_BYTES_WRITTEN,  
  8.     NUM_COMPACTION_PROPERTIES  
  9.   };  

flush特有的狀態值有: 

  1. enum FlushPropertyType : int {  
  2.    FLUSH_JOB_ID = 0,  
  3.    FLUSH_BYTES_MEMTABLES,  
  4.    FLUSH_BYTES_WRITTEN,  
  5.    NUM_FLUSH_PROPERTIES  
  6.  };  

2.2 MyRocks/RocksDB的使用

在RocksDB的線程池實現中,每一個啟動的后臺線程都會通過調用ThreadStatusUtil::RegisterThread加入被觀測的后臺線程的集合中。 

  1. ThreadPoolImpl::Impl::StartBGThreads-->BGThreadWrapper-->ThreadStatusUtil::RegisterThread 

在rocksdb_show_status函數中,輸出BG_THREAD的過程如下:

  • 通過調用GetThreadList(&thread_list)獲得所有后臺線程的ThreadStatus的集合。
  • 通過遍歷ThreadStatus的集合將每一個后臺線程的狀態依次輸出。

3. 小結 

本文章介紹了SHOW ENGINE ROCKSDB STATUS指令中關于STATISTICS與BG_THREAD的相關內容。 

 

責任編輯:龐桂玉 來源: 騰訊云數據庫內核專欄
相關推薦

2018-05-12 16:26:17

互聯網VPC子網

2024-04-09 12:08:51

Next組件Next.js

2011-08-10 15:58:12

WPS符號欄

2021-05-18 14:42:55

PythonMySQL

2013-03-13 09:56:10

2013-09-10 10:20:12

數據大數據大數據應用

2014-06-13 16:52:11

2015-03-23 12:33:28

2011-01-28 15:47:15

webOS 2.1

2012-04-17 14:33:00

牛排New iPad

2021-12-10 08:39:50

SQLPLUS Oracle 數據庫

2014-08-19 09:10:45

IT運維

2011-06-09 11:39:04

噴墨打印機技巧

2016-11-17 16:58:01

華為 手機

2017-10-11 15:17:42

sklearn機器學習pandas

2017-07-21 11:45:12

Windows 10Windows聚焦功能

2025-08-27 00:00:00

ClaudeCodeAI生成工具

2015-02-11 11:27:13

網絡釣魚網絡犯罪賽門鐵克

2015-07-22 16:44:51

HTML5優化

2022-09-29 00:30:03

元宇宙科技營銷
點贊
收藏

51CTO技術棧公眾號

欧美成人午夜视频| 欧美日韩成人激情| 欧美激情视频一区二区三区| 波多野结衣毛片| 国产精品久久久久久久久久10秀 | 99久久精品国产精品久久 | 久久精品国产精品亚洲毛片| 亚洲天堂网中文字| 精品久久精品久久| 91肉色超薄丝袜脚交一区二区| 黄色成人精品网站| 中文国产亚洲喷潮| 久久精品无码专区| 欧洲成人一区| 午夜久久久影院| 一区二区视频在线免费| 天天综合天天综合| 国产麻豆精品95视频| 青青草99啪国产免费| 欧美日韩综合一区二区| 国产真实有声精品录音| 精品福利av导航| 久久成年人网站| 日韩电影免费观看高清完整版| 一区二区三区视频在线观看| 亚洲国产一区在线| 青春有你2免费观看完整版在线播放高清| 麻豆精品国产91久久久久久| 4p变态网欧美系列| 九九久久免费视频| 五月天综合网站| 国产一区二区三区精品久久久 | 国产亚洲欧美一区在线观看| 不卡视频一区| 国产一区二区三区中文字幕| 日韩精品电影一区亚洲| 91成人国产在线观看| 久久久久久久久久久久国产| 婷婷久久一区| 色噜噜久久综合伊人一本| 蜜桃传媒一区二区亚洲av| 大奶在线精品| 日韩一级黄色大片| 97超碰人人看| 自拍偷拍亚洲图片| 欧美日韩亚洲高清一区二区| 超碰影院在线观看| 中文在线免费视频| 欧美日韩色婷婷| 黄色www网站| 国产激情视频在线看| 亚洲妇女屁股眼交7| 天堂8在线天堂资源bt| 色屁屁www国产馆在线观看| 成人免费在线播放视频| 伊人久久大香线蕉综合75| 日本中文字幕在线播放| √…a在线天堂一区| 在线观看日韩羞羞视频| 天堂资源在线中文| 综合网在线视频| 免费观看中文字幕| 91亚洲天堂| 一区二区三区精品视频在线| 免费网站在线观看视频| 国产偷倩在线播放| 天天免费综合色| 久草青青在线观看| 亚洲一区二区三区四区| 欧美日韩国产免费一区二区| 日韩精品aaa| 99久久人爽人人添人人澡| 精品国产髙清在线看国产毛片 | 国产精品久久影视| 国产精品一色哟哟哟| 国产精品白丝jk白祙| 五月婷婷六月激情| 欧美极品少妇xxxxⅹ高跟鞋 | 亚洲搞黄视频| 一区二区三区在线视频免费 | 天堂中文在线播放| 色妞www精品视频| av在线网址导航| 成人h动漫免费观看网站| 亚洲欧美日韩精品久久| 国产wwwwxxxx| 激情婷婷亚洲| 国产精品久久久久999| 国产wwwxxx| 91原创在线视频| 中文字幕综合在线观看| 美女精品导航| 在线看日韩精品电影| 国产又粗又长又爽又黄的视频| 免费观看成人www动漫视频| 亚洲香蕉在线观看| 极品颜值美女露脸啪啪| 久久精品主播| 国产成人免费观看| 大乳在线免费观看| 亚洲va欧美va天堂v国产综合| 午夜免费一区二区| 91蝌蚪精品视频| 永久免费看mv网站入口亚洲| 久久久精品视频在线| 日韩在线观看一区二区| 成人午夜电影免费在线观看| sese在线视频| 亚洲一区二区影院| 午夜国产一区二区三区| 国产96在线亚洲| 精品国内亚洲在观看18黄| 五月天婷婷久久| 国产成人综合在线观看| 亚洲精品视频一二三| av丝袜在线| 正在播放一区二区| 青娱乐国产视频| 在线亚洲观看| 91精品国产高清久久久久久91裸体 | 日韩av在线电影观看| h片精品在线观看| 欧美精品自拍偷拍| 中国毛片在线观看| 亚洲伦理一区| 99久热re在线精品996热视频| 国产高清视频免费最新在线| 欧美日韩加勒比精品一区| 国产精品久久久久久9999| 欧美日韩精品一区二区视频| 77777少妇光屁股久久一区| 成人高潮片免费视频| 亚洲欧洲精品成人久久奇米网| 欧美亚洲日本在线观看| 无码日韩精品一区二区免费| 九九视频这里只有精品 | 六月丁香综合在线视频| 日本免费高清一区| 亚洲最大成人| 日韩精品在线影院| 天天做天天爱夜夜爽| av一区二区三区黑人| 国产妇女馒头高清泬20p多| 日韩一区二区三区色 | av在线私库| 日韩精品专区在线影院重磅| 国产午夜手机精彩视频| 激情国产一区二区| 亚洲欧洲精品一区二区三区波多野1战4| 久久野战av| 夜夜嗨av一区二区三区四区| 91黑人精品一区二区三区| 久久综合一区二区| 久久久精品在线视频| 九九久久成人| 国产精品极品在线| 午夜精品一区| 欧美一区二区不卡视频| 精品无码人妻一区二区三区 | 亚洲色成人网站www永久四虎| 免费在线播放第一区高清av| 欧美午夜欧美| 992tv国产精品成人影院| 中文字幕日韩在线观看| 91高潮大合集爽到抽搐| 亚洲欧美色综合| 国产麻豆剧传媒精品国产| 91久久综合| 欧美日韩一区二区视频在线| 成人看片毛片免费播放器| 日韩亚洲欧美成人| 国产成人精品a视频| 亚洲一区二区三区自拍| 无码人妻精品一区二区三应用大全| 久久精品亚洲| 特级黄色录像片| 成人午夜大片| 国产精品极品美女在线观看免费| 日本中文字幕在线看| 精品日产卡一卡二卡麻豆| 国产精品999在线观看| 亚洲国产精品传媒在线观看| 97人人模人人爽人人澡| 欧美黄色精品| 欧美精品一区在线| 日韩久久一区| 韩国国内大量揄拍精品视频| www亚洲人| 欧美不卡123| 中文字幕免费高清网站| 亚洲欧美日韩国产另类专区| 亚洲av成人精品一区二区三区| 视频一区视频二区在线观看| 老汉色影院首页| 亚洲毛片免费看| 5566av亚洲| 桃花岛成人影院| 九九热在线精品视频| 国产精品一区二区婷婷| 日韩精品中文字幕一区| 久久久久精彩视频| 亚洲一区二区三区中文字幕| 人人妻人人澡人人爽| 处破女av一区二区| jizz欧美性11| 欧美亚洲专区| 男人天堂新网址| 久久高清免费| 看高清中日韩色视频| 日韩综合一区二区三区| 国产精品爽黄69| 亚洲欧美小说色综合小说一区| 欧美成在线视频| yw193.com尤物在线| 亚洲第一区中文99精品| 国产免费久久久| 在线观看视频一区二区| 国产手机在线视频| 亚洲欧美偷拍卡通变态| 五月婷婷六月香| 91免费观看视频| jjzz黄色片| 国产剧情一区在线| 亚洲36d大奶网| 首页国产欧美日韩丝袜| 国产精品333| 亚洲高清在线| 久久精品xxx| 欧美精品色网| 最近免费观看高清韩国日本大全| 欧美色就是色| 日本一区二区三区www| 日本精品影院| 精品人伦一区二区三区| 成人三级av在线| 国产高清自拍一区| 亚洲啊v在线免费视频| 91久久在线视频| 羞羞视频在线观看一区二区| 国产精品免费小视频| 日韩成人影音| 国产成人啪精品视频免费网| 涩涩视频在线播放| 日本欧美国产在线| 亚洲午夜天堂| 日韩av电影在线免费播放| 亚洲天堂av在线| 51久久精品夜色国产麻豆| 黄色在线免费观看网站| 韩剧1988免费观看全集| 擼擼色在线看观看免费| 97超视频免费观看| 亚洲一级少妇| 国产精品9999| 成人黄色免费观看| 成人久久一区二区| 免费精品一区| 国产精品亚洲不卡a| 欧美绝顶高潮抽搐喷水合集| 老牛影视免费一区二区| 一区二区三区四区在线看| 日韩精品久久久毛片一区二区| 成人一二三区| 久久久久久久免费视频| 欧美日韩一视频区二区| 波多野结衣综合网| 国产欧美欧美| 黄色在线视频网| 国产乱一区二区| 亚洲一区二区在线免费| 久久久噜噜噜久久人人看| 老头老太做爰xxx视频| 亚洲欧美日韩电影| 国产精品免费av一区二区| 欧美性生活大片免费观看网址| 少妇一级淫片日本| 欧美日本高清视频在线观看| 成人午夜免费福利| 亚洲欧美国产一本综合首页| 免费在线看黄色| 久久全球大尺度高清视频| 五月天av在线| 91精品久久久久久久久久入口| 天堂av一区| 日本一区不卡| 黄色成人av网站| 狠狠热免费视频| 国产成人在线视频网址| 国产成人精品无码免费看夜聊软件| 国产精品久久久久aaaa| 日韩黄色一级大片| 欧美日韩精品系列| 日本韩国免费观看| 少妇激情综合网| 成人免费网站观看| 国产视频999| 欧美a级网站| 做爰高潮hd色即是空| 亚洲专区免费| 超碰中文字幕在线观看| 久久久99精品久久| 久久久精品国产sm调教| 欧美三区在线观看| 天天操天天操天天| 最新国产成人av网站网址麻豆| av漫画网站在线观看| 国产精品中文字幕在线| 猫咪成人在线观看| 日本黄xxxxxxxxx100| 日韩国产一区二| 妖精视频一区二区| 亚洲色图欧洲色图| 精品无码一区二区三区的天堂| 亚洲精品在线电影| 国内精品久久久久久野外| 国产成人97精品免费看片| 97久久综合区小说区图片区| 一区二区日本| 日韩在线卡一卡二| 三上悠亚ssⅰn939无码播放 | 日韩有码在线观看| 日韩精品99| 狠狠色综合色区| 欧美日韩亚洲一区| 欧美激情第一区| 国产精品久久久久久久久免费桃花| 午夜影院免费在线观看| 精品国产百合女同互慰| 伊人影院蕉久影院在线播放| 国产在线观看不卡| 久久一本综合| 999精彩视频| 日本一区二区成人在线| 欧美日韩一级黄色片| 亚洲精品日韩欧美| 国产精品yjizz视频网| 国产精品播放| 亚洲黄色毛片| 少妇精品无码一区二区三区| 亚洲图片自拍偷拍| 亚洲av永久纯肉无码精品动漫| 不卡av在线播放| 免费精品一区| 欧美在线观看视频免费| 国产成人在线色| 久久人人爽人人爽人人| 欧美成人精品高清在线播放| 少女频道在线观看免费播放电视剧| 亚洲free嫩bbb| 一本一道久久a久久精品蜜桃| 不卡中文字幕在线观看| 亚洲日本电影在线| 国产精品国产av| 久久亚洲国产成人| 日韩高清一区| 欧美日韩福利在线| 99久久国产综合色|国产精品| 国产69精品久久久久久久久久| 亚洲男人的天堂网站| 日韩欧美精品电影| 亚洲日本无吗高清不卡| 久久97超碰色| 久久久久久久福利| 日韩av在线看| 日韩漫画puputoon| 一区二区三区在线视频看| 国产一区二区三区免费在线观看| 青娱乐国产精品| 亚洲精品久久久久中文字幕二区| 美女在线视频免费| 色狠狠久久av五月综合|| 精品亚洲成a人在线观看| 青娱乐91视频| 亚洲免费人成在线视频观看| 97精品国产99久久久久久免费| 中文字幕精品—区二区日日骚| 成人一区二区三区中文字幕| 日韩欧美成人一区二区三区| 色爱av美腿丝袜综合粉嫩av| 日韩精品一区二区三区中文字幕 | 九九久久精品视频| 美女福利视频在线观看| 日韩久久精品成人| 日韩免费在线电影| 国产精品久久中文字幕| 中文一区二区在线观看| 亚洲第一天堂在线观看| 日本老师69xxx| 亚洲女同一区| 日韩人妻无码一区二区三区| 欧美片网站yy| 蜜桃麻豆av在线| 亚洲国产婷婷香蕉久久久久久99| 国产白丝网站精品污在线入口| 日韩在线播放中文字幕| 久久天天躁夜夜躁狠狠躁2022| 伊人久久大香线蕉| 善良的小姨在线| 91久久精品国产91性色tv| 伊人影院蕉久影院在线播放|