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

為什么說容器是單進程模型

云計算 前端
Go 語言現在的一個主要應用領域就是云原生技術,包括容器(以 Docker 為代表)、Kubernetes、Prometheus 等。后面將寫一系列文章來介紹一下云原生技術棧中的關鍵技術。

Go 語言現在的一個主要應用領域就是云原生技術,包括容器(以 Docker 為代表)、Kubernetes、Prometheus 等。后面將寫一系列文章來介紹一下云原生技術棧中的關鍵技術。

過去兩年很多大公司的一個主要技術方向就是將應用上云,在這個過程中的一個典型錯誤用法就是將容器當成虛擬機來使用,將一堆進程啟動在一個容器內。但是容器和虛擬機對進程的管理能力是有著巨大差異的。不管在容器中還是虛擬機中都有一個一號進程,虛擬機中是 systemd 進程,容器中是 entrypoint 啟動進程,然后所有的其他線程都是一號進程的子進程,或者子進程的子進程,遞歸下去。這里的主要差異就體現在 systemd 進程對僵尸進程回收的能力。如果你想和更多容器技術專家交流,可以加我微信liyingjiese,備注『加群』。群里每周都有全球各大公司的最佳實踐以及行業最新動態。

[[277611]]

僵尸進程

說到僵尸進程,這里簡單介紹一下 Linux 系統中的進程狀態,我們可以通過 ps 或者 top 等命令查看系統中的進程,比如通過 ps aux 在我的 ecs 虛擬機上面得到如下的輸出。 

  1. [root@emr-header-1 ~]# ps aux 
  2. USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
  3. root         1  0.1  0.0 190992  3568 ?        Ss   Mar16 289:04 /usr/lib/systemd/systemd --switched-root --system --de 
  4. root         2  0.0  0.0      0     0 ?        S    Mar16   0:05 [kthreadd] 
  5. root         3  0.0  0.0      0     0 ?        S    Mar16  13:01 [ksoftirqd/0] 
  6. root         5  0.0  0.0      0     0 ?        S<   Mar16   0:00 [kworker/0:0H] 
  7. root         7  0.0  0.0      0     0 ?        S    Mar16  14:41 [migration/0] 
  8. root         8  0.0  0.0      0     0 ?        S    Mar16   0:00 [rcu_bh] 
  9. root         9  0.0  0.0      0     0 ?        S    Mar16 243:19 [rcu_sched] 
  10. root        10  0.0  0.0      0     0 ?        S    Mar16   0:50 [watchdog/0] 
  11. root        11  0.0  0.0      0     0 ?        S    Mar16   0:39 [watchdog/1] 
  12. root        12  0.0  0.0      0     0 ?        S    Mar16  23:51 [migration/1] 
  13. root        13  0.0  0.0      0     0 ?        S    Mar16  15:44 [ksoftirqd/1] 
  14. root        15  0.0  0.0      0     0 ?        S<   Mar16   0:00 [kworker/1:0H] 

我們可以看到排在第一位的就是前面說到的 1 號進程 systemd。其中的 STAT 那一列就是進程狀態,這里的狀態都是和 S 有關的,但是正常還有 R、D、Z 等狀態。各個狀態的含義簡單描述如下:

  • S:Interruptible Sleep,中文可以叫做可中斷的睡眠狀態,表示進程因為等待某個資源或者事件就緒而被系統暫時掛起。當資源或者事件 Ready 的時候,進程輪轉到 R 狀態。
  • R:也就是 Running,有時候也可以指代 Runnable,表示進程正在運行或者等待運行。
  • Z:Zombie,也就是僵尸進程。我們知道每個進程都是會占用一定的資源的,比如 pid 等,如果進程結束,資源沒有被回收就會變成僵尸進程。
  • D:Disk Sleep,也就是 Uninterruptible Sleep,不可中斷的睡眠狀態,一般是進程在等待 IO 等資源,并且不可中斷。D 狀態相信很多人在實踐中第一次接觸就是 ps 卡住。D 狀態一般在 IO 等資源就緒之后就會輪轉到 R 狀態,如果進程處于 D 狀態比較久,這個時候往往是 IO 出現問題,解決辦法大部分情況是重啟機器。
  • I:Idle,也就是空閑狀態,不可中斷的睡眠的內核線程。和 D 狀態進程的主要區別是可能實際上不會造成負載升高。

