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

国产情侣呻吟对白高潮| www.久久国产| tube8在线hd| 久久久久久久精| 国产精品视频一区二区高潮| 我要看黄色一级片| 色狠狠久久av综合| 777色狠狠一区二区三区| 日韩极品视频在线观看| 国产在线网站| 成人高清视频免费观看| 国产精品高潮在线| 国产在线视频二区| 日韩欧美午夜| 国产网站欧美日韩免费精品在线观看| 中文字幕国产免费| 亚洲美女尤物影院| 亚洲综合男人的天堂| 丝袜美腿玉足3d专区一区| 午夜精品久久久久久久91蜜桃| 日韩电影在线看| 久久久欧美精品| 成人免费毛片xxx| 国产亚洲欧美日韩在线观看一区二区 | 国产日韩欧美一区二区| 怡春院在线视频| 午夜一区不卡| 午夜精品在线视频| 国产乱国产乱老熟300| 日韩欧美午夜| 这里精品视频免费| 小早川怜子久久精品中文字幕| 国产伦精品一区二区三区免费优势| 欧美精品丝袜中出| 午夜视频你懂的| 国产伦理精品| 亚洲福利电影网| 妺妺窝人体色www看人体| 免费在线毛片网站| 国产精品网站在线| 手机看片福利永久国产日韩| 日本天堂影院在线视频| 99re66热这里只有精品3直播| 97超级在线观看免费高清完整版电视剧| 国产精品国产精品国产| 日韩一区精品视频| 国产精品视频自在线| 日韩黄色一级视频| 日韩精品一二三| 国产精品久久久精品| 亚洲大片免费观看| 日韩激情视频网站| 国产精品入口免费视频一| 国产精品传媒在线观看| 日韩精品电影一区亚洲| 国产精品视频最多的网站| 一个人看的www日本高清视频| 日本伊人午夜精品| 国产伊人精品在线| 国产视频在线观看免费| 国产99久久久国产精品免费看| av观看久久| 国产小视频免费观看| www.性欧美| 六月婷婷久久| 国产视频网站在线| 综合欧美一区二区三区| 亚洲色婷婷久久精品av蜜桃| 色屁屁www国产馆在线观看| 亚洲一区二区三区自拍| 国产欧美日韩网站| 成人日韩在线观看| 91精品国产综合久久精品app| 无码人妻丰满熟妇啪啪网站| 精品网站aaa| 夜夜嗨av一区二区三区四区| 午夜精品久久久久99蜜桃最新版 | 自拍偷拍免费精品| 91麻豆免费视频网站| 欧美另类视频| 欧美中文在线字幕| 97精品久久人人爽人人爽| 国产精品91一区二区| 久久亚洲高清| 一区二区三区视频网站 | 中文字幕一区在线播放| 免费久久99精品国产| 999热视频| 色视频免费在线观看| 国产精品免费av| 日本福利视频网站| 最近在线中文字幕| 欧美一区二区精品在线| 免费a在线观看播放| 首页国产精品| 午夜精品在线视频| 88av在线视频| 91蝌蚪porny九色| 国产精品jizz在线观看老狼| 成人bbav| 欧美一区二区三区四区在线观看 | 日韩大片在线| 欧美精品第一页在线播放| 久久青青草原亚洲av无码麻豆| 国产麻豆9l精品三级站| 欧美日韩在线精品| 人人超在线公开视频| 欧美日韩精品一区二区天天拍小说| 图片区偷拍区小说区| 日本一区二区三区视频| 国内精品久久久久久久久| 91无套直看片红桃| 久久综合色8888| 成人免费a级片| 高清久久精品| 一区二区三区日韩在线| 日本在线视频免费观看| 精品一区二区三区免费毛片爱 | 日韩av密桃| 青青草一区二区| 天天干,夜夜操| 一区二区三区在线免费视频 | 亚洲AV无码成人精品区东京热| 粉嫩一区二区三区性色av| 日本黄色a视频| 久久天天久久| 在线免费看av不卡| 在线精品免费视| 91亚洲男人天堂| 精品少妇在线视频| 18国产精品| 欧美高清视频在线| 99产精品成人啪免费网站| 中文字幕一区二区三区四区不卡| 欧美黑人又粗又大又爽免费| 亚洲国产精品嫩草影院久久av| 久久久久久香蕉网| 亚洲国产综合一区| 一级精品视频在线观看宜春院| 在线免费看污网站| 久久久久久久久国产一区| 国产精品偷伦视频免费观看国产| yw在线观看| 欧美无砖专区一中文字| 亚洲精品午夜视频| 日本亚洲天堂网| 亚洲人体一区| 高清一区二区| 欧美激情视频网址| 成人久久久精品国产乱码一区二区 | 精品区一区二区| 麻豆成人在线看| 人妻 日韩 欧美 综合 制服| 一区在线视频观看| 国产精品免费视频一区二区| 国产第一页在线| 亚洲国产成人精品一区二区| 日本三级2019| 久久久一区二区| 热久久精品免费视频| 日韩在线精品| 亚洲一区二区中文字幕| 久久久久黄久久免费漫画| 欧美精品一区二区三区在线| 欧美亚洲精品天堂| 亚洲国产成人一区二区三区| 91国内在线播放| 国内视频精品| 日韩av电影免费观看| 亚洲福利影视| 欧美激情xxxx| 青春草在线观看| 欧美美女视频在线观看| 免费在线一区二区三区| 久久综合久久久久88| 日韩爱爱小视频| 在线电影一区| 国产亚洲精品成人av久久ww| 91一区二区三区| 99久久久无码国产精品| 亚洲va电影大全| 91吃瓜在线观看| 亚洲欧洲午夜一线一品| 中文字幕精品在线观看| 亚洲精品国产a| 中文精品在线观看| 极品少妇xxxx偷拍精品少妇| 国内自拍中文字幕| 亚洲第一福利社区| 成人h视频在线观看播放| 国产深夜视频在线观看| 亚洲午夜女主播在线直播| 国产女18毛片多18精品| 黄网站色欧美视频| 精品国产大片大片大片| 97久久超碰精品国产| 中文字幕在线观看日| 一区二区日韩免费看| 亚洲图片欧洲图片日韩av| 加勒比视频一区| 91久久精品国产91久久| 成人性生交大片免费观看网站| 久久久国产精品一区| 九一在线视频| 亚洲国产成人精品女人久久久| 亚洲中文字幕一区二区| 亚洲国产乱码最新视频| 黄色精品视频在线观看| 久久久久久久精| 稀缺小u女呦精品呦| 久久97超碰国产精品超碰| 男人天堂1024| 精品999网站| 午夜探花在线观看| 精品视频久久| 欧美日韩国产三区| 欧美美女黄色| 国产精品伊人日日| 一区二区三区四区高清视频 | 隔壁人妻偷人bd中字| 国产精品久久久久久麻豆一区软件| 精品麻豆av| 精品亚洲自拍| 国产精品swag| 风间由美一区二区av101| 3d动漫啪啪精品一区二区免费| 国产亚洲精彩久久| 国产精品高清在线观看| 欧美三级精品| 国产精品v日韩精品| 吞精囗交69激情欧美| 国产91精品不卡视频| 僵尸再翻生在线观看免费国语| 久久999免费视频| 国产黄色小视频在线| 精品国产一区二区三区久久久| 香蕉视频免费在线播放| 中文字幕亚洲一区二区三区五十路| 黄色软件在线| 中文字幕欧美亚洲| 91官网在线| 久久亚洲影音av资源网| 大片免费在线看视频| 欧美尺度大的性做爰视频| 日本在线视频www鲁啊鲁| 九色精品免费永久在线| 性欧美video高清bbw| 欧美激情视频一区| 九色porny自拍视频在线播放| 69精品小视频| 亚洲承认视频| 国产日韩欧美视频| 国产激情综合| av蓝导航精品导航| 你懂的在线观看一区二区| 久久综合入口| 波多野结衣在线播放一区| 亚洲人成网站在线播放2019| 亚洲网色网站| www.avtt| 久久亚洲欧洲| 亚洲精品免费一区亚洲精品免费精品一区| 久久精品72免费观看| japan高清日本乱xxxxx| 成人黄色小视频在线观看| 免费在线观看成年人视频| 中文在线免费一区三区高中清不卡| 一级性生活免费视频| 一区二区成人在线观看| 亚洲永久精品在线观看| 欧美揉bbbbb揉bbbbb| a毛片在线免费观看| 亚洲国产中文字幕在线观看| 黄色小视频在线免费观看| 波霸ol色综合久久| jizz一区二区三区| 国产精品久久97| 天堂av一区| 日本成人黄色| 欧美精品99| 黄色av免费在线播放| 国产一区二区调教| 日本一区二区三区网站| 亚洲色图一区二区三区| 国产情侣自拍av| 91精品午夜视频| 亚洲三区在线观看无套内射| 最近中文字幕日韩精品| yellow字幕网在线| 91视频88av| 久久av导航| 欧妇女乱妇女乱视频| 久久蜜桃精品| 绯色av蜜臀vs少妇| 久久精品一二三| 免费一级片视频| 欧美天堂一区二区三区| 黑人精品一区二区三区| 色偷偷综合社区| 成人私拍视频| 国产一区二区中文字幕免费看| 99成人在线视频| 国产精品免费成人| 成人美女在线视频| 艳妇荡乳欲伦69影片| 在线看日本不卡| 五月婷婷狠狠干| 欧美另类暴力丝袜| 精品久久在线| 欧美不卡在线一区二区三区| 欧美激情第8页| 成人av毛片在线观看| 国产亚洲精品资源在线26u| 国产性xxxx高清| 日韩一卡二卡三卡国产欧美| 国产二区在线播放| 欧美又大又粗又长| 老牛影视av一区二区在线观看| 佐佐木明希av| 极品美女销魂一区二区三区| 91视频免费在观看| 色综合久久九月婷婷色综合| 午夜影院免费视频| 97久久伊人激情网| 国产三级精品三级在线观看国产| 99热都是精品| 精彩视频一区二区| 性欧美疯狂猛交69hd| 欧美日韩黄色影视| 一区二区三区视频网站 | 视频一区中文字幕精品| www亚洲国产| 激情偷乱视频一区二区三区| 中文乱码字幕高清一区二区| 欧美日韩在线播放三区| 国产精品久久久久一区二区国产| 欧美亚洲另类在线| 亚洲妇女av| 日韩精品一区中文字幕| 久久精品视频在线看| 91精品国产高清一区二区三密臀| 亚洲精品国精品久久99热| 都市激情国产精品| 六十路精品视频| 日韩国产精品久久| 日韩影视一区二区三区| 欧美伊人久久大香线蕉综合69| 成人影视在线播放| 国产精品视频999| 91tv官网精品成人亚洲| 伊人成人免费视频| 亚洲制服丝袜av| 五月天激情开心网| 国产精品99久久久久久久久| 成人毛片免费看| 夜夜夜夜夜夜操| 亚洲一区在线观看网站| 五月婷婷开心中文字幕| 国产91精品在线播放| 欧美精选一区二区三区| 国产无遮挡猛进猛出免费软件 | 久久久久久免费看| 久久综合精品国产一区二区三区 | 99热99re6国产在线播放| 欧美aaaaa喷水| 久久精品国产99久久6| 久久久久久久久久网站| 亚洲激情免费观看| 色成人免费网站| 99久re热视频精品98| 成人免费视频一区二区| 亚洲免费在线视频观看| 一区三区二区视频| 国产午夜精品一区在线观看| 激情伊人五月天| 日本一区二区久久| 性一交一乱一透一a级| 欧洲亚洲免费在线| 日韩片欧美片| 性欧美18—19sex性高清| 欧美性色欧美a在线播放| av观看在线| 欧美中日韩免费视频| 国产成人无遮挡在线视频| 色一情一乱一伦| 欧美成人免费小视频| 国产精品密蕾丝视频下载| 国产91在线免费观看| 日本高清不卡视频| 色呦呦在线资源| 亚洲欧洲一二三| av电影一区二区| 国产精品无码白浆高潮| 91精品国产99| 66视频精品| 嘿嘿视频在线观看| 亚洲精品久久在线| 九九99久久精品在免费线bt| 精品人妻一区二区三区四区在线 | 国产精品免费免费|