精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

一区二区在线观看视频| 国产精品一品二品| 尤物tv国产一区| 色综合五月婷婷| 2021中文字幕在线| 欧美极品少妇xxxxⅹ高跟鞋| 成人在线精品视频| 国产精品美女久久久久av爽| 国语产色综合| 欧美成人高清电影在线| 狠狠热免费视频| 激情av在线| 中文字幕在线观看不卡| 六十路精品视频| 国产高清在线免费| 日本成人在线不卡视频| 午夜精品久久久99热福利| 男人舔女人下部高潮全视频| 大奶在线精品| 9191久久久久久久久久久| 欧美牲交a欧美牲交aⅴ免费真| 蜜芽在线免费观看| 国产午夜久久久久| 国产视频一区二区三区四区| 91国产精品一区| 天堂精品中文字幕在线| 98精品国产高清在线xxxx天堂| 永久av免费网站| 精品freesex老太交| 亚洲国产精品一区二区久| 99九九精品视频| 成人四虎影院| 色综合夜色一区| 欧美日韩精品在线一区二区 | 国产精品一级片| 国产精品露脸自拍| 日韩免费av网站| 国产精品人人爽人人做我的可爱| 久久99亚洲精品| 老司机成人免费视频| 日本电影一区二区| 在线国产精品视频| 青娱乐国产视频| 少妇精品久久久| 亚洲美女av电影| 亚洲av无码一区二区二三区| 国产成人精品福利| 精品日韩在线观看| 亚洲精品乱码久久久久久9色| 四虎视频在线精品免费网址| 欧美日韩视频专区在线播放| 国产三级日本三级在线播放| 成人性生活视频| 色综合久久久久综合体| 人妻有码中文字幕| 日本成人三级电影| 在线观看免费成人| 激情视频免费网站| 亚洲三级在线| 日韩丝袜美女视频| www.美色吧.com| 麻豆精品av| 亚洲人成亚洲人成在线观看| 最近中文字幕在线mv视频在线| 天堂在线精品| 中文一区二区视频| 精品无码久久久久成人漫画| 亚洲色图网站| 久久久噜噜噜久噜久久| 国产成人愉拍精品久久| 老**午夜毛片一区二区三区| 国产精品第一视频| 国产麻豆精品一区| 东方欧美亚洲色图在线| 欧美日韩电影一区二区三区| 亚洲天天影视| 亚洲宅男天堂在线观看无病毒| 久激情内射婷内射蜜桃| 欧美18—19sex性hd| 欧美日韩国产一级| 无码人妻一区二区三区一| 天天躁日日躁成人字幕aⅴ| 中文字幕av一区中文字幕天堂| 亚洲不卡在线播放| 99伊人成综合| 国产免费成人av| 色婷婷av一区二区三| 国产视频一区二区在线观看| 亚洲自拍偷拍一区二区三区| 麻豆国产在线| 欧美人妇做爰xxxⅹ性高电影| ass极品水嫩小美女ass| 果冻天美麻豆一区二区国产| 一区二区三区久久精品| 久久久综合久久| 欧美亚洲视频| 亚洲在线第一页| 毛片在线免费| 亚洲香肠在线观看| 孩娇小videos精品| 国产一区在线电影| 久久人人爽人人爽爽久久| 国产精品999在线观看| 麻豆91小视频| 久久久综合亚洲91久久98| 麻豆视频网站在线观看| 狠狠躁天天躁日日躁欧美| 欧美视频国产视频| 你懂的一区二区三区| 九色精品免费永久在线| 五月激情丁香网| 暴力调教一区二区三区| 日本老太婆做爰视频| 视频在线日韩| 亚洲精品www久久久| 国精产品一区一区二区三区mba| 男人的天堂亚洲| 丁香婷婷久久久综合精品国产| 1769在线观看| 色综合色狠狠天天综合色| 色诱av手机版| 91成人网在线观看| 国产精品欧美激情在线播放| 日韩精品视频无播放器在线看| 一区二区三区中文在线观看| 手机视频在线观看| 国内成人自拍| 欧美又大又硬又粗bbbbb| 懂色av蜜臀av粉嫩av分享吧| 亚洲视频一区二区在线观看| 国产三级国产精品国产专区50| 亚洲成a人片77777在线播放| 午夜欧美大片免费观看| 亚洲精品久久久久久久久久| 亚洲男人的天堂网| 热久久久久久久久| 午夜精品毛片| 成人福利在线观看| 久久99精品久久| 欧美精品三级日韩久久| 美女网站视频色| 蓝色福利精品导航| 亚洲欧洲在线一区| 欧美高清影院| 最近日韩中文字幕中文| 亚洲 小说区 图片区| 亚洲国产精华液网站w| 蜜臀久久99精品久久久酒店新书 | 水蜜桃一区二区三区| 日本成人片在线| 伊人亚洲福利一区二区三区| 制服丝袜在线一区| 国产精品全国免费观看高清| 91最新在线观看| 成人av二区| 成人性生交xxxxx网站| 免费a级毛片在线播放| 欧美一区二区久久久| 99精品久久久久| 成人美女在线视频| 欧美激情国产精品日韩| 欧美精品一区二区三区精品| 国产欧美日韩视频| a在线免费观看| 亚洲白虎美女被爆操| 精品成人av一区二区在线播放| 久久嫩草精品久久久精品一| 国产精品久久久久9999小说| 欧美激情偷拍自拍| 99国产在线视频| 蜜桃av在线| 在线视频免费一区二区| 国产伦精品一区二区三区免.费| 亚洲久本草在线中文字幕| 亚洲乱妇老熟女爽到高潮的片 | 亚洲日穴在线视频| 韩国三级在线看| 免费视频久久| av在线免费网站| 亚洲国产日韩一区二区| 人妻丰满熟妇av无码久久洗澡 | 三上悠亚在线一区| 欧美一区网站| 久久亚洲高清| 日本欧美在线| 8x拔播拔播x8国产精品| fc2在线中文字幕| 精品伦理精品一区| 中文天堂在线播放| 夜夜爽夜夜爽精品视频| 成人免费网站黄| 国产精品亚洲а∨天堂免在线| 日韩av三级在线| 日韩中字在线| 久久久久高清| 国产精品va视频| 日本精品视频在线播放| 成人av福利| 亚洲人成电影网站色www| 精品国产亚洲一区二区麻豆| 日本高清不卡一区| 日韩精品一卡二卡| 18欧美亚洲精品| 亚洲自拍偷拍一区二区| 国产一区二区三区四区五区美女| 日本精品一区二区三区四区| 欧美大片一区| 一区二区三区观看| 麻豆一区二区| 99一区二区| 欧美成人免费全部网站| 青草青草久热精品视频在线网站| 成人看片免费| 日韩在线观看视频免费| 欧美日韩视频精品二区| 亚洲国产精品嫩草影院久久| 99精品免费观看| 欧美日韩在线播放| 青青国产在线视频| 欧美午夜宅男影院在线观看| 久久香蕉精品视频| 一区二区三区在线视频免费| 天堂网中文在线观看| 国产亚洲午夜高清国产拍精品| 黄色性视频网站| 豆国产96在线|亚洲| 黄色三级视频在线播放| 久久精品久久精品| 日韩一级理论片| 三级影片在线观看欧美日韩一区二区| www污在线观看| 狠狠干成人综合网| 一本大道东京热无码aⅴ| 91综合在线| 一区二区高清视频| 久久影院一区| 亚洲在线观看一区| 999国产精品视频| 亚洲一区二区高清视频| 97在线精品| 一本一生久久a久久精品综合蜜| 国产精品欧美日韩一区| 欧美日韩综合精品| 国产精品嫩草影院在线看| 欧洲久久久久久| 第九色区aⅴ天堂久久香| 日韩福利视频| 日韩理论在线| 手机看片日韩国产| 国产精品videossex久久发布| 欧美交换配乱吟粗大25p| 精品91久久久久| 免费看国产曰批40分钟| 久久久精品性| 三级在线视频观看| 国产美女精品人人做人人爽| 国产一级二级av| 99re在线精品| 黄免费在线观看| 亚洲欧洲日韩一区二区三区| 国产精品白丝喷水在线观看| 一区二区三区.www| 日本一二三区不卡| 日韩欧美国产中文字幕| 最新国产中文字幕| 欧美一区二区网站| 丰满熟妇乱又伦| 亚洲男人的天堂网站| 在线免费看av| 欧美—级高清免费播放| 吉吉日韩欧美| 成人午夜黄色影院| 久草在线综合| 手机看片福利永久国产日韩| 四季av在线一区二区三区| 精品免费久久久久久久| 在线一区免费观看| 一区二区三区视频网| 国产成人精品一区二区三区四区| 午夜视频在线观看国产| 欧美国产视频在线| 欧美精品99久久久| 色婷婷精品久久二区二区蜜臀av| ,亚洲人成毛片在线播放| 欧美精品一区二区蜜臀亚洲| 国产在线你懂得| 欧美日本啪啪无遮挡网站| 欧美magnet| 亚洲综合小说区| 国产一区二区三区四区二区| 亚洲人成网站在线播放2019| 在线成人激情| 男人添女荫道口喷水视频| 亚洲伦伦在线| 奇米影音第四色| av在线不卡电影| 国产午夜精品福利视频| 亚洲福利电影网| 国产又粗又大又黄| 国产视频亚洲精品| 图片区小说区亚洲| 国产精品美女无圣光视频| 中文字幕av一区二区三区四区| 欧美精品一区二区三区在线看午夜| 亚洲色图二区| 亚洲综合婷婷久久| 久久综合成人精品亚洲另类欧美| 欧美成人手机视频| 欧美日韩一区视频| 酒色婷婷桃色成人免费av网| 欧美激情视频网址| 国产成人免费视频网站视频社区| 奇米影视首页 狠狠色丁香婷婷久久综合| 欧美日本不卡| 午夜激情影院在线观看| 欧美国产禁国产网站cc| 五月天婷婷激情| 亚洲国产精品悠悠久久琪琪| 91在线中文| 成人久久久久久久| 色中色综合网| 无需播放器的av| 国产亚洲精品资源在线26u| 日韩免费一级片| 日韩精品综合一本久道在线视频| 男人在线资源站| 国产精品一区av| 国产一区网站| 日韩在线xxx| 久久网站最新地址| 日本视频免费在线| 亚洲国产精品国自产拍av秋霞| 丝袜中文在线| 国产精品免费一区二区三区观看| 亚洲天堂一区二区三区四区| 嫩草视频免费在线观看| 成人免费在线视频观看| 97在线公开视频| 久久视频在线播放| 欧美1区2区3| 一二三在线视频| 国产成人免费视频精品含羞草妖精| 国产精品老熟女一区二区| 在线成人高清不卡| 八戒八戒神马在线电影| 91九色国产社区在线观看| 久久精品影视| 亚洲黄色片免费| 亚洲精品免费在线播放| www.久久成人| 久久人人爽人人| 天堂成人娱乐在线视频免费播放网站| 色综合久久久久无码专区| 久久嫩草精品久久久久| 免费在线不卡av| 久久精品国产成人| 日韩精品成人| 国产原创中文在线观看| 91免费国产视频网站| 天堂网一区二区| 日韩中文字幕精品| 中文字幕日韩高清在线| 青青草视频在线免费播放| 久久人人97超碰com| 国产91av在线播放| 超碰日本道色综合久久综合| 超碰成人在线免费| 成人精品视频一区二区| 国产精品美女www爽爽爽| av网站免费播放| 91超碰caoporn97人人| japanese国产精品| 国产xxxxhd| 日韩欧美中文字幕在线播放| 亚洲成人三级| 国产91色在线|亚洲| 老司机精品导航| 裸体武打性艳史| 精品亚洲精品福利线在观看| 久久日本片精品aaaaa国产| av日韩在线看| 国产午夜亚洲精品不卡 | 日韩电影中文字幕| 亚洲成人va| 日韩xxxx视频| 国产精品免费aⅴ片在线观看| 亚洲国产精品久久人人爱潘金莲 | 91麻豆精品国产综合久久久| 亚洲国产精品无码观看久久| 国产婷婷一区二区| 性网爆门事件集合av| 国产精品99导航| 黄色精品免费| 人成免费在线视频| 精品国产乱码久久久久久免费| 国产一区二区主播在线| www.国产在线播放| 国产精品电影一区二区| 欧美天堂在线视频| 91在线视频一区|