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

為什么 Linux 需要 Swapping 你知道嗎?

系統(tǒng) Linux
為什么這么設(shè)計(jì)(Why’s THE Design)是一系列關(guān)于計(jì)算機(jī)領(lǐng)域中程序設(shè)計(jì)決策的文章,我們在這個(gè)系列的每一篇文章中都會(huì)提出一個(gè)具體的問題并從不同的角度討論這種設(shè)計(jì)的優(yōu)缺點(diǎn)、對具體實(shí)現(xiàn)造成的影響。

[[352570]]

為什么這么設(shè)計(jì)(Why’s THE Design)是一系列關(guān)于計(jì)算機(jī)領(lǐng)域中程序設(shè)計(jì)決策的文章,我們在這個(gè)系列的每一篇文章中都會(huì)提出一個(gè)具體的問題并從不同的角度討論這種設(shè)計(jì)的優(yōu)缺點(diǎn)、對具體實(shí)現(xiàn)造成的影響。

對 Linux 稍有了解的人都知道,Linux 會(huì)將物理的隨機(jī)讀取內(nèi)存(Random Access Memory、RAM)按頁分割成 4KB 大小的內(nèi)存塊,而今天要介紹的 Swapping 機(jī)制就與內(nèi)存息息相關(guān),它是操作系統(tǒng)將物理內(nèi)存頁中的內(nèi)容拷貝到硬盤上交換空間(Swap Space)以釋放內(nèi)存的過程,物理內(nèi)存和硬盤上的交換分區(qū)組成了操作系統(tǒng)上可用的虛擬內(nèi)存,而這些交換空間都是系統(tǒng)管理員預(yù)先配置好的[^1]。

圖 1 - Linux Swapping

正是因?yàn)?Linux 上的所有進(jìn)程都會(huì)通過虛擬內(nèi)存這一層抽象間接與物理內(nèi)存打交道,而 Swapping 也充分利用了該特性,它能夠讓應(yīng)用程序看到操作系統(tǒng)內(nèi)存充足的假象,然而并不知道它使用的部分虛擬內(nèi)存其實(shí)在磁盤上,因?yàn)閮?nèi)存和磁盤的讀寫速度上的巨大差異,這部分虛擬內(nèi)存的讀寫非常緩慢,我們在 為什么 CPU 訪問硬盤很慢 曾經(jīng)介紹過:

在 SSD 中隨機(jī)訪問 4KB 數(shù)據(jù)所需要的時(shí)間是訪問主存的 1,500 倍,機(jī)械磁盤的尋道時(shí)間是訪問主存的 100,000 倍[^2]

如此巨大的性能差異使得觸發(fā) Swapping 的進(jìn)程可能會(huì)遇到性能損失,同一個(gè)頁面的頻繁換入換出會(huì)導(dǎo)致極其明顯的性能抖動(dòng),如果沒有相應(yīng)的背景知識(shí),遇到類似的問題可能會(huì)很難查到根本原因,例如 MySQL 在錯(cuò)誤配置 NUMA 時(shí)就會(huì)出現(xiàn)內(nèi)存頁頻繁換入換出,影響服務(wù)質(zhì)量的問題。

Linux 提供了兩種不同的方法啟用 Swapping,分別是 Swap 分區(qū)(Swap Partition)和 Swap 文件(Swapfile):

  • Swap 分區(qū)是硬盤上的獨(dú)立區(qū)域,該區(qū)域只會(huì)用于交換分區(qū),其他的文件不能存儲(chǔ)在該區(qū)域上,我們可以使用 swapon -s 命令查看當(dāng)前系統(tǒng)上的交換分區(qū);
  • Swap 文件是文件系統(tǒng)中的特殊文件,它與文件系統(tǒng)中的其他文件也沒有太多的區(qū)別;

Swap 分區(qū)的大小是需要系統(tǒng)管理員手動(dòng)設(shè)定的,然而不同的場景最好設(shè)置不同交換分區(qū)大小,例如:桌面系統(tǒng)的交換分區(qū)大小可以是系統(tǒng)內(nèi)存的兩倍,這可以讓我們同時(shí)運(yùn)行更多的應(yīng)用程序;服務(wù)器的交換分區(qū)應(yīng)該關(guān)閉或者使用少量的交換分區(qū),不過一旦啟用交換分區(qū),就應(yīng)該引入監(jiān)控監(jiān)控應(yīng)用程序的性能。