關于僵尸進程,這里繼續討論一下。對于正常的使用情況,子進程的創建一般需要父進程通過系統調用 wait() 或者 waitpid() 來等待子進程結束,從而回收子進程的資源。除了這種方式外,還可以通過異步的方式來進行回收,這種方式的基礎是子進程結束之后會向父進程發送 SIGCHLD 信號,基于此父進程注冊一個 SIGCHLD 信號的處理函數來進行子進程的資源回收就可以了。記住這兩種方式,后面還會涉及到。

僵尸進程的最大危害是對資源的一種永久性占用,比如進程號,系統會有一個最大的進程數 n 的限制,也就意味一旦 1 到 n 進程號都被占用,系統將不能創建任何進程和線程(進程和線程對于 OS 而言,使用同一種數據結構來表示,task_struct)。這個時候對于用戶的一個直觀感受就是 shell 無法執行任何命令,這個原因是 shell 執行命令的本質是 fork。 

  1. [root@emr-header-1 ~]# ulimit -a 
  2. core file size          (blocks, -c) 0 
  3. data seg size           (kbytes, -d) unlimited 
  4. scheduling priority             (-e) 0 
  5. file size               (blocks, -f) unlimited 
  6. pending signals                 (-i) 63471 
  7. max locked memory       (kbytes, -l) 64 
  8. max memory size         (kbytes, -m) unlimited 
  9. open files                      (-n) 131070 
  10. pipe size            (512 bytes, -p) 8 
  11. POSIX message queues     (bytes, -q) 819200 
  12. real-time priority              (-r) 0 
  13. stack size              (kbytes, -s) 8192 
  14. cpu time               (seconds, -t) unlimited 
  15. max user processes              (-u) 63471 
  16. virtual memory          (kbytes, -v) unlimited 
  17. file locks                      (-x) unlimited 

孤兒進程

前面說到如果子進程先于父進程退出,并且父進程沒有對子進程殘留的資源進行回收的話將會產生僵尸進程。這里引申另外一種情況,父進程先于子進程退出的話,那么子進程的資源誰來回收呢?

父進程先于子進程退出,這個時候我們一般將還在運行的子進程稱為孤兒進程,但是實際上孤兒進程并沒有一個明確的定義,他的狀態還是處于上面討論的幾種進程狀態中。那么孤兒進程的資源誰來回收呢?類 Unix 系統針對這種情況會將這些孤兒進程的父進程置為 1 號進程也就是 systemd 進程,然后由 systemd 來對孤兒進程的資源進行回收。

單進程模型的本質

看完上面兩節大家應該知道了虛擬機或者一個完整的 OS 是如何避免僵尸進程的。但是,在容器中,1 號進程一般是 entry point 進程,針對上面這種 將孤兒進程的父進程置為 1 號進程進而避免僵尸進程 處理方式,容器是處理不了的。進而就會導致容器中在孤兒進程這種異常場景下僵尸進程無法徹底處理的窘境。

所以說,容器的單進程模型的本質其實是容器中的 1 號進程并不具有管理多進程、多線程等復雜場景下的能力。如果一定在容器中處理這些復雜情況的,那么需要開發者對 entry point 進程賦予這種能力。這無疑是加重了開發者的心智負擔,這是任何一項大眾技術或者平臺框架都不愿看到的尷尬之地。

如何避免

除了第二節討論的開發者自己賦予 entrypoint 進程管理多進程的能力,這里我更推薦借助 Kubernetes 來做這件事情。我想現在應該也沒有人對容器進行人工管理了,大部分人應該都轉向了容器編排和調度工具 Kubernetes 陣營了(對于那些還在使用 Swarm 的一小波人,我勸你們早日棄暗投明 :))。

Kubernetes 中可以將多個容器編排到一個 Pod 里面,共享同一個 Linux NameSpace。這項技術的本質是使用 Kubernetes 提供一個 pause 鏡像,展開來說就是先用 pause 鏡像實例化出 NameSpace,然后其他容器加入這個 NameSpace 從而實現 NameSpace 共享。突然意識到這塊需要有容器和 NameSpace 的技術背景,限于篇幅,希望你可以自行搜索這種技術背景。或者我下一篇文章討論一下容器技術的本質。

