成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

避坑:一次離奇性能故障的排查與反思

存儲(chǔ) 存儲(chǔ)軟件
DBA排查過(guò)歷史的統(tǒng)計(jì)信息,并重新收集了對(duì)應(yīng)schema的統(tǒng)計(jì)信息,重新收集相關(guān)表、索引的直方圖統(tǒng)計(jì)信息,部分SQL增加了多列統(tǒng)計(jì)信息。每次操作完成后的驗(yàn)證均無(wú)效果,之后回退了以上無(wú)效操作。

錯(cuò)亂的系統(tǒng)

某客戶(hù)反饋生產(chǎn)庫(kù)ETL及報(bào)表類(lèi)SQL全部運(yùn)行不出來(lái),監(jiān)控告警近期大量SQL語(yǔ)句執(zhí)行計(jì)劃發(fā)生變更。客戶(hù)DBA通過(guò)對(duì)比新舊執(zhí)行計(jì)劃發(fā)現(xiàn)執(zhí)行計(jì)劃變更的SQL大部分都變成了走索引加上NL的方式,而且不止一個(gè)SQL出現(xiàn)這種問(wèn)題,該生產(chǎn)庫(kù)上幾乎所有的AP類(lèi)型SQL都出現(xiàn)了該問(wèn)題。問(wèn)題到我們這邊前,客戶(hù)已經(jīng)花了數(shù)周時(shí)間做了好幾輪排查,均沒(méi)有效果。

歷史的診斷

全庫(kù)統(tǒng)計(jì)信息排查

DBA排查過(guò)歷史的統(tǒng)計(jì)信息,并重新收集了對(duì)應(yīng)schema的統(tǒng)計(jì)信息,重新收集相關(guān)表、索引的直方圖統(tǒng)計(jì)信息,部分SQL增加了多列統(tǒng)計(jì)信息。每次操作完成后的驗(yàn)證均無(wú)效果,之后回退了以上無(wú)效操作。

[[234937]]

綁定部分SQL執(zhí)行計(jì)劃

部分業(yè)務(wù)過(guò)于緊急,約10條SQL臨時(shí)使用SQLPROFILE綁定了執(zhí)行計(jì)劃,針對(duì)綁定的SQL有效,然而執(zhí)行計(jì)劃發(fā)生變更SQL語(yǔ)句數(shù)量過(guò)多,針對(duì)每個(gè)SQL分析執(zhí)行計(jì)劃并綁定,這完全不現(xiàn)實(shí)。

參數(shù)排查

排查了系統(tǒng)參數(shù)optimizer_index_*相關(guān)參數(shù),均為默認(rèn)值,優(yōu)化器模式為默認(rèn)ALL_ROWS,db_file_multiblock_read_count參數(shù)設(shè)置128,參數(shù)無(wú)異常變更,后檢查包括觸發(fā)器層面、進(jìn)程級(jí)別,均為無(wú)異常參數(shù)調(diào)整。 

故障重現(xiàn)

由于客戶(hù)生產(chǎn)上的案例文章中不方便使用真實(shí)數(shù)據(jù),模擬了以下數(shù)據(jù): 

  1. create user test identified by test; 
  2. grant dba to test; 
  3. conn test/test 
  4. create table t1 as select * from dba_objects; 
  5. create index test.idx1 on test.t1(OBJECT_ID); 
  6. execute dbms_stats.gather_table_stats(ownname => 'TEST',tabname => 'T1' ,cascade => true,method_opt => 'for all columns size auto'); 
  7. update test.t1 set OBJECT_ID=1 where rownum <40000;  
  8. commit

查詢(xún)數(shù)據(jù)如下,T1表上有8.7W數(shù)據(jù):

  1. SQL> 
  2. select  count(*) from test.t1 SQL> ; 
  3.  
  4.   COUNT(*) 
  5. ---------- 
  6.      87629 