我們到現(xiàn)在已經(jīng)對 Linux 上的 Swapping 有了一定的了解,接下來回到這篇文章想要討論的問題 — 『為什么 Linux 需要 Swapping』,我們將從以下兩個(gè)方面介紹 Swapping 解決的問題、觸發(fā)入口和執(zhí)行路徑:

Swapping 可以直接將進(jìn)程中使用相對較少的頁面換出內(nèi)存,立刻給正在執(zhí)行的進(jìn)程分配內(nèi)存;

Swapping 可以將進(jìn)程中的閑置頁面換出內(nèi)存,為其他進(jìn)程未來使用內(nèi)存做好準(zhǔn)備;

內(nèi)存不足

當(dāng)系統(tǒng)需要的內(nèi)存超過了可用的物理內(nèi)存時(shí),內(nèi)核會(huì)將內(nèi)存中不常使用的內(nèi)存頁交換到磁盤上為當(dāng)前進(jìn)程讓出內(nèi)存,保證正在執(zhí)行的進(jìn)程的可用性,這個(gè)內(nèi)存回收的過程是強(qiáng)制的直接內(nèi)存回收(Direct Page Reclaim)。

圖 2 - 直接內(nèi)存回收

直接內(nèi)存回收是在 Linux 調(diào)用 __alloc_pages_nodemask 申請新內(nèi)存頁時(shí)觸發(fā)的,該函數(shù)會(huì)先在空閑頁列表中查找是否有可用的頁面,如果不存在可用頁面,就會(huì)進(jìn)入 __alloc_pages_slowpath 函數(shù)分配內(nèi)存頁,與從空閑列表中直接查找內(nèi)存也相比,該函數(shù)會(huì)通過以下步驟分配內(nèi)存:

  1. static inline struct page * __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, struct alloc_context *ac) { 
  2.     ... 
  3.     if (alloc_flags & ALLOC_KSWAPD) 
  4.         wake_all_kswapds(order, gfp_mask, ac); 
  5.  
  6.     page = get_page_from_freelist(gfp_mask, order, alloc_flags, ac); 
  7.     if (page) goto got_pg; 
  8.  
  9.     if (can_direct_reclaim && (costly_order || (order > 0 && ac->migratetype != MIGRATE_MOVABLE)) && !gfp_pfmemalloc_allowed(gfp_mask)) { 
  10.         page = __alloc_pages_direct_compact(gfp_mask, order, alloc_flags, ac, INIT_COMPACT_PRIORITY, &compact_result); 
  11.         if (page) goto got_pg; 
  12.         ... 
  13.     } 
  14.  
  15.  retry: 
  16.     page = __alloc_pages_direct_reclaim(gfp_mask, order, alloc_flags, ac, &did_some_progress); 
  17.     page = __alloc_pages_direct_compact(gfp_mask, order, alloc_flags, ac, compact_priority, &compact_result); 
  18.     page = __alloc_pages_may_oom(gfp_mask, order, ac, &did_some_progress); 
  19.  got_pg: 
  20.     return page; 
  1. 喚醒 kswapd 線程在后臺(tái)回收內(nèi)存并嘗試調(diào)用 get_page_from_freelist 從空閑列表中快速獲取內(nèi)存頁;
  2. 昂貴的內(nèi)存申請會(huì)先調(diào)用 __alloc_pages_direct_compact 嘗試壓縮內(nèi)存頁,并在壓縮后的內(nèi)存中調(diào)用 get_page_from_freelist 查找空閑的內(nèi)存頁;
  3. 調(diào)用 __alloc_pages_direct_reclaim 直接回收并分配新的內(nèi)存頁;
  4. 再次調(diào)用 __alloc_pages_direct_compact 嘗試壓縮內(nèi)存并獲取空閑內(nèi)存頁;
  5. 調(diào)用 __alloc_pages_may_oom 分配內(nèi)存,如果內(nèi)存分配失敗會(huì)觸發(fā)內(nèi)存不足警告隨機(jī)殺死操作系統(tǒng)上的幾個(gè)進(jìn)程;

雖然獲取內(nèi)存頁的步驟已經(jīng)經(jīng)過了大量的刪減,但是其中展示了 Linux 在內(nèi)存也不足時(shí)獲取內(nèi)存的幾個(gè)常見方法:內(nèi)存壓縮、直接回收以及觸發(fā)內(nèi)存不足錯(cuò)誤殺掉部分進(jìn)程。

內(nèi)存閑置

應(yīng)用程序在啟動(dòng)階段使用的大量內(nèi)存在啟動(dòng)后往往都不會(huì)使用,通過后臺(tái)運(yùn)行的守護(hù)進(jìn)程,我們可以將這部分只使用一次的內(nèi)存交換到磁盤上為其他內(nèi)存的申請預(yù)留空間。kswapd 是 Linux 負(fù)責(zé)頁面置換(Page replacement)的守護(hù)進(jìn)程,它也是負(fù)責(zé)交換閑置內(nèi)存的主要進(jìn)程,它會(huì)在空閑內(nèi)存低于一定水位時(shí),回收內(nèi)存頁中的空閑內(nèi)存保證系統(tǒng)中的其他進(jìn)程可以盡快獲得申請的內(nèi)存,如下圖所示:

圖 3 - Linux 空閑頁面水位

當(dāng)空閑頁面小于 WMARK_LOW 時(shí),kswapd 進(jìn)程才會(huì)開始工作,它會(huì)將內(nèi)存頁交換到磁盤上直到空閑頁面的水位回到 WMARK_HIGH,不過當(dāng)空閑頁面的水位低于 WMARK_MIN 時(shí)會(huì)觸發(fā)上一節(jié)提到的內(nèi)存直接回收,而水位高于 WMARK_HIGH 則意味著空閑內(nèi)存充足,不需要進(jìn)行回收。

Linux 操作系統(tǒng)采用最近最少使用(Least Recently Used、LRU)算法置換內(nèi)存中的頁面,系統(tǒng)中的每個(gè)區(qū)都會(huì)在內(nèi)存中持有 active_list 和 inactive_list 兩種鏈表,其中前者包含活躍的內(nèi)存頁,后者中存儲(chǔ)的內(nèi)存頁都是回收的候選頁面,除此之外,Linux 還會(huì)在將 lru_list 根據(jù)內(nèi)存頁的特性分成如下幾種:

  1. enum lru_list { 
  2.  LRU_INACTIVE_ANON = LRU_BASE, 
  3.  LRU_ACTIVE_ANON = LRU_BASE + LRU_ACTIVE, 
  4.  LRU_INACTIVE_FILE = LRU_BASE + LRU_FILE, 
  5.  LRU_ACTIVE_FILE = LRU_BASE + LRU_FILE + LRU_ACTIVE, 
  6.  LRU_UNEVICTABLE, 
  7.  NR_LRU_LISTS 
  8. }; 

其中包含 ANON 的表示匿名內(nèi)存頁,這些內(nèi)存頁存儲(chǔ)了與文件無關(guān)的進(jìn)程堆棧等內(nèi)容,而包含 FILE 的表示與文件相關(guān)的內(nèi)存,也就是程序文件或者數(shù)據(jù)對應(yīng)的內(nèi)存,而最后的 LRU_UNEVICTABLE 表示禁止回收的內(nèi)存頁。

圖 4 - 活躍鏈表和不活躍鏈表

每當(dāng)內(nèi)存頁被訪問時(shí),Linux 都會(huì)將被訪問的內(nèi)存頁移到鏈表的頭部,所以在活躍鏈表末尾的是鏈表中『最老的』內(nèi)存頁,守護(hù)進(jìn)程 kswapd 的作用是平衡兩個(gè)鏈表的長度,將活躍鏈表末尾的內(nèi)存頁移至不活躍鏈表的隊(duì)首等待回收,而函數(shù) shrink_zones 會(huì)負(fù)責(zé)回收 LRU 鏈表中的不活躍內(nèi)存頁。

總結(jié)

很多人認(rèn)為當(dāng)系統(tǒng)內(nèi)存不足時(shí)應(yīng)該立即觸發(fā)內(nèi)存不足(Out of memory、OOM)并殺掉進(jìn)程,但是 Swapping 其實(shí)為系統(tǒng)管理員提供了另外一種選擇,利用磁盤的交換空間避免程序被直接退出,以降低服務(wù)質(zhì)量的代價(jià)換取服務(wù)的部分可用性。Linux 中的 Swapping 機(jī)制主要是為內(nèi)存不足和內(nèi)存閑置兩種常見的情況存在的

  • Swapping 可以直接將進(jìn)程中使用相對較少的頁面換出內(nèi)存:當(dāng)系統(tǒng)需要的內(nèi)存超過了可用的物理內(nèi)存時(shí),內(nèi)核會(huì)將內(nèi)存中不常使用的內(nèi)存頁交換到磁盤上為當(dāng)前進(jìn)程讓出內(nèi)存,保證正在執(zhí)行的進(jìn)程的可用性;
  • Swapping 可以將進(jìn)程中的閑置頁面換出內(nèi)存:應(yīng)用程序在啟動(dòng)階段使用的大量內(nèi)存在啟動(dòng)后往往都不會(huì)使用,通過后臺(tái)運(yùn)行的守護(hù)進(jìn)程,我們可以將這部分只使用一次的內(nèi)存交換到磁盤上為其他內(nèi)存申請預(yù)留空間;

關(guān)于是否應(yīng)該開啟 Swapping 的討論其實(shí)非常多,我們在今天也不應(yīng)該一刀切地認(rèn)為必須開啟或者禁用 Swapping,我們?nèi)匀恍枰治鰣鼍安⒗煤? Linux 為我們提供的這一機(jī)制,例如 Kubernetes 要求禁用 Swapping,我們就應(yīng)該遵循社區(qū)提出的建議,在部署 Kubernetes 的機(jī)器上關(guān)閉這一特性[^3]。到最后,我們還是來看一些比較開放的相關(guān)問題,有興趣的讀者可以仔細(xì)思考一下下面的問題:

  • Linux 提供了哪些參數(shù)來控制 Swapping 的行為?
  • 通過降低服務(wù)質(zhì)量的代價(jià)換取部分可用在哪些場景下是可取的?