言歸正傳,我們來介紹一下 pause。pause 是 Kubernetes 在 1.16 版本引入的技術,要使用 pause,我們只需要在 Pod 創建的 yaml 中指定 shareProcessNamespace 參數為 true,如下: 

  1. apiVersion: v1 
  2. kind: Pod 
  3. metadata: 
  4. name: nginx 
  5. spec: 
  6. shareProcessNamespace: true 
  7. containers: 
  8. name: nginx 
  9. image: nginx 
  10. name: shell 
  11. image: busybox 
  12. securityContext: 
  13.   capabilities: 
  14.     add
  15.     - SYS_PTRACE 
  16. stdin: true 
  17. tty: true 

創建 Pod:

  1. kubectl apply -fshare-process-namespace.yaml 

attach 到 Pod 中,ps 查看進程列表: 

  1. / # ps ax 
  2. PID   USER     TIME  COMMAND 
  3. 1 root      0:00 /pause 
  4. 8 root      0:00 nginx: master process nginx -g daemon off
  5. 14 101       0:00 nginx: worker process 
  6. 15 root      0:00 sh 
  7. 21 root      0:00 ps ax 

我們可以看到 Pod 中的 1 號進程變成了 /pause,其他容器的 entrypoint 進程都變成了 1 號進程的子進程。這個時候開始逐漸逼近事情的本質了:/pause 進程是如何處理將孤兒進程的父進程置為 1 號進程進而避免僵尸進程的呢?我們看一下源碼,git repo: pause.c: 

  1. #define STRINGIFY(x) #x 
  2. #define VERSION_STRING(x) STRINGIFY(x) 
  3.  
  4. #ifndef VERSION 
  5. #define VERSION HEAD 
  6. #endif 
  7.  
  8. static void sigdown(int signo) { 
  9. psignal(signo, "Shutting down, got signal"); 
  10. exit(0); 
  11.  
  12. static void sigreap(int signo) { 
  13. while (waitpid(-1, NULL, WNOHANG) > 0) 
  14.  
  15. int main(int argc, char **argv) { 
  16. int i; 
  17. for (i = 1; i < argc; ++i) { 
  18. if (!strcasecmp(argv[i], "-v")) { 
  19.   printf("pause.c %s\n", VERSION_STRING(VERSION)); 
  20.   return 0; 
  21.  
  22. if (getpid() != 1) 
  23. /* Not an error because pause sees use outside of infra containers. */ 
  24. fprintf(stderr, "Warning: pause should be the first process\n"); 
  25.  
  26. if (sigaction(SIGINT, &(struct sigaction){.sa_handler = sigdown}, NULL) < 0) 
  27. return 1; 
  28. if (sigaction(SIGTERM, &(struct sigaction){.sa_handler = sigdown}, NULL) < 0) 
  29. return 2; 
  30. if (sigaction(SIGCHLD, &(struct sigaction){.sa_handler = sigreap, 
  31.                                          .sa_flags = SA_NOCLDSTOP}, 
  32.             NULL) < 0) 
  33. return 3; 
  34.  
  35. for (;;) 
  36. pause(); 
  37. fprintf(stderr, "Error: infinite loop terminated\n"); 
  38. return 42; 
  39. }  

重點關注一下 35 行和 13 行,這個不就是我們上面說的。

  • 除了這種方式外,還可以通過異步的方式來進行回收,這種方式的基礎是子進程結束之后會向父進程發送 SIGCHLD 信號,基于此父進程注冊一個 SIGCHLD 信號的處理函數來進行子進程的資源回收就可以了。

SIGCHLD 信號的處理函數核心就是這一行 while (waitpid(-1, NULL, WNOHANG) > 0) ,其中 WNOHANG 參數是為了讓父進程直接返回不阻塞。

總結

容器化改造的路非常漫長,對于很多業務同學在改造的過程中由于一些思維的慣性就想把容器當成一個虛擬機來使用,這個可能會導致非常多的問題。或許我們可以探究一些容器的設計模式,以便進行更好的實踐。

 

責任編輯:未麗燕 來源: Dockone.in
相關推薦

2025-09-30 09:10:16

2022-03-14 08:33:09

TypeScriptJavaScript前端

2020-07-03 14:05:26

Serverless云服務商

2021-11-29 18:27:12

Web Wasmjs

2015-12-04 10:04:21

Linux容器虛擬化

2018-03-22 14:47:13

容器開發人員筆記本

2011-09-20 15:51:42

NoSQL

2011-05-05 08:51:18

PHP

2025-04-07 08:30:00

緩存Java開發

2011-10-27 13:37:51

網頁設計

2023-05-05 16:26:33

2012-02-08 10:02:53

Web

2019-09-23 13:37:09

Anthos谷歌Kubernetes

2025-05-27 10:10:00

Java緩存開發

2019-08-06 10:05:03

Linux操作系統C語言

2018-12-27 15:13:12

云計算運維管理

2017-03-30 14:52:40

華為軟件開發云

2018-01-23 11:48:17

Vue.js前端開發

2021-01-14 15:34:53

區塊鏈比特幣機器

2021-06-24 12:46:40

數據管理模型
點贊
收藏

51CTO技術棧公眾號

99精品国产一区二区三区2021| 国产黄在线看| 99精品国产一区二区青青牛奶| 日韩电影中文 亚洲精品乱码| 久久国产乱子伦免费精品| 色影院视频在线| 成人激情午夜影院| 国产精品入口免费视| 久久黄色免费视频| 欧美日韩老妇| 亚洲精品mp4| 日韩在线不卡一区| 日韩影院在线| 亚洲男女毛片无遮挡| 精品一区日韩成人| 国产suv精品一区二区69| 国产农村妇女精品一区二区| 久久久精品国产一区二区| 丰满大乳奶做爰ⅹxx视频| www.成人| 欧美午夜宅男影院| av之家在线观看| 超碰porn在线| 国产精品久久久久久久裸模| 加勒比在线一区二区三区观看 | 污片在线观看一区二区| 一区二区三区欧美在线| 青青九九免费视频在线| 国产高清成人在线| 国产一区视频在线| 久久影视中文字幕| 国产日韩高清一区二区三区在线| 久久国产精品久久久| 一区二区三区久久久久| 欧美顶级毛片在线播放| 精品久久人人做人人爽| 亚洲精品性视频| 99热播精品免费| 色综合激情久久| 欧美精品99久久| jizzjizz中国精品麻豆| 亚洲精品欧美激情| 在线一区亚洲| 色老头视频在线观看| 国产三级精品三级在线专区| 久久精品国产精品国产精品污 | 草莓视频一区二区三区| 日韩一区二区电影在线| 97超碰人人看| 99久久999| 欧美精品九九99久久| 另类小说色综合| 日韩精品免费观看视频| 欧美综合一区二区三区| 日本成人中文字幕在线| 亚洲成人人体| 色先锋资源久久综合| 午夜视频在线瓜伦| 日本精品另类| 在线播放欧美女士性生活| 中文字幕精品一区二区三区在线| 少妇精品视频在线观看| 91精品国产欧美一区二区成人 | 日本中文字幕网址| ****av在线网毛片| 欧美日韩免费观看中文| 18禁免费无码无遮挡不卡网站| av资源中文在线| 色哟哟国产精品| 国产成人黄色网址| 亚洲三级在线| 精品国产一区二区三区久久影院| 国产精品果冻传媒| 亚洲欧美日本伦理| 中文字幕亚洲自拍| 91精品国产高清一区二区三蜜臀| 国产一在线精品一区在线观看| 国内精品在线一区| 69xxxx国产| 国内精品视频666| 岛国视频一区免费观看| 深夜视频在线免费| 国产精品网站导航| 久久久天堂国产精品| 55av亚洲| 欧美日韩视频一区二区| 国产成人av片| 精品一区免费| 久久国产精品久久久| 亚洲免费黄色网址| 老司机精品视频导航| 51国偷自产一区二区三区的来源| 天堂av在线播放| 国产精品久久久一本精品 | 亚洲妇女成熟| 欧美日韩另类国产亚洲欧美一级| 亚洲精品一二三四| 免费久久精品| 色综合天天狠天天透天天伊人| 黄网在线观看视频| 国产一区在线观看麻豆| 久久综合伊人77777麻豆| 黄网页在线观看| 一本一道久久a久久精品 | 久久久久久久免费视频了| 黄色免费高清视频| 国产伦精品一区二区三区视频金莲| 欧美男同性恋视频网站| 看全色黄大色黄女片18| 久久视频国产| 欧美野外猛男的大粗鳮| 国产深喉视频一区二区| 国产日韩综合av| 久久国产精品网| vam成人资源在线观看| 亚洲新声在线观看| 亚洲国产精品成人无久久精品 | 中文字幕乱视频| 成人女性视频| 欧美壮男野外gaytube| www.久久久久久| 国产精品福利一区| 欧美黄色一级片视频| 荡女精品导航| 欧美理论电影在线观看| 国产理论视频在线观看| 国产午夜精品一区二区| 久久久一本二本三本| 亚洲国产一区二区三区网站| 久久色在线播放| 中文字幕第99页| 国产偷国产偷精品高清尤物| 国产伦精品一区二区三区四区视频_| 国产精品美女久久久久人| 中文字幕亚洲欧美| 少妇一级淫片日本| 久久精品亚洲麻豆av一区二区| 缅甸午夜性猛交xxxx| 欧一区二区三区| 欧美日韩xxxxx| 国产欧美久久久| 中文字幕一区二区不卡| 国产视频1区2区3区| 清纯唯美日韩| 日本精品久久久久久久| 日本一区二区三区在线观看视频| 午夜精品久久久久久久99水蜜桃| 激情av中文字幕| 影音先锋日韩资源| 国产午夜精品在线| 黄色激情在线播放| 日韩高清免费在线| 99热只有这里有精品| 久久欧美中文字幕| 亚洲精品高清无码视频| 国产一区二区三区不卡视频网站| 欧美中文字幕在线| 成人在线观看网站| 欧美日韩国产一级片| 亚洲区一区二区三| 国产高清在线精品| 丝袜人妻一区二区三区| 神马日本精品| 国产精品普通话| 黄网站视频在线观看| 欧美va在线播放| 国产精品久久久久久99| 国产免费成人在线视频| 91精品999| 国产精品v亚洲精品v日韩精品 | 欧美日韩国产小视频| av激情在线观看| 成人免费看的视频| 成人免费观看毛片| 93在线视频精品免费观看| 亚洲一区二区三区四区视频| 国产美女一区视频| 亚洲欧洲国产一区| 一级久久久久久久| 亚洲va欧美va人人爽| 中日韩精品一区二区三区| 日本欧美一区二区在线观看| 潘金莲一级淫片aaaaaa播放1| 久久久免费毛片| 国产精品久久久久久久天堂| а√天堂资源地址在线下载| 亚洲韩国青草视频| 中文字幕人妻色偷偷久久| 亚洲乱码国产乱码精品精98午夜| xxxx黄色片| 麻豆免费精品视频| 亚洲精品无码国产| 欧美少妇性xxxx| 不卡的av一区| 成人在线视频观看| 久久频这里精品99香蕉| 在线视频三区| 亚洲国产一区二区三区在线观看 | 在线无限看免费粉色视频| 动漫3d精品一区二区三区乱码| 国产精品成人一区| h片视频在线观看| 日韩在线欧美在线国产在线| 日本国产在线观看| 在线观看91精品国产麻豆| 午夜精品久久久久久久久久久久久蜜桃| 国产精品入口麻豆九色| 麻豆精品国产传媒av| 黄页网站大全一区二区| 久久久久久久久久福利| 午夜性色一区二区三区免费视频| 欧美一区二区三区精美影视 | 欧美精品一区二区三区久久久| 97人妻精品视频一区| 狠狠躁夜夜躁人人躁婷婷91 | 国产精品久久久久秋霞鲁丝 | 狠狠干综合网| 一区二区三区四区欧美日韩| 伊人久久大香线蕉| 国产一区免费视频| 久久久久久久久久久久电影| 国产成人精品免费视频| 青青青免费在线视频| 久久久久久久久爱| 中文字幕免费高清电视剧网站在线观看| 亚洲欧洲高清在线| 免费观看a视频| 制服.丝袜.亚洲.中文.综合| 国产美女www爽爽爽| 色婷婷一区二区| 中文字幕在线观看视频网站| 亚洲电影在线播放| 精品小视频在线观看| 亚洲精品精品亚洲| 美国黄色片视频| 亚洲少妇30p| 精品无码国产污污污免费网站| 波多野结衣中文一区| 国产一级二级av| 国产超碰在线一区| wwwww在线观看| 久久国产欧美日韩精品| 在线观看av日韩| 免费观看日韩电影| 天天综合网日韩| 久久国产精品第一页| 粉色视频免费看| 精品一区二区国语对白| 日韩一区二区三区久久| 美洲天堂一区二卡三卡四卡视频| 国产精品久久久毛片| 日韩电影免费一区| 不用播放器的免费av| 精品影院一区二区久久久| 亚洲xxx在线观看| 黄网站免费久久| 国产又粗又猛大又黄又爽| 国产精品影音先锋| 永久免费未满蜜桃| 成人av电影在线观看| 丰满少妇一区二区三区| 久久你懂得1024| 在线不卡av电影| 国产精品热久久久久夜色精品三区 | 日韩中文字幕在线精品| 黄色一级大片在线免费看产| 欧美另类精品xxxx孕妇| 国产伦久视频在线观看| 青青草一区二区| 黄色成人小视频| 亚洲综合中文字幕在线| 欧美电影完整版在线观看| 日韩精品欧美一区二区三区| 国产精品久久久久一区二区三区厕所| 国产麻豆电影在线观看| 99国产精品久久久久久久成人热| 国产一区二区视频免费在线观看| 久久99精品久久只有精品| 亚洲熟女一区二区三区| 久久影院电视剧免费观看| 国产三级短视频| 亚洲麻豆国产自偷在线| 毛片视频网站在线观看| 欧美蜜桃一区二区三区| 国产18精品乱码免费看| 国产亚洲精品久久久优势| 国产日产一区二区三区| 51精品国产黑色丝袜高跟鞋| 农村妇女一区二区| 国产伦精品一区二区三区免| 波多野结衣一区| 丝袜人妻一区二区三区| 麻豆国产精品官网| 久久性爱视频网站| 国产精品三级视频| 可以免费在线观看的av| 欧美精品久久99| 黑人与亚洲人色ⅹvideos| 欧美高跟鞋交xxxxhd| 亚洲精品555| 狠狠色综合色区| 五月婷婷六月综合| 国产裸体舞一区二区三区| 国产99精品视频| 国产精品久久久免费看| 欧美性xxxxx极品娇小| www.亚洲天堂.com| 中文字幕亚洲一区| 伊人久久视频| 福利视频一区二区三区| 91精品国产乱码久久久久久久| 国产极品美女高潮无套久久久| 国产成人在线视频播放| 男人的午夜天堂| 色8久久人人97超碰香蕉987| 日本精品999| 欧美成人第一页| 婷婷久久综合九色综合99蜜桃| 久中文字幕一区| 亚洲精品九九| 欧美xxxx黑人| 亚洲视频小说图片| 中文字幕乱码人妻无码久久| 亚洲精品福利资源站| 日本电影在线观看| 亚洲xxx自由成熟| 欧美激情电影| 亚洲综合欧美在线| 中文字幕欧美日本乱码一线二线| 日韩一级在线视频| 精品亚洲一区二区| 男人的天堂免费在线视频| 99久久免费国| 欧美日韩国产高清| 永久看看免费大片| 亚洲欧美日本韩国| 国产黄色片av| 九九久久国产精品| 95精品视频| 操bbb操bbb| 国产精品综合二区| 麻豆changesxxx国产| 日韩一区二区三区电影在线观看| 菠萝菠萝蜜在线视频免费观看| 91牛牛免费视频| 欧美激情综合色综合啪啪| 欧美成人手机在线视频| 亚洲三级电影网站| 99热这里只有精品3| 欧美精品xxx| 免费成人三级| 人妻有码中文字幕| 国产午夜亚洲精品午夜鲁丝片| 中文字幕手机在线视频| 中文字幕国产亚洲| 国产精品久久久久久久久久辛辛| 日韩视频 中文字幕| 成人激情校园春色| 午夜影院免费在线观看| 亚洲欧美激情精品一区二区| 成人啊v在线| 亚洲午夜精品久久久中文影院av | 欧美一区二区三区视频免费| 成人黄视频在线观看| eeuss一区二区三区| 亚洲国产一区二区三区a毛片| 超碰97在线资源站| 在线中文字幕不卡| 国产原创精品视频| 国产色综合一区二区三区| 首页亚洲欧美制服丝腿| 精品无码一区二区三区蜜臀| 日韩午夜在线观看| 中文字幕在线直播| 亚洲一区三区视频在线观看| 福利电影一区二区三区| 欧美一区二区三区网站| 中文字幕亚洲色图| 2020最新国产精品| 97在线免费公开视频| 中文字幕一区二区三区四区| 亚洲成a人片77777精品| 热草久综合在线| 一区二区三区四区日韩| 一级特级黄色片| 欧美日韩国产大片| 国产777精品精品热热热一区二区| 亚洲 日韩 国产第一区| 成人精品在线视频观看| 中文字幕在线2018| 久久久久久久久久久av| 日韩欧美一区二区三区在线视频 | 欧美黄色网视频| 一区二区在线免费看| 黄色成人在线播放| 日本免费在线观看| 老牛影视免费一区二区| 国产精品18久久久久久vr| 毛片在线免费播放| 97在线视频观看|