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

這次我們看看阿里的人是如何蹂躪CPU的

商務辦公
在前面的系列文章中皮皮就介紹過如何使得CPU、I/O滿載,如何實現網絡延遲、丟包和中斷,如何模擬線程、進程以及機器假死。

 [[273967]]

前言

在前面的系列文章中皮皮就介紹過如何使得CPU、I/O滿載,如何實現網絡延遲、丟包和中斷,如何模擬線程、進程以及機器假死。

本文介紹是阿里巴巴混沌工程工具ChaosBlade中的CPU滿載的故障模擬的實現方式。之前看的是Netflix的Simain Army中的實現,看上去一目了然,通過java的形式調用一下模擬腳本,腳本的內容如下;

  1. #!/bin/bash 
  2.  
  3. cat << EOF > /tmp/infiniteburn.sh 
  4. #!/bin/bash 
  5. while true
  6.     do openssl speed; 
  7. done 
  8. EOF 
  9.  
  10. for i in {1..32} 
  11. do 
  12.     nohup /bin/bash /tmp/infiniteburn.sh & 
  13. done 

通過調用openssl speed來模擬CPU滿負荷運作,這里的方式還比較粗暴,直接開了32個線程來執行openssl speed這種CPU密集型計算程序。如果CPU的內核數大于32,那么就需要修改這里的硬編碼腳本了。

通過翻看阿里巴巴混沌工程工具ChaosBlade的代碼(golang project),發現它對于CPU的蹂躪方式要細膩很多。比如CPU的內核個數使用runtime.NumCPU()來獲取。當然了還會有一些其它的附加細節,這個下面會詳述。

我們先來簡單的了解一下ChaosBlade對于這一塊的實現布局。在ChaosBlade中,我們實現故障(類似cpu 100%、I/O 100%、網絡中斷等)注入的入口是通過blade命令。例如:使得CPU滿載負荷,那么可以使用./blade create cpu fullload來實現。

其實ChaosBlade中的blade命令只是采用Cobra封裝的CLI入口,其內部實現是調用bin/目錄下的chaos_burncpu程序。

ChaosBlades(releases版)的下載地址為:https://github.com/chaosblade-io/chaosblade/releases。解壓之后的目錄結構為:

  1. hidden@hidden:~/chaos/chaosblade-0.2.0$ tree 
  2. ├── bin 
  3. │   ├── chaos_burncpu 
  4. │   ├── chaos_burnio 
  5. │   ├── chaos_changedns 
  6. │   ├── chaos_delaynetwork 
  7. │   ├── chaos_dropnetwork 
  8. │   ├── chaos_filldisk 
  9. │   ├── chaos_killprocess 
  10. │   ├── chaos_lossnetwork 
  11. │   ├── chaos_stopprocess 
  12. │   ├── cplus-chaosblade.spec.yaml 
  13. │   ├── jvm.spec.yaml 
  14. │   └── tools.jar 
  15. ├── blade 
  16. ├── chaosblade.dat 
  17. └── lib --<snip> 

可以看到bin/目錄下處理chaos_burncpu之外還有很多chaos_***形式的程序,比如chaos_burnio是讓I/O滿載負荷。這些chaos_***形式的程序的使用方式都是大同小異的。

使用指南

我們這里不使用ChaosBlade提供的blade命令,因為這只是外部的一層封裝,使用這個無法使我們能夠透徹的理解內部的實現。我們這里使用bin/chaos_burncpu來演示一下具體的用法。調用方式如下:

  1. bin/chaos_burncpu --start 

這里命令可以讓當前機器的CPU滿載負荷。取消CPU滿載負荷可以使用如下的命令:

  1. bin/chaos_burncpu --stop 

bin/chaos_burncpu命令還可以通過--cpu-count來指定CPU中需要滿載負荷的內核個數,示例如下:

  1. # 指定需要滿載負荷的CPU的內核個數為4 
  2. bin/chaos_burncpu --start --cpu-count 4 