簡(jiǎn)單模擬的SQL如下,查詢(xún)OBJECT_ID=1的數(shù)據(jù),數(shù)據(jù)量有4W,差不多一半的數(shù)據(jù)量,正常情況肯定走全表了,實(shí)際情況卻走索引。

  1. SQL> set autot trace 
  2. alter system flush shared_pool; 
  3. select * from test.t1 t where OBJECT_ID=1;SQL> 
  4. System altered. 
  5.  
  6. SQL> 
  7.  
  8. 39999 rows selected. 
  9.  
  10.  
  11. Execution Plan 
  12. ---------------------------------------------------------- 
  13. Plan hash value: 1483979983 
  14.  
  15. -------------------------------------------------------------------------------- 
  16. ---- 
  17.  
  18. | Id  | Operation            | Name | Rows  | Bytes | Cost (%CPU)| Time 
  19.    | 
  20.  
  21. -------------------------------------------------------------------------------- 
  22. ---- 
  23.  
  24. |   0 | SELECT STATEMENT        |       | 38294 |  3627K|   747   (2)| 00:00: 
  25. 01 | 
  26.  
  27. |   1 |  TABLE ACCESS BY INDEX ROWID| T1   | 38294 |  3627K|   747   (2)| 00:00: 
  28. 01 | 
  29.  
  30. |*  2 |   INDEX RANGE SCAN        | IDX1 | 38294 |       |   112   (4)| 00:00: 
  31. 01 | 
  32.  
  33. -------------------------------------------------------------------------------- 
  34. ---- 
  35.  
  36.  
  37. Predicate Information (identified by operation id): 
  38. --------------------------------------------------- 
  39.  
  40.    2 - access("OBJECT_ID"=1) 
  41.  
  42.  
  43. Statistics 
  44. ---------------------------------------------------------- 
  45.     133  recursive calls 
  46.       0  db block gets 
  47.        6227  consistent gets 
  48.       0  physical reads 
  49.       0  redo size 
  50.     4468586  bytes sent via SQL*Net to client 
  51.       29845  bytes received via SQL*Net from client 
  52.        2668  SQL*Net roundtrips to/from client 
  53.      27  sorts (memory) 
  54.       0  sorts (disk) 
  55.       39999  rows processed 

逐層分析

真實(shí)情況中,客戶(hù)發(fā)來(lái)了監(jiān)視報(bào)告,10053trace文件,SQLT報(bào)告。因?yàn)楸O(jiān)視報(bào)告這里用處不大,沒(méi)做模擬。

10053trace信息