如果對文章中的內(nèi)容有疑問或者想要了解更多軟件工程上一些設(shè)計(jì)決策背后的原因,可以在博客下面留言,作者會(huì)及時(shí)回復(fù)本文相關(guān)的疑問并選擇其中合適的主題作為后續(xù)的內(nèi)容。

參考資料

Kubelet/Kubernetes should work with Swap Enabled #53533 https://github.com/kubernetes/kubernetes/issues/53533

Linux Performance: Why You Should Almost Always Add Swap Space https://haydenjames.io/linux-performance-almost-always-add-swap-space/

Do we really need swap on modern systems? https://www.redhat.com/en/blog/do-we-really-need-swap-modern-systems

本文轉(zhuǎn)載自微信公眾號(hào)「真沒什么邏輯」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系真沒什么邏輯公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 真沒什么邏輯
相關(guān)推薦

2025-06-05 01:11:00

2024-10-12 14:58:07

2023-11-02 10:22:29

gRPC后端通信

2024-10-09 08:19:35

2024-04-30 09:02:48

2023-12-20 08:23:53

NIO組件非阻塞

2021-11-09 10:28:12

手機(jī)內(nèi)存技術(shù)

2025-02-18 08:11:17

2022-11-28 00:04:17

2024-01-15 12:16:37