假設現在測試所使用的機器的cpu共有4個內核,那么我們讓其中3個內核滿載,效果如何呢?首先運行sar -u 1 100命令來監測cpu的使用情況,然后運行:

  1. bin/chaos_burncpu --start --cpu-count 3 

可以在持續運行sar命令的shell終端中看到CPU的%idle數值變成了25%左右:

  1. 02:21:35 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle 
  2. 02:21:44 PM     all     73.95      0.00      1.24      0.00      0.00     24.81 

我們還可以指定讓某個CPU內核滿載,比如下面的示例中讓內核編號為1的滿載:

  1. bin/chaos_burncpu --start --cpu-list 1 

sar命令中還可以通過—P參數查看指定編號的內核的使用情況,比如使用sar -u -P 1 1 100來指定編號為1的CPU內核的使用情況:

  1. hidden@hidden:~$ sar -u -P 1 1 100 
  2. Linux 4.4.0-33.bm.1-amd64 (n224-008-172)     08/15/2019  _x86_64_    (4 CPU) 
  3.  
  4. 02:45:19 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle 
  5. 02:45:20 PM       1     98.00      0.00      2.00      0.00      0.00      0.00 
  6. 02:45:21 PM       1     98.99      0.00      1.01      0.00      0.00      0.00 

可以看到這個內核已經滿載。至于怎么實現掛載單個CPU內核的在下面會有詳細的介紹。

我們再來通過-P 0來看一下編號為0的CPU內核的使用情況:

  1. 02:47:32 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle 
  2. 02:47:33 PM       0      1.00      0.00      2.00      0.00      0.00     97.00 
  3. 02:47:34 PM       0      0.00      0.00      0.00      0.00      0.00    100.00 

可以看到這個內核還是處于空閑狀態(%idle接近100%)。

原理

CPU滿載