參數(shù)方面確認(rèn)沒(méi)什么問(wèn)題跳過(guò),快速定位到單表訪問(wèn)路徑那部分,如下所示,單表路徑選擇的時(shí)候?qū)Ρ攘嗽L問(wèn)索引(cost :746.93),以及訪問(wèn)全表的方式(cost :10050.77),(注:這里人為造出來(lái)的數(shù)據(jù)cost值差異較大,真實(shí)場(chǎng)景中相差不是特別大)那么問(wèn)題在于為什么會(huì)有這么大的差異,Card: 38294.13,即預(yù)估返回結(jié)果集38294,對(duì)比實(shí)際值39999,可以發(fā)現(xiàn)統(tǒng)計(jì)信息這塊兒,基本準(zhǔn)確。

  1. SINGLE TABLE ACCESS PATH 
  2.   Single Table Cardinality Estimation for T1[T] 
  3.   Column (#4): 
  4.     NewDensity:0.000012, OldDensity:0.000012 BktCnt:254, PopBktCnt:111, PopValCnt:1, NDV:47788 
  5.   Column (#4): OBJECT_ID( 
  6.     AvgLen: 5 NDV: 47788 Nulls: 1 Density: 0.000012 Min: 1 Max: 190751 
  7.     Histogram: HtBal  #Bkts: 254  UncompBkts: 254  EndPtVals: 144 
  8.   Table: T1  Alias: T 
  9.     Card: Original: 87629.000000  Rounded: 38294  Computed: 38294.13  Non Adjusted: 38294.13 
  10.   Access Path: TableScan 
  11.     Cost:  10050.77  Resp: 10050.77  Degree: 0 
  12.       Cost_io: 10033.00  Cost_cpu: 40345028 
  13.       Resp_io: 10033.00  Resp_cpu: 40345028 
  14.   Access Path: index (AllEqRange) 
  15.     Index: IDX1 
  16.     resc_io: 734.00  resc_cpu: 29353837 
  17.     ix_sel: 0.437008  ix_sel_with_filters: 0.437008 
  18.     Cost: 746.93  Resp: 746.93  Degree: 1 
  19.   Best:: AccessPath: IndexRange 
  20.   Index: IDX1 
  21.          Cost: 746.93  Degree: 1  Resp: 746.93  Card: 38294.13  Bytes: 0 

線索到這里時(shí),同事考慮到全表掃描COST值基本來(lái)源于IO,冒出一個(gè)大膽的想法:是否可能數(shù)據(jù)塊兒碎片嚴(yán)重化,極端情況下比如所有不需要的數(shù)據(jù)分布為每條數(shù)據(jù)均存于不同的塊兒中,而需要的數(shù)據(jù)則集中于幾個(gè)需要的塊兒。這個(gè)腦洞大開(kāi)的想法馬上被他自己的查詢(xún)證偽了。 

  1. SQL> select BLOCKS from dba_segments where segment_name='T1' and owner='TEST'
  2.  
  3.     BLOCKS 
  4. ---------- 
  5.       1281 

SQLT中發(fā)現(xiàn)關(guān)鍵信息

基于以往故障經(jīng)驗(yàn)的猜想都不成立,而現(xiàn)象看上去是Oracle CBO計(jì)算執(zhí)行計(jì)劃時(shí)出了問(wèn)題,有DBA已經(jīng)開(kāi)始認(rèn)為是Oracle BUG了(當(dāng)然沒(méi)找到對(duì)應(yīng)的BUG編號(hào))。在看客戶(hù)DBA發(fā)來(lái)的SQLT的報(bào)告時(shí),終于在報(bào)告中找到了問(wèn)題的突破口。

上圖可以發(fā)現(xiàn)客戶(hù)的系統(tǒng)是收集過(guò)系統(tǒng)統(tǒng)計(jì)信息的(報(bào)告為測(cè)試環(huán)境抓取的),再看單塊讀、多塊讀,MBRC(注測(cè)試環(huán)境模擬時(shí),單塊讀、多塊讀數(shù)值差別較大,真實(shí)環(huán)境差別為十多倍,MBRC為3)均有統(tǒng)計(jì)信息,這點(diǎn)很是異常,畢竟看過(guò)的絕大部分系統(tǒng)都是沒(méi)收集過(guò)系統(tǒng)統(tǒng)計(jì)信息的。

當(dāng)然其實(shí)10053 trace文件中也有系統(tǒng)統(tǒng)計(jì)信息,只是這塊兒相對(duì)關(guān)注較少。

問(wèn)題分析

詳細(xì)分析前,先回顧下COST算法,參考support oracle文檔:How To Calculate CPU Cost(文檔 ID 457228.1)。

  1. Cost = ( 
  2. #SRds * sreadtim + 
  3. #MRds * mreadtim + 
  4. #CPUCycles / cpuspeed 
  5. ) / sreadtim 
  6.  
  7. #SRDs - number of single block reads 
  8.  
  9. #MRDs - number of multi block reads 
  10.  
  11. #CPUCycles - number of CPU Cycles 
  12.  
  13. sreadtim - single block read time 
  14.  
  15. mreadtim - multi block read time 
  16.  
  17. cpuspeed - CPU cycles per second 

公式總結(jié)起來(lái)可以歸結(jié)為cost本質(zhì)為單塊讀,獲取數(shù)據(jù)途徑為磁盤(pán)或內(nèi)存,內(nèi)存中的邏輯讀取消耗CPU時(shí)間除以單塊讀后,折算成以單位讀為單位,磁盤(pán)中獲取分為單塊讀(大部分索引訪問(wèn))或多塊讀(全表或部分索引訪問(wèn)),多塊讀時(shí)間折算成單塊讀時(shí)間時(shí),需要考慮每次讀取塊數(shù)(優(yōu)先參考參數(shù)_db_file_optimizer_read_count,該隱含參數(shù)未設(shè)置情況下取db_file_multiblock_read_count,默認(rèn)配置為8)。

可以驗(yàn)算一下,全表掃描時(shí)COST值10033粗略計(jì)算方式:1281/128*1000。

而sreadtim,mreadtim在沒(méi)收集過(guò)系統(tǒng)統(tǒng)計(jì)信息時(shí)是通過(guò)公式計(jì)算得來(lái)的。 

  1. SREADTIM = IOSEEKTIM + db_block_size        / IOTFRSPEED 
  2. MREADTIM = IOSEEKTIM + db_block_size * MBRC / IOTFRSPEED 

IOSEEKTIM默認(rèn)10ms,IOTFRSPEED默認(rèn)4096字節(jié)/ms,推算可得默認(rèn)值:SREADTIM 12ms, MREADTIM 26ms

回顧過(guò)COST相關(guān)的知識(shí)后,再來(lái)看當(dāng)前的系統(tǒng)信息SREADTIM 1ms, MREADTIM 1000ms MBRC 128,即:通過(guò)單塊讀的方式讀取128個(gè)塊也只需要128ms,遠(yuǎn)遠(yuǎn)小于直接多塊讀128個(gè)塊的成本(1000ms),CBO當(dāng)然會(huì)選錯(cuò)。

故障處理

故障處理起來(lái)很簡(jiǎn)單,運(yùn)行以下語(yǔ)句,清除掉收集的系統(tǒng)統(tǒng)計(jì)信息就可以了。 

exec dbms_stats.delete_system_stats;

清除完統(tǒng)計(jì)信息后,再清除下shared pool中的執(zhí)行計(jì)劃,再次解析時(shí),系統(tǒng)正常運(yùn)行,至此困擾許久的問(wèn)題終于解決。

追根溯源

  • 為什么收集系統(tǒng)統(tǒng)計(jì)信息會(huì)產(chǎn)生錯(cuò)誤的單塊讀、多塊讀值?

這個(gè)主要是由于部分物理IO命中存儲(chǔ)/操作系統(tǒng)文件緩存引起,如果收集時(shí)間短,或是系統(tǒng)空閑可能導(dǎo)致信息非常不準(zhǔn)確。

  • 為什么會(huì)收集系統(tǒng)統(tǒng)計(jì)信息?

默認(rèn)收集全庫(kù)統(tǒng)計(jì)信息并不會(huì)收集系統(tǒng)統(tǒng)計(jì)信息,只能運(yùn)行DBMS_STATS.gather_system_stats手工觸發(fā),最終客戶(hù)DBA通過(guò)堡壘機(jī)排查發(fā)現(xiàn)運(yùn)維人員存在違規(guī)操作,問(wèn)題源頭得以查清。

  • 是否應(yīng)該收集系統(tǒng)統(tǒng)計(jì)信息?

這是一個(gè)非常有爭(zhēng)議的話題,甚至官方文檔的建議隨著不同的Oracle版本也在變化。無(wú)論參考Oracle的官方文檔,還是對(duì)比實(shí)際值( 實(shí)際awr報(bào)告中db file sequential read db file scattered read等待事件,大部分值都小于5ms的真實(shí)情景),或是參考Exadata以及各種國(guó)產(chǎn)一體機(jī)出色I(xiàn)O性能的大背景,單塊讀12ms,多塊讀26ms這個(gè)系統(tǒng)默認(rèn)值都似乎過(guò)時(shí)了,應(yīng)該調(diào)整。

事實(shí)上影響Oracle優(yōu)化器的因素非常多,搜集統(tǒng)計(jì)信息會(huì)引入一個(gè)額外的因素,導(dǎo)致系統(tǒng)性能波動(dòng)。系統(tǒng)性能和擴(kuò)展性問(wèn)題更多是因?yàn)樵愀獾膕chema設(shè)計(jì)和schema統(tǒng)計(jì)信息沒(méi)有維護(hù)好導(dǎo)致的。在現(xiàn)實(shí)情況中,我們沒(méi)有遇到過(guò)通過(guò)搜集系統(tǒng)統(tǒng)計(jì)信息解決SQL性能問(wèn)題,倒是遇到過(guò)多個(gè)案例因?yàn)樗鸭到y(tǒng)統(tǒng)計(jì)信息,替換了默認(rèn)的系統(tǒng)統(tǒng)計(jì)信息,從而導(dǎo)致執(zhí)行計(jì)劃變差的案例。建議生產(chǎn)中不更新系統(tǒng)統(tǒng)計(jì)信息,使用默認(rèn)的系統(tǒng)統(tǒng)計(jì)信息。

  • 性能故障時(shí)的排查思路:

決定SQL性能的主要因素為以下四條,SQL性能問(wèn)題時(shí)的排查可做參考:

  1. 統(tǒng)計(jì)信息;
  2. schema訪問(wèn)路徑;
  3. SQL寫(xiě)法;
  4. Oracle版本補(bǔ)丁情況。
  • 能否直接調(diào)整系統(tǒng)信息?

附上測(cè)試腳本,開(kāi)始測(cè)試時(shí),直接調(diào)整SREADTIM、MREADTIM、MBRC值,并不能達(dá)到效果,必須有個(gè)收集的過(guò)程,哪怕如腳本所示實(shí)際沒(méi)采集到數(shù)據(jù)(注:flush shared pool為危險(xiǎn)操作,測(cè)試腳本內(nèi)容不要在生產(chǎn)庫(kù)使用)。

  • 為什么收集系統(tǒng)統(tǒng)計(jì)信息不生效?

收集系統(tǒng)統(tǒng)計(jì)信息分為NOWORKLOAD及WORKLOAD兩種模式,腳本中g(shù)ather_system_stats('start')方式為workload模式,該模式下大表讀取如果使用直接路徑讀方式,則無(wú)法采集到MBRC值。因?yàn)镸BRC值必須讀進(jìn)buffer cache中,才會(huì)被統(tǒng)計(jì)(alter session set “_serial_direct_read”=never; 關(guān)閉后測(cè)試可獲取)。SREADTIM、MREADTIM、MBRC值三個(gè)缺少任意一個(gè),收集的系統(tǒng)統(tǒng)計(jì)信息均不會(huì)生效。 

  1. SQL> exec dbms_stats.delete_system_stats; 
  2. EXEC DBMS_STATS.gather_system_stats('start'); 
  3. EXEC DBMS_STATS.gather_system_stats('stop'); 
  4. EXEC DBMS_STATS.set_system_stats('SREADTIM', 1); 
  5. EXEC DBMS_STATS.set_system_stats('MREADTIM', 1000); 
  6. --exec dbms_stats.set_system_stats('MBRC',128); 
  7. SELECT pname, pval1 FROM sys.aux_stats$ WHERE sname = 'SYSSTATS_MAIN'
  8. set autot trace 
  9. alter system flush shared_pool; 
  10. select * from test.t1 t where OBJECT_ID=1; 
  11. PL/SQL procedure successfully completed. 
  12.  
  13. SQL> 
  14. PL/SQL procedure successfully completed. 
  15.  
  16. SQL> 
  17. PL/SQL procedure successfully completed. 
  18.  
  19. SQL> 
  20. PL/SQL procedure successfully completed. 
  21.  
  22. SQL> 
  23. PL/SQL procedure successfully completed. 
  24.  
  25. SQL> SQL> 
  26. PNAME                    PVAL1 
  27. ------------------------------ ---------- 
  28. CPUSPEED                 2270 
  29. CPUSPEEDNW                 2270 
  30. IOSEEKTIM                   10 
  31. IOTFRSPEED                 4096 
  32. MAXTHR 
  33. MBRC 
  34. MREADTIM                 1000 
  35. SLAVETHR 
  36. SREADTIM                1 
  37.  
  38. rows selected. 
  39.  
  40. SQL> SQL> 
  41. System altered. 
  42.  
  43. SQL> 
  44.  
  45.  
  46. 39999 rows selected. 
  47.  
  48.  
  49.  
  50. Execution Plan 
  51. ---------------------------------------------------------- 
  52. Plan hash value: 3617692013 
  53.  
  54. -------------------------------------------------------------------------- 
  55. | Id  | Operation      | Name | Rows  | Bytes | Cost (%CPU)| Time     | 
  56. -------------------------------------------------------------------------- 
  57. |   0 | SELECT STATEMENT  |     | 38294 |  3627K|   350   (1)| 00:00:05 | 
  58. |*  1 |  TABLE ACCESS FULL| T1     | 38294 |  3627K|   350   (1)| 00:00:05 | 
  59. -------------------------------------------------------------------------- 
  60.  
  61. Predicate Information (identified by operation id): 
  62. --------------------------------------------------- 
  63.  
  64. 1 - filter("OBJECT_ID"=1) 
  65.  
  66.  
  67. Statistics 
  68. ---------------------------------------------------------- 
  69.       42  recursive calls 
  70.        0  db block gets 
  71.         3903  consistent gets 
  72.         1253  physical reads 
  73.        0  redo size 
  74.      1852399  bytes sent via SQL*Net to client 
  75.        29845  bytes received via SQL*Net from client 
  76.         2668  SQL*Net roundtrips to/from client 
  77.        6  sorts (memory) 
  78.        0  sorts (disk) 
  79.        39999  rows processed 