2024-04-07 00:00:03

2024-08-20 08:29:55

2024-10-10 16:53:53

守護(hù)線程編程

2024-07-30 08:22:47

API前端網(wǎng)關(guān)

2024-11-08 09:48:38

異步編程I/O密集

2021-12-08 07:31:40

Linux安全病毒

2024-07-26 21:53:59

2024-03-19 08:01:54

服務(wù)熔斷軟件設(shè)計(jì)模式微服務(wù)

2024-02-19 07:44:52

虛擬機(jī)Java平臺(tái)

2024-06-27 10:51:28

生成式AI領(lǐng)域
點(diǎn)贊
收藏

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

91精品国产日韩91久久久久久| 中文乱码免费一区二区| 欧美一级黄色网| 少妇太紧太爽又黄又硬又爽小说| 性欧美video另类hd尤物| 亚洲精品国产a久久久久久| 久久综合九色99| 国产精品毛片久久久久久久av| 亚洲私拍自拍| www.国产一区| 亚洲一区二区观看| 亚洲狼人在线| 国内精品嫩模av私拍在线观看| 亚洲精品国产拍免费91在线| 亚洲36d大奶网| 久草在线资源福利站| 中文字幕一区二区三区av| 久久国产精品99久久久久久丝袜| 超碰手机在线观看| 怕怕欧美视频免费大全| 日韩女同互慰一区二区| 婷婷六月天在线| 男人av在线| 国产一区二区久久| 国产福利精品av综合导导航| 久久精品www| 99精品视频在线| 欧美色大人视频| 国产毛片视频网站| 先锋成人av| 国产精品国产三级国产普通话蜜臀| 国外成人免费视频| 性做久久久久久久| 国产最新精品免费| 成人国产亚洲精品a区天堂华泰| 国产无遮挡呻吟娇喘视频| 欧美色图五月天| 日韩一区二区在线看片| 国产aⅴ爽av久久久久| 精品免费av在线 | 精品久久一区二区三区蜜桃| 99精品视频99| 日韩高清成人在线| 亚洲成色www8888| 精品无码av一区二区三区不卡| 日本成人在线网站| 欧美三级日韩在线| 国产免费又粗又猛又爽| 我爱我色成人网| 色悠悠久久综合| av片中文字幕| 美女18一级毛片一品久道久久综合| 五月天久久比比资源色| 欧美乱大交xxxxx潮喷l头像| www欧美xxxx| 亚洲福利一区二区三区| 欧美日韩在线不卡一区| 亚洲av激情无码专区在线播放| 不卡一区二区三区四区| 国产在线欧美日韩| 日韩福利一区二区| 国产亚洲欧美激情| 视频三区二区一区| 免费在线观看av| 亚洲精品一二三区| 欧美午夜性视频| 天堂电影一区| 色综合欧美在线| 992kp快乐看片永久免费网址| 欧美日韩在线精品一区二区三区激情综合 | 久久综合成人精品亚洲另类欧美 | 成人免费网站在线| 国产黄色av网站| av资源站一区| 欧美下载看逼逼| 免费看a在线观看| 亚洲综合一区二区精品导航| www.99热这里只有精品| 欧美va视频| 91精品国产美女浴室洗澡无遮挡| 丰满少妇xbxb毛片日本| 欧美精品momsxxx| 久久久国产影院| 国产亚洲色婷婷久久99精品91| 成人搞黄视频| 亚洲性生活视频在线观看| 9.1片黄在线观看| 国产精品www994| 国产成人精品综合| 国产免费福利视频| 91美女片黄在线观看91美女| 亚洲国产精品一区二区第四页av| av激情在线| 欧美性猛交xxxx乱大交极品| 亚洲精品久久久中文字幕| 亚洲精品观看| 中文字幕av日韩| 久久久一二三区| 日韩精品91亚洲二区在线观看| 147欧美人体大胆444| 疯狂做受xxxx欧美肥白少妇| 一本色道久久综合亚洲二区三区 | 日本人亚洲人jjzzjjz| av成人资源| 亚洲网站视频福利| 不卡的免费av| 美女任你摸久久 | 禁果av一区二区三区| 久久亚洲影音av资源网| 六月丁香婷婷综合| 国产乱人伦偷精品视频不卡| 日本不卡在线播放| freexxx性亚洲精品| 91精品国产综合久久精品性色 | 蜜桃av中文字幕| 国产精品理论片| 欧美 国产 日本| 亚洲国产高清在线观看| 在线视频日韩精品| 天天干天天干天天| 大美女一区二区三区| 亚洲精品中文综合第一页| 深夜在线视频| 日韩美女视频在线| 黄色片子在线观看| 日本成人在线一区| 欧美理论一区二区| 草草在线视频| 亚洲一区影音先锋| 天天干天天草天天| 欧美精品尤物在线观看| 欧美亚洲在线视频| 日本黄色免费视频| 亚洲一区二区影院| 日本女人性视频| 亚洲va欧美va人人爽成人影院| 中文字幕亚洲字幕| 中文字幕免费高清网站| 26uuu国产一区二区三区| 无码粉嫩虎白一线天在线观看 | 九九这里只有精品视频| 免费高清不卡av| 日本一区二区三区视频在线观看| 最新中文字幕在线播放| 日韩成人黄色av| 国产三级av片| 久久久亚洲精品石原莉奈| 特级西西444www大精品视频| 香蕉视频亚洲一级| 国产性色av一区二区| 国产熟妇一区二区三区四区| 免费在线成人网| 视频一区三区| 久久人体av| 久久人人爽人人爽人人片亚洲| 97超碰人人模人人人爽人人爱| 国产精品美女一区二区三区 | 成人av电影免费观看| 欧美一级免费播放| 亚洲区小说区图片区qvod按摩| 中文字幕国产亚洲2019| 波多野结衣在线观看视频| 国产欧美精品一区二区三区四区| 久久久久狠狠高潮亚洲精品| 欧美日韩国产在线观看网站 | 欧美激情久久久久| 成人午夜精品视频| 国产精品欧美综合在线| 在线视频一二区| 在线观看视频日韩| 欧美日韩在线不卡一区| 日本黄色成人| 久久久久国产精品免费| 丝袜视频国产在线播放| 亚洲欧美一区二区三区久本道91 | 911亚洲精品| 国产91|九色| porn视频在线观看| 日韩一区二区视频在线观看| 国产精品6666| 国产免费久久精品| 国产精品一级无码| 久久久夜精品| 中文字幕在线中文字幕日亚韩一区 | 欧美黄色一级视频| 久久久久久高清| 欧洲午夜精品| 97国产在线观看| 免费黄色在线网站| 日韩福利视频在线观看| 亚洲无码精品在线观看| 亚洲r级在线视频| 国产三级aaa| 99国产精品视频免费观看| 亚洲综合av在线播放| 一区视频在线| 正在播放久久| 亚洲人挤奶视频| 97se亚洲综合在线| 日韩av超清在线观看| 欧美老妇交乱视频| 成人精品一区| 亚洲精品国产综合久久| 91肉色超薄丝袜脚交一区二区| 亚洲成a人片在线不卡一二三区| jizz日本在线播放| 26uuu色噜噜精品一区二区| aaaaaaaa毛片| 久久视频精品| 久久资源亚洲| 玖玖玖电影综合影院| 国产精品久久久久久久久影视| 波多野结衣中文字幕久久| 久久精品免费播放| 黄色片在线免费看| 亚洲国产精品高清久久久| 国产精品久久777777换脸| 日韩欧美国产一区二区| 久久免费黄色网址| 亚洲人成精品久久久久久| 欧美黄色激情视频| 91美女在线观看| 大尺度做爰床戏呻吟舒畅| 亚洲黄色三级| 国产日产欧美一区二区| 欧美日韩中字| 欧美日韩三区四区| 日韩高清影视在线观看| av噜噜色噜噜久久| 中文字幕日本一区| 国产精品手机播放| 日韩欧美精品一区二区综合视频| 欧美一级电影免费在线观看| 精品三级久久| 国内久久久精品| cao在线视频| 国自产精品手机在线观看视频| 免费网站在线观看人| 久久香蕉国产线看观看av| 日本中文字幕电影在线免费观看| 国产一区二区黄| 黄色片视频在线观看| 精品亚洲va在线va天堂资源站| 午夜视频福利在线| 国产丝袜一区二区三区| 午夜影院免费体验区| 亚洲成人av片| 日韩美女一级视频| 亚洲欧美另类在线观看| 国产一二三区在线视频| 一区二区三区视频免费| 99久久精品国产一区色| 欧美欧美午夜aⅴ在线观看| 国产亚洲第一页| 亚洲制服欧美中文字幕中文字幕| 欧美日韩三级在线观看| 一区二区免费在线| 国产精品成人aaaa在线| 亚洲成人一区二区在线观看| 日本免费观看视| 一本大道久久a久久综合婷婷| 91在线视频在线观看| 日本道色综合久久| 久久精品第一页| 亚洲国产精品久久一线不卡| 西西44rtwww国产精品| 色94色欧美sute亚洲线路一久| 黄色污污视频软件| 9191国产精品| 手机在线观看毛片| 亚洲视频欧美视频| 欧美尤物美女在线| 欧美激情在线视频二区| 新片速递亚洲合集欧美合集| 国产久一一精品| julia中文字幕一区二区99在线| 精品麻豆av| 久久福利影院| 欧美乱大交xxxxx潮喷l头像| 日日欢夜夜爽一区| 三级黄色片播放| 91在线porny国产在线看| 欧美黄色高清视频| 中文字幕亚洲在| 国产手机在线视频| 欧美三级韩国三级日本三斤| 国产99对白在线播放| 亚洲精品一区av在线播放| 欧美69xxx| 欧美在线视频观看免费网站| 欧美日韩色网| 国产不卡av在线免费观看| 国产一区二区视频在线看 | 精品99久久| 国产av熟女一区二区三区| 久久中文在线| 日本一区二区三区在线免费观看| 91日韩一区二区三区| www.97视频| 色综合久久久久久久| 亚洲精品国产av| 日韩中文字幕网址| 碰碰在线视频| 91久久国产自产拍夜夜嗨| 免费短视频成人日韩| 激情视频小说图片| 免费xxxx性欧美18vr| 国产激情第一页| 亚洲精品亚洲人成人网在线播放| 久久精品五月天| 精品国产乱码久久久久久久久 | 亚洲精品亚洲人成在线观看| 97超碰免费观看| 免费人成网站在线观看欧美高清| 2025中文字幕| 国产精品久久精品日日| 日韩三级一区二区| 亚洲黄色免费三级| 日本无删减在线| 亚洲va久久久噜噜噜| 日韩电影一区| 成人精品视频一区二区| 成人丝袜高跟foot| 国产精品三区在线观看| 日本电影亚洲天堂一区| 色综合免费视频| 欧美日韩国产成人在线| 高清在线一区| 日韩国产在线一区| 成人a'v在线播放| 各处沟厕大尺度偷拍女厕嘘嘘| 成人午夜短视频| 欧美成人黄色网| 日韩一区二区在线看| av免费在线网站| 亚洲在线一区二区| 欧美一区免费| 国产男女无遮挡猛进猛出| 亚洲色欲色欲www在线观看| 中文字幕免费播放| 这里只有视频精品| 日韩专区视频网站| 在线视频欧美一区| 黑人巨大精品欧美黑白配亚洲| 老司机深夜福利网站| 欧美老女人在线| 怡红院红怡院欧美aⅴ怡春院| 亚洲最大的成人网| 国产精品vip| 国产高清自拍视频| 色婷婷亚洲综合| av资源种子在线观看| 国产精品久久久久久久久男| 日韩理论电影| 亚洲av无日韩毛片久久| 亚洲欧美国产77777| 亚洲国产精品成人久久蜜臀| 韩国精品久久久999| 亚洲人挤奶视频| 日本人69视频| 亚洲国产中文字幕| 免费资源在线观看| 国产精品久久久91| 亚洲精品网址| 美女伦理水蜜桃4| 色又黄又爽网站www久久| 天堂аⅴ在线地址8| 99在线观看视频| 国产欧美日韩亚洲一区二区三区| 免费黄色在线视频| 欧美日韩国产成人在线91| а√天堂8资源在线官网| 国产成人精品亚洲精品| 日韩欧美高清| 在线中文字日产幕| 色综合欧美在线视频区| 国产激情在线| 久久久亚洲综合网站| 美腿丝袜一区二区三区| 久操视频免费在线观看| 亚洲欧洲激情在线| 日本超碰一区二区| 午夜肉伦伦影院| 亚洲欧美一区二区三区孕妇| 色婷婷av一区二区三区之红樱桃| 国产精品久久久久久久久久久新郎| 色135综合网| 影音先锋黄色资源| 欧美日韩国产精选| 2018av在线| 综合久久国产| 2021国产精品久久精品| 91麻豆视频在线观看| 欧美亚洲国产另类| 亚洲老妇激情| 美女洗澡无遮挡| 欧美mv和日韩mv的网站| 国产精品美女午夜爽爽| 精品少妇在线视频| 亚洲欧洲精品一区二区精品久久久|