chaos_burncpu中實現CPU滿載負荷的邏輯其實相當簡單,通過程序讓CPU一直運作即可。代碼如下:

  1. func burnCpu() { 
  2.     runtime.GOMAXPROCS(cpuCount) 
  3.  
  4.     for i := 0; i < cpuCount; i++ { 
  5.         go func() { 
  6.             for { 
  7.                 for i := 0; i < 2147483647; i++ { 
  8.                 } 
  9.                 runtime.Gosched() //讓出CPU時間片 
  10.             } 
  11.         }() 
  12.     } 
  13.     select {} // wait forever 

讀者可以自己比較一下這個和Simain Army中的openssl speed的區別。

關閉

關閉CPU滿載負荷的過程也比較簡單粗暴,總共分為兩步:

  1. 使用ps -ef | grep … 命令找出chaos_burncpu的pid。
  2. 使用kill -9 pid命令干掉它。

指定內核滿載

我們在上面就了解到通過--cpu-count可以指定CPU滿載的內核個數,通過--cpu-list可以指定內核滿載。ChaosBlade相比于Simian Army中的細膩之處也就體現在這里。

--cpu-count的功能很好實現,在上面的func burnCpu()函數中的cpuCount就是--cpu-count所指定的值。

--cpu-list的功能比較復雜,總共分為3步:

  • 第一步:執行nohup bin/chaos_burncpu --nohup --cpu-count 1 --cpu-processor [cpu內核編號] > /dev/null 2>&1 &。假設我們要指定編號為1的內核滿載,那么對應的命令即為:nohup bin/chaos_burncpu --nohup --cpu-count 1 --cpu-processor 1 > /dev/null 2>&1 &。其實這個也只是個煙霧彈,實際上還是調用原本的bin/chaos_burncpu --start --cpu-count 1而已,只不過這里多指定了一個cpu-processor的信息。
  • 第二步:執行ps -ef | grep … 命令找出對應的pid。
  • 第三步:將進程pid綁定到編號為cpu-processor的內核上。那么這一步怎么操作呢?我們先來看一下CPU Affinity。

CPU Affinity

基本概念

CPU affinity (親和力/親和性)是一種調度屬性(scheduler property), 它可以將一個進程"綁定" 到一個或一組CPU上。

將進程與CPU綁定,最直觀的好處就是減少cpu之間的cache同步和切換,提高了cpu cache的命中率,提高代碼的效率。

從CPU架構上,NUMA擁有獨立的本地內存,節點之間可以通過互換模塊做連接和信息交互,因此每個CPU可以訪問整個系統的內存,但是訪問遠地內存訪問效率大大降低,綁定CPU操作對此類系統運行速度會有較大提升,UMA架構下,多CPU通過系統總線訪問存儲模塊。不難看出,NUMA使用CPU綁定時,每個核心可以更專注地處理一件事情,資源體系被充分使用,減少了同步的損耗。

表示方法

CPU affinity 使用位掩碼(bitmask)表示, 每一位都表示一個CPU, 置1表示"綁定"。最低位表示第一個邏輯CPU, 最高位表示最后一個邏輯CPU。CPU affinity典型的表示方法是使用16進制,具體如下:

  1. 0x00000001 
  2.     is processor #0 
  3.  
  4. 0x00000003 
  5.     is processors #0 and #1 
  6.  
  7. 0xFFFFFFFF 
  8.     is all processors (#0 through #31) 

taskset命令

taskset命名用于獲取或者設定CPU affinity。

  1. # 命令行形式 
  2. Usage: taskset [options] [mask | cpu-list] [pid|cmd [args...]] 
  3.  
  4. PARAMETER 
  5.     mask : cpu親和性,當沒有-c選項時, 其值前無論有沒有0x標記都是16進制的, 
  6.         當有-c選項時,其值是十進制的. 
  7.     command : 命令或者可執行程序 
  8.     arg : command的參數 
  9.     pid : 進程ID,可以通過ps/top/pidof等命令獲取 
  10.  
  11.  
  12. OPTIONS 
  13.     -a, --all-tasks (舊版本中沒有這個選項) 
  14.         這個選項涉及到了linux中TID的概念,他會將一個進程中所有的TID都執行一次CPU親和性設置. 
  15.         TID就是Thread ID,他和POSIX中pthread_t表示的線程ID完全不是同一個東西. 
  16.         Linux中的POSIX線程庫實現的線程其實也是一個進程(LWP),這個TID就是這個線程的真實PID. 
  17.        -p, --pid 
  18.               操作已存在的PID,而不是加載一個新的程序 
  19.        -c, --cpu-list 
  20.               聲明CPU的親和力使用數字表示而不是用位掩碼表示. 例如 0,5,7,9-11. 
  21.        -h, --help 
  22.               display usage information and exit 
  23.        -V, --version 
  24.               output version information and exit 
  25.   USAGE 
  26.     1) 使用指定的CPU親和性運行一個新程序 
  27.       taskset [-c] mask command [arg]... 
  28.         舉例:使用CPU0運行ls命令顯示/etc/init.d下的所有內容  
  29.           taskset -c 0 ls -al /etc/init.d/ 
  30.     2) 顯示已經運行的進程的CPU親和性 
  31.       taskset -p pid 
  32.         舉例:查看init進程(PID=1)的CPU親和性 
  33.           taskset -p 1 
  34.     3) 改變已經運行進程的CPU親和力 
  35.         taskset -p[c] mask pid 
  36.         舉例:打開2個終端,在第一個終端運行top命令,第二個終端中 
  37.           首先運行:[~]# ps -eo pid,args,psr | grep top #獲取top命令的pid和其所運行的CPU號 
  38.           其次運行:[~]# taskset -cp 新的CPU號 pid       #更改top命令運行的CPU號 
  39.           最后運行:[~]# ps -eo pid,args,psr | grep top #查看是否更改成功 
  40.   PERMISSIONS 
  41.         一個用戶要設定一個進程的CPU親和性,如果目標進程是該用戶的,則可以設置,如果是其他用戶的,則會設置失敗,提示 Operation not permitted.當然root用戶沒有任何限制. 
  42.         任何用戶都可以獲取任意一個進程的CPU親和性. 

應用taskset

下面我們就來詳細實踐一下CPU指定內核滿載的過程。