附執(zhí)行操作腳本: 

  1. exec dbms_stats.delete_system_stats; 
  2. EXEC DBMS_STATS.gather_system_stats('start'); 
  3. EXEC DBMS_STATS.gather_system_stats('stop'); 
  4. EXEC DBMS_STATS.set_system_stats('SREADTIM', 1); 
  5. EXEC DBMS_STATS.set_system_stats('MREADTIM', 1000); 
  6. exec dbms_stats.set_system_stats('MBRC',128); 
  7. SELECT pname, pval1 FROM sys.aux_stats$ WHERE sname = 'SYSSTATS_MAIN'
  8. set autot trace  
  9. alter system flush shared_pool; 
  10. select * from test.t1 t where OBJECT_ID=1; 
  11.  
  12. select /*+ full(t ) */ * from test.t1 t where OBJECT_ID=1; 
  13.  
  14. select /*+ index(t idx1) */ * from test.t1 t where OBJECT_ID=1; 
  15.  
  16. select  count(*) from test.t1 t where OBJECT_ID=1; 
  17. alter system flush shared_pool; 
  18. oradebug setmypid  
  19.  
  20. oradebug unlimit 
  21.  
  22. oradebug event 10053 trace name context forever,level 1 
  23. select * from test.t1 t where OBJECT_ID=1; 
  24.  
  25. oradebug event 10053 trace name context off 
  26. oradebug tracefile_name 