首先我們讓某個內核滿載,這里我們還并未指定哪一個內核(對應前面所說第一步):

  1. bin/chaos_burncpu --start --cpu-count 1 

第二步,我們找到這個進程的pid:

  1. hidden@hidden:~$ ps -ef | grep chaos_burncpu 
  2. zhuzhon+  572792  490371 99 18:20 pts/0    00:00:14 bin/chaos_burncpu --nohup --cpu-count 1 --cpu-processor 1 
  3. zhuzhon+  572860  551590  0 18:20 pts/3    00:00:00 grep chaos_burncpu 

此時,我們查看pid=572792的進程的親和力為f(即二進制的1111,也就是CPU內核編號0-3),也就是說CPU中的4個內核都有可能運行這個滿載程序。

  1. hidden@hidden:~$ taskset -p 572792 
  2. pid 572792's current affinity mask: f 
  3.  
  4. hidden@hidden:~$ taskset -c -p 572792 
  5. pid 572792's current affinity list: 0-3 

上面第一步中,指定某個單獨的內核滿載的實際效果應該時每個內核都會有一定的時間處于滿載狀態。對此有疑問的同學可以通過sar -u -P [cpu-processor] 1 1000來驗證一下。

第三步,我們指定編號為0的內核滿負荷:

  1. hidden@hidden:~$ taskset -cp 0 572792 
  2. pid 572792's current affinity list: 0-3 
  3. pid 572792's new affinity list: 0 

此時我們可以通過sar -u -P [cpu-processor] 1 1000命令來檢測4個內核的各個使用情況。不出意外的話,內核編號為0的檢測結果應該和下面的類似:

  1. hidden@hidden:~$ sar -u -P 0 1 1000 
  2. Linux 4.4.0-33.bm.1-amd64 (n224-008-172)     08/15/2019  _x86_64_    (4 CPU) 
  3.  
  4. 06:22:08 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle 
  5. 06:38:46 PM       0    100.00      0.00      0.00      0.00      0.00      0.00 
  6. 06:38:47 PM       0    100.00      0.00      0.00      0.00      0.00      0.00 
  7. 06:38:48 PM       0    100.00      0.00      0.00      0.00      0.00      0.00 

而其他內核的%idle應該都接近在100%。

總結

本文不僅介紹了如何“蹂躪”CPU,還附帶了一個知識點就是CPU affinity,程序開發者比機器更懂程序,如果用好它,可以有意想不到的效果。還有,在之前的《看我如何作死 | 將CPU、IO打爆》中不僅介紹了如何使得CPU滿載,還介紹了I/O如何滿載,這里不妨透漏一下,阿里和Netflix對于I/O滿載的模擬都是使用的linux dd工具,所以本文就不多做贅述啦。

責任編輯:武曉燕 來源: 朱小廝的博客
相關推薦

2022-07-05 21:53:26

記錄圖片WebP

2021-05-10 08:20:32

CPU 符號整數

2019-07-10 05:08:05

CPU內存分頁管理

2018-12-06 12:58:50

CPU內存模塊

2015-04-01 13:15:04

2014-03-05 16:14:31

2020-06-10 07:40:36

CPU內核態多線程

2018-09-05 08:59:51

服務器DNS網絡

2022-01-19 08:35:24

指標敏感度CTR

2012-12-10 15:12:43

2021-08-19 17:14:31

人工智能科技算法

2013-01-08 14:11:14

JavaJDK8lambda

2020-08-05 12:27:18

Go語言碼農

2013-01-09 09:38:34

Java 8JDK8新版Java

2017-04-21 07:15:57

機器人

2021-01-25 08:00:20

團隊管理阿里

2022-06-26 23:41:40

人工智能機器算法

2022-04-26 12:45:52

TikTok機器學習人工智能

2021-07-28 07:53:20

CPU 線程切換

2020-12-16 06:30:41

職場工作產品
點贊
收藏

51CTO技術棧公眾號