作者介紹

蔣健,云趣網(wǎng)絡(luò)科技聯(lián)合創(chuàng)始人,11g OCM,多年Oracle設(shè)計(jì)、管理及實(shí)施經(jīng)驗(yàn),精通數(shù)據(jù)庫(kù)優(yōu)化,Oracle CBO及并行原理,曾為多個(gè)行業(yè)的客戶(hù)的Oracle系統(tǒng)實(shí)施小型機(jī)到X86跨平臺(tái)遷移和數(shù)據(jù)庫(kù)優(yōu)化服務(wù)。云趣鷹眼監(jiān)控核心設(shè)計(jì)和開(kāi)發(fā)者,資深Python Web開(kāi)發(fā)者。

 

責(zé)任編輯:武曉燕 來(lái)源: DBAplus社群
相關(guān)推薦

2020-08-27 21:36:50

JVM內(nèi)存泄漏

2022-12-17 19:49:37

GCJVM故障

2019-06-06 14:21:32

SQL過(guò)濾測(cè)試

2021-01-08 13:52:15

Consul微服務(wù)服務(wù)注冊(cè)中心

2025-03-17 10:01:07

2022-10-25 08:56:16

2020-06-12 13:26:03

線程池故障日志

2019-03-15 16:20:45

MySQL死鎖排查命令

2021-05-13 08:51:20

GC問(wèn)題排查

2024-07-12 11:20:34

.NET崩潰視覺(jué)程序

2024-12-24 09:17:53

瀏覽器報(bào)錯(cuò)運(yùn)維

2023-04-06 07:53:56

Redis連接問(wèn)題K8s

2014-03-14 10:07:09

極限編程敏捷開(kāi)發(fā)

2011-05-06 10:32:06

硬盤(pán)鍵盤(pán)

2010-07-30 16:10:45

UPS設(shè)備燒毀故障分析

2022-01-07 11:48:59

RabbitMQGolang 項(xiàng)目

2022-11-03 16:10:29

groovyfullGC

2023-01-04 18:32:31

線上服務(wù)代碼

2015-07-17 10:04:33

MKMapView優(yōu)化

2019-04-18 10:55:00

故障演練流量
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 欧美激情视频一区二区三区在线播放 | 久久九九99| 国产欧美久久一区二区三区 | 日韩精品1区2区3区 成人黄页在线观看 | 国产精品自拍视频 | 亚洲精品一区中文字幕乱码 | 国产精品99久久久久久大便 | 国产a区 | 黄色网一级片 | 日韩一区二区三区在线观看 | 久久精品 | 亚洲视频在线看 | 国产第二页 | 亚洲午夜精品一区二区三区他趣 | 久久久精品久 | 久久伦理电影 | 亚洲精品国产电影 | 精品久久久久久久久久 | 精品欧美一区二区精品久久 | 欧美日韩视频网站 | 欧美老少妇一级特黄一片 | 国产精品成人一区二区 | 国产精品久久久久久久久久免费 | 日韩免费1区二区电影 | 亚洲欧美日本在线 | 一区二区三区不卡视频 | 国产精品久久7777777 | 亚洲精品一区二区在线观看 | 欧美精品综合 | 国产在线二区 | 中文字幕乱码一区二区三区 | 国产精品69久久久久水密桃 | 亚洲欧美另类在线观看 | 日韩精品在线免费观看视频 | 国产精品毛片一区二区三区 | 久热中文字幕 | 黄色免费av | 国产精品一区二区福利视频 | 一区二区三区四区五区在线视频 | 伊人精品视频 | 国产精品久久久久久久7电影 |