7777免费精品视频| 精品日韩在线观看| 中文字幕日韩一区二区三区不卡 | 国产精品va在线| 日韩av片在线| 伊人精品久久| 在线观看视频一区二区| 2021狠狠干| 亚洲av成人精品一区二区三区在线播放| 亚洲专区一区二区三区| 精品国产一区二区三区久久狼5月| 久久精品无码一区二区三区毛片| 一区二区乱码| 亚洲精品中文在线影院| 久草一区二区| 精品国产18久久久久久| 日一区二区三区| 欧美成人精品在线播放| 人人妻人人藻人人爽欧美一区| av在线成人| 五月婷婷久久丁香| 99精品一区二区三区的区别| 欧美一区二区少妇| 国产馆精品极品| 国产精品视频999| 日韩少妇裸体做爰视频| 亚洲国产老妈| 中文国产成人精品| 久久精品一区二区免费播放| 99ri日韩精品视频| 欧美精品色一区二区三区| 黄色片久久久久| 538在线观看| 一区二区三区资源| 四虎一区二区| 男同在线观看| 99精品国产一区二区三区不卡| 成人两性免费视频| 精品一区二三区| 国产视频欧美| 亚洲91精品在线观看| 欧美日韩综合一区二区| 日韩精品二区| 最新亚洲国产精品| 亚洲色图日韩精品| 成人羞羞动漫| 中文字幕亚洲欧美在线| 中字幕一区二区三区乱码| 男男gay无套免费视频欧美| 亚洲国产日韩欧美综合久久 | 一区二区三区免费在线看| 欧美日韩国产首页| 五月婷婷六月丁香激情| 91亚洲精品| 欧美午夜一区二区三区| 日韩一级片播放| 欧美三级精品| 欧美性三三影院| 欧美伦理片在线观看| 国产成人毛片| 欧美高清视频www夜色资源网| 一区二区免费av| 国产精品欧美一区二区三区不卡| 91精品国产综合久久精品| 欧美日韩久久婷婷| 免费观看性欧美大片无片| 欧美va在线播放| 在线免费看黄色片| 亚洲三级网页| 深夜精品寂寞黄网站在线观看| 黄色av片三级三级三级免费看| 四虎国产精品免费观看| 欧美xxxx18性欧美| 69精品久久久| 肉肉av福利一精品导航| 91色精品视频在线| 午夜免费福利视频| 97久久超碰国产精品| 青青草成人网| 国产剧情在线| 亚洲超碰97人人做人人爱| 久久久久久久久久久视频| 99久久精品一区二区成人| 欧美另类z0zxhd电影| 国产人妖在线观看| 久久99高清| 久久久国产精品免费| 国产精品成人国产乱| 日本中文一区二区三区| 成人免费网站在线观看| 开心激情综合网| 久久久亚洲精品石原莉奈| 中文字幕欧美日韩一区二区三区| 成人高潮aa毛片免费| 色av成人天堂桃色av| www.51色.com| 要久久电视剧全集免费| 久久久成人精品| 欧美一区二区三区网站| 国产一区高清在线| 欧美精品亚洲精品| 在线观看男女av免费网址| 欧美午夜片在线免费观看| 在线观看免费av网址| 精品深夜福利视频| 久久精品99无色码中文字幕| 日韩一区二区视频在线| 国产精品中文有码| 清纯唯美一区二区三区| 超碰在线99| 日韩一区二区三| 国产精品国产三级国产专业不| 精品动漫3d一区二区三区免费版 | 国产色91在线| 国产真人做爰毛片视频直播| 欧美在线一级| 亚洲欧美综合v| 国产在线视频二区| 国产一区二三区| 亚洲精品乱码视频| 欧美91看片特黄aaaa| 精品久久久久久久久久久久包黑料 | 色老头一区二区三区| 日韩网红少妇无码视频香港| 国产成人在线视频播放| 一区二区免费电影| 日韩成人影音| 国产午夜精品久久久 | 亚洲精品社区| 91精品免费| 黄色国产网站在线播放| 欧美日韩一区国产| 蜜桃传媒一区二区亚洲| 免费永久网站黄欧美| 黑人巨大精品欧美一区二区小视频| 福利在线视频网站| 欧美日本一区二区| 男人的午夜天堂| 蜜桃av一区二区三区| 欧美激情第一页在线观看| 国产粉嫩在线观看| 亚洲国产精品福利| 国产真人真事毛片| 成人手机在线视频| 婷婷无套内射影院| 国产精品白丝av嫩草影院| 欧美精品久久久久久久免费观看 | 极品尤物av久久免费看| 亚洲人体一区| 日本一区二区三区视频在线| 一本色道久久88精品综合| 无码人妻丰满熟妇精品区| 91麻豆产精品久久久久久| 91视频 - 88av| 中文字幕视频精品一区二区三区| 欧美老少配视频| 99久久精品国产一区色| 亚洲一区二区在线视频| 手机免费看av片| 亚洲精品少妇| 久久综合一区| 成人免费视频观看| 久久精品免费播放| 国产女人高潮毛片| 亚洲成人福利片| 国产精品久久不卡| 日韩高清在线电影| 欧美日韩视频免费在线观看| 视频二区欧美| 欧美洲成人男女午夜视频| av资源网站在线观看| 9191精品国产综合久久久久久| 欧美精品乱码视频一二专区| 成人激情免费电影网址| www.国产区| 天天射成人网| 国产在线精品一区| 日本在线中文字幕一区二区三区| 久久久999精品视频| 日韩中文字幕影院| 91黄色小视频| 日韩女优一区二区| 久久久亚洲高清| 一区二区久久精品| 一区二区三区四区五区在线| 五月天综合网| 国产一区二区| 欧美中文字幕在线| av免费网站在线| 亚洲码在线观看| 国产情侣在线播放| 色视频一区二区| 永久看片925tv| 久久综合九色欧美综合狠狠| 中文字幕精品一区二区三区在线| 亚洲毛片在线| 中文字幕一区二区三区精彩视频 | 日本亚洲自拍| 中文字幕一区二区三区日韩精品| 国产精品av电影| 欧美精品videosex| 日韩在线视频一区| 天堂91在线| 日韩色在线观看| 欧美一级黄视频| 精品国产精品自拍| 丰满少妇被猛烈进入一区二区| 久久亚洲免费视频| wwwww在线观看| 精品一区二区三区av| 欧美色图另类小说| 国产综合精品| 在线观看一区欧美| 欧美日韩国产免费观看视频| 亚洲欧美一区二区三区极速播放 | 一级黄色小视频| 偷拍一区二区三区| 婷婷色中文字幕| 中文字幕av一区二区三区高| 久久精品综合视频| 成人免费看黄yyy456| xxx中文字幕| 美女视频一区二区| 一区二区三区入口| 爽爽淫人综合网网站 | 捆绑调教美女网站视频一区| 婷婷五月综合缴情在线视频| 欧美freesex交免费视频| 亚洲欧洲一二三| 欧美日韩老妇| 日韩一二三区不卡在线视频| 最新国产精品视频| 欧美理论一区二区| 国产精品xxxav免费视频| 97久久天天综合色天天综合色hd| 日韩久久99| 国产精品视频区| 国产精品4hu.www| 国产精品女主播| 精品欧美日韩精品| 国产精品日韩在线播放| 99久久精品一区二区成人| 国产精品美女久久| 精品免费av在线| 日韩美女av在线免费观看| 久久r热视频| 国产99久久精品一区二区永久免费| 日韩欧美精品一区二区三区| 国产91精品久久久| 中国色在线日|韩| 欧美亚洲日本网站| 女生影院久久| 国产精品久久久久久中文字| 123成人网| 91日本在线观看| www.成人网| 久久精品国产美女| 国产影视精品一区二区三区| 亚洲欧美日韩精品久久久| 99精品一区| 日韩精品一区二区三区电影| 在线不卡欧美| 爱福利视频一区二区| 日韩综合小视频| 欧美精品 - 色网| 丁香激情综合国产| 黄色aaa视频| 亚洲日本在线视频观看| 欧美做爰爽爽爽爽爽爽| 五月婷婷综合在线| 中文字幕 人妻熟女| 欧美日韩午夜精品| 国产激情视频在线播放| 精品一区二区电影| 香蕉视频国产在线观看| 欧美国产在线电影| 日韩免费福利视频| 91传媒视频免费| 同性恋视频一区| 一区二区三区四区五区精品| 在线观看国产精品入口| 亚洲 高清 成人 动漫| 久久精品免费看| 95视频在线观看| 欧美国产视频在线| 久操免费在线视频| 色噜噜久久综合| 国产99久久九九精品无码免费| 亚洲国产精品久久久久久| 国产露出视频在线观看| 精品自拍视频在线观看| 电影一区二区三| 97超碰最新| 国产一区二区三区日韩精品 | 久久77777| 欧洲日韩成人av| 国产麻豆精品| 日韩精品久久久| 精品动漫av| 不卡的av中文字幕| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | av成人免费看| 国产私拍一区| 亚洲精品成人| 亚洲免费av一区二区三区| 国产99精品视频| 国产美女高潮视频| 91九色02白丝porn| 亚州av在线播放| 欧美刺激性大交免费视频| 亚洲爱爱视频| 极品尤物一区二区三区| 欧美1区视频| 亚洲免费黄色网| 国产日产欧美精品一区二区三区| 久草精品视频在线观看| 欧美一区二区成人| 在线a免费看| 国产精品第七十二页| 日韩精选在线| 久久综合色视频| 成人免费高清在线观看| 国产1区2区3区4区| 欧美精品久久天天躁| 在线视频91p| 国产精品扒开腿做爽爽爽视频| 欧美亚洲大陆| 日韩人妻无码精品久久久不卡| 激情偷乱视频一区二区三区| 欧美熟妇激情一区二区三区| 欧美色欧美亚洲高清在线视频| 亚洲国产精品成人久久蜜臀| 欧美成人精品在线观看| 精品一区二区三区中文字幕视频| 在线观看亚洲视频啊啊啊啊| 美国毛片一区二区| 久久久久久久久福利| 在线亚洲人成电影网站色www| 三级无遮挡在线观看| 亚洲3p在线观看| 美女一区2区| 青青草精品视频在线| 99精品视频一区二区| 国产超碰人人爽人人做人人爱| 亚洲国产婷婷香蕉久久久久久| 丁香影院在线| 国内不卡一区二区三区| 99热免费精品| 人妻精品久久久久中文字幕| 色综合天天视频在线观看 | 91麻豆精东视频| 中文字幕日韩免费| 中文日韩在线视频| 伊人亚洲精品| 激情五月六月婷婷| 成人黄色小视频在线观看| 国产成人无码精品久久久久| 日韩国产高清视频在线| 欧美日韩美女| 曰韩不卡视频| 国产黄人亚洲片| 国产又黄又猛又粗又爽| 国产一区二区三区精品久久久 | 久久综合图片| 成人一级片免费看| 欧美精品少妇一区二区三区| 污的网站在线观看| 精品国产一区二区三区麻豆免费观看完整版 | 久久精品夜夜夜夜久久| 国产主播第一页| 久久亚洲精品一区| 农村少妇一区二区三区四区五区 | 亚洲图片在区色| 国产麻豆精品| 国产成人a亚洲精v品无码| 国产精品久久久久一区| 国产91久久久| 国产精品爽黄69| 欧美日一区二区在线观看| 亚洲午夜久久久久久久久红桃| 欧美视频在线观看一区| 色呦呦久久久| 日本一区二区精品| 国产福利精品一区二区| 手机看片久久久| 久久成人精品视频| 日日天天久久| 久久久九九九热| 欧美日韩中文字幕在线视频| 激情成人四房播| 久久涩涩网站| 国产一区二区三区av电影| 免费看日韩毛片| 久久中文字幕在线视频| 自拍亚洲一区| 深夜视频在线观看| 欧美日韩精品二区第二页| 国产精品论坛| 艳母动漫在线免费观看| 久久这里只精品最新地址|