日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Hugepages详解

發(fā)布時(shí)間:2023/12/20 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hugepages详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文地址:https://www.tuicool.com/articles/vYZJ3i3

IBM的創(chuàng)始人Thomas J. Watson曾經(jīng)說(shuō): “全世界只需要5臺(tái)電腦就足夠了”。

Microsoft的創(chuàng)始人Bill Gates曾在一次演講中說(shuō):“個(gè)人用戶的計(jì)算機(jī)內(nèi)存只需640K?”。

Intel創(chuàng)始人之一Gordon Moore曾經(jīng)說(shuō):“當(dāng)價(jià)格不變時(shí),集成電路上可容納的晶體管數(shù)目,約每隔18個(gè)月便會(huì)增加一倍,性能也會(huì)增加一倍”。

前面兩句話在今天看來(lái)實(shí)際上是十分荒謬的,而最后那條就是著名的摩爾定律。

hugepages的出現(xiàn)同樣也是因?yàn)槟柖蓪?dǎo)致了主機(jī)內(nèi)存越來(lái)越大,最后不得不對(duì)于標(biāo)準(zhǔn)pages的改進(jìn)以提高效率。要了解hugepages首先必須清楚Unix/Linux內(nèi)存的分配機(jī)制。本文從入門的角度介紹Linux的內(nèi)存分配機(jī)制,當(dāng)然這一部分內(nèi)容相信很多人都在計(jì)算機(jī)體系結(jié)構(gòu)這門課程中學(xué)到過(guò),這里就重新溫習(xí)一下。

早期因?yàn)槌绦蚍浅:?jiǎn)單并且使用的內(nèi)存也非常小,程序的內(nèi)存地址都是使用程序地址對(duì)應(yīng)物理地址這種這種直接映射的模式,通俗的說(shuō)就是物理地址是在程序中寫死的。想想使用匯編直接操作物理地址是多么壯觀的工程呀。對(duì)于一個(gè)大型的軟件系統(tǒng)來(lái)說(shuō),這部分工作幾乎是不可能完成的。后來(lái)開(kāi)始使用“段頁(yè)式”的方式來(lái)管理內(nèi)存的尋址。用一個(gè)時(shí)髦的詞來(lái)說(shuō)就是引入了“虛擬化”技術(shù)?,F(xiàn)代操作系統(tǒng)都會(huì)使用受保護(hù)的虛擬地址模式(?protected virtual address mode?)來(lái)管理內(nèi)存,Linux下分為三類地址:邏輯地址(Logic Address)、線性地址(Linear Address)與物理地址(Physics Address)。這三者的對(duì)應(yīng)關(guān)系如下所示:????

簡(jiǎn)單的說(shuō)就是邏輯地址通過(guò)?分段機(jī)制映射?轉(zhuǎn)化為線性地址,然后線性地址通過(guò)?分頁(yè)機(jī)制映射轉(zhuǎn)化為物理地址。因?yàn)檫@里是介紹hugepages,所以我這里不打算介紹分段機(jī)制,主要對(duì)分頁(yè)機(jī)制做簡(jiǎn)單的闡述。 事實(shí)上,地址映射的過(guò)程遠(yuǎn)遠(yuǎn)不止上圖中這么簡(jiǎn)單。例如在分頁(yè)機(jī)制映射中,一般需要經(jīng)過(guò)四級(jí)映射,也就是將線性地址映射為物理地址的過(guò)程中,需要從內(nèi)存中讀取至少四次頁(yè)目錄表(Page Directory)和頁(yè)表 (Page Table)。眾所周知,CPU寄存器與內(nèi)存的訪問(wèn)速率相差至少一個(gè)數(shù)量級(jí),所以如果使用傳統(tǒng)的分頁(yè)機(jī)制的開(kāi)銷將會(huì)非常大。所以在現(xiàn)代的X86架構(gòu)中,集成了一種被成為TLB(?Translation Lookaside Buffer?)的硬件級(jí)緩存。TLB讀寫速度非???#xff0c;基本和CPU寄存器的速率在一個(gè)數(shù)量級(jí),而TLB中保緩存了最近使用過(guò)的線性地址和物理地址的映射關(guān)系。如下圖所示:

?

那么將線性地址映射為物理地址的過(guò)程如下:首先到TLB中找到這個(gè)條目是否存在,如果不存在則為TLB miss,然后使用頁(yè)表的方式進(jìn)行尋址,最后把這個(gè)映射關(guān)系更新到TLB中以備下次使用。由于TLB是大小有限,而一旦出現(xiàn)TLB miss,則其查詢的代價(jià)很高,所以現(xiàn)代CPU架構(gòu)基本都進(jìn)行了一些優(yōu)化以提高地址映射的效率。例如:

  • 線性地址到物理地址轉(zhuǎn)換一開(kāi)始就選擇同時(shí)在TLB和頁(yè)表進(jìn)行查詢,而不經(jīng)過(guò)TLB查找是否成功的等待;
  • 使用多級(jí)TLB以及軟TLB,
  • 在CPU context swtch的時(shí)候不flush整個(gè)TLB。

下面用例子來(lái)說(shuō)明為什么使用傳統(tǒng)的 4k大小的頁(yè)表相比hugepages對(duì)大內(nèi)存的管理效率會(huì)很低。在x86平臺(tái),一條PTE的大小為4Byte;而在x86_64平臺(tái),一條PTE的大小為8Byte。 以下這種場(chǎng)景并不罕見(jiàn):

Linux x86_64, SGA大小為100G,使用常規(guī)的4k的page,連接到數(shù)據(jù)庫(kù)的進(jìn)程數(shù)約1000。page table一共需要100×1024×1024K/4K=26214400條PTE;

那么26214400條PTE需要100×1024×1024K/4K×8Byte=209715200Byte=200M;

從而1000個(gè)進(jìn)程需要100×1024×1024K/4K×8Byte×1000=209715200000Byte=200G。

計(jì)算出來(lái)的結(jié)果真是令人崩潰,但是事實(shí)上在你沒(méi)有崩潰以前,數(shù)據(jù)庫(kù)就已經(jīng)因?yàn)闆](méi)有內(nèi)存而崩潰了。同樣條件下,如果使用2M的hugepages進(jìn)行對(duì)比,則以上的計(jì)算方法變?yōu)?#xff1a;

page table一共需要100×1024M/2M=51200條PTE;

那么51200條PTE需要100×1024M/2M×8Byte=409600Byte=400K;

從而1000個(gè)進(jìn)程需要100×1024M/2M×8Byte×1=409600Byte=400K。

綜上,可以看到同樣是1000個(gè)進(jìn)程,同樣是管理100G的SGA,結(jié)果卻大不相同。使用傳統(tǒng)的4k大小的page開(kāi)銷竟然會(huì)達(dá)到驚人的200G;而使用2M的hugepages,開(kāi)銷只有400K。 這其中不僅僅只是對(duì)于因?yàn)閱蝹€(gè)進(jìn)程而言,2M page需要的PTE小于4K ?page的PTE,最大的一個(gè)原因是在于使用4K page的話,有多少進(jìn)程使用SGA,就需要多少套PTE,相反如果使用2M page則無(wú)論有多少進(jìn)程使用SGA,共享的都是同一套PTE。

眾所周知,x86是32位的,所以默認(rèn)情況下,其可尋址的空間為2的32次方——4G。在X86設(shè)計(jì)之初,4G內(nèi)存似乎是一個(gè)遙不可及的天文數(shù)字,但是摩爾定律打破了這一切,所以軟硬件的設(shè)計(jì)和開(kāi)發(fā)商必須想出一個(gè)對(duì)策來(lái)解決4G以上不可尋址的問(wèn)題。注意:這里沒(méi)有說(shuō)4G以上的內(nèi)存不可尋址,而是說(shuō)4G以上的地址空間不可尋址,這兩者實(shí)際上有區(qū)別的。例如4G內(nèi)存的CPU在32bit的Windows(非server版本)能識(shí)別到的內(nèi)存一般在3G左右。?這其中的主要是主板或者操作系統(tǒng)的限制。因?yàn)橛?jì)算機(jī)上一些其他的設(shè)備同樣需要可尋址,而這一部分地址需要從總的可尋址空間中預(yù)留,例如BIOS芯片的ROM,顯卡上的顯存(RAM)和BIOS(ROM),以及PCI、PCI-E設(shè)備上的RAM和ROM都需要占用一定的可尋址的空間。這個(gè)叫?MMIO?(Memory-mapped I/O)。這里有點(diǎn)off the topic了,所以不再贅述,要了解更詳細(xì)的原因和機(jī)制,請(qǐng)參考以下鏈接:(?RAM limit?PCI hole?,????Conventional memory?,????3GB barrier?)

CPU的設(shè)計(jì)者碰到了難題了:既要解決4G以上可尋址,又要兼容已有的架構(gòu)和程序,那該怎么辦呢?一種最可行的方式就是通過(guò)增加擴(kuò)展地址來(lái)解決4G以上的尋址問(wèn)題。于是Intel引入一個(gè)workaround?PAE?(Physical Address Extensions)機(jī)制:增加20位擴(kuò)展地址,將原來(lái)的32位的物理地址擴(kuò)展為52位,那么可尋址的空間就增加到了2的52次方——4PB,但是實(shí)際上x(chóng)86只使用了其中的36位,也就是X86實(shí)際可尋址的物理地址為64G,而轉(zhuǎn)化的過(guò)程為操作系統(tǒng)通過(guò)使用頁(yè)表將4GB的地址空間映射到大小為64GB的物理地址空間。盡管物理地址為52位,但是線性地址還是32位,所以在這種架構(gòu)下單個(gè)程序/進(jìn)程使用的內(nèi)存限制實(shí)際上仍然還是4G。?????注:?PSE?(Page Size Extension)使得用戶可以使用4M的頁(yè)表。?PAE?(Physical Address Extension)使得32位的系統(tǒng)就能夠使用接近64GB的內(nèi)存的一種技術(shù)。如果PAE和PSE同時(shí)使用,則只能使用2M的頁(yè)表。x86_64默認(rèn)使用PAE的擴(kuò)展——??long mode?。

通過(guò)上圖可知:是否使用分頁(yè)是通過(guò)CR0寄存器的PG表示來(lái)控制的,如果只使用傳統(tǒng)的分段模式,則將CR0.PG置為0, 如果啟用分頁(yè)則需要將PG設(shè)置為1。使用page的大小則是由IA32_EFER寄存器LME標(biāo)志以及CR4寄存器的PAE標(biāo)志和PSE標(biāo)志控制的,其中IA32_EFER.LME標(biāo)志控制是否是否啟用IA-32e模式,而CR4.PAE標(biāo)志為控制是否啟用PAE, CR4.PSE標(biāo)志控制是否啟用PSE。但是并不是這三者的任意組合都是存在的,現(xiàn)實(shí)中存在的情況為以下幾種: 當(dāng)前x86/x86_64架構(gòu)支持的page的大小包括: 4k, 2M, 4M, 1G (操作系統(tǒng)到目前還不支持1G的page table) 以下以x86_64的Linux為例,說(shuō)明page的大小是如何得到的:在內(nèi)核源代碼include/asm-x86_64/pgtable.h文件中,可以找到如下宏定義:

#define PMD_SHIFT 21...#define PMD_SIZE (1UL <<PMD_SHIFT)

可知使用long mode的page的大小為:

1 << 21 = 2097152

這個(gè)移位運(yùn)算的結(jié)果,請(qǐng)參考?http://www.wolframalpha.com/input/?i=1%3C%3C21

需要注意的是page table的大小用戶無(wú)法自定義,在Linux中即使修改這個(gè)宏定義,重新編譯內(nèi)核,也無(wú)法修改page的大小。

ArchitecturePage SizeHuge Page SizeLarge Page Size
i3864?KB4M (2M in PAE mode)1?GB
IA-644?KB4K, 8K, 64K, 256K, 1M, 4M, 16M, 256M-
ppc644?KB-16M
sparc8?KB-8K, 64K, 4M, 256M, 2G

在Exadata甚至所有的大內(nèi)存Linux平臺(tái), hugepages的重要性怎么強(qiáng)調(diào)都不過(guò)分。那么為什需要配置hugepages呢?使用hugepages的好處,總結(jié)起來(lái)包括如下五個(gè)方面:

Not swappable?(使得?SGA?不可交換)

為啥SGA是可以被換到虛擬內(nèi)存的???Bug?160033?-?Kernel swaps out Oracle instead of releasing cache 這個(gè)bug最終關(guān)閉的狀態(tài)為Not a bug, 但是同時(shí)在這個(gè)bug中提到: ? The basic design of the VM in RHEL 4 and RHEL 5 will not allow a complete fix for this issue, only tweaks to make it behave better most of the time.In the upstream kernel (and for RHEL 6), this problem has been addressed with the split LRU VM, which was merged in 2.6.28 and continues to get small fixes and tweaks.? In RHEL 6 this issue should be resolved. Oracle SGA區(qū)的內(nèi)存被swap到磁盤只有到Linux Kernel2.6.28或者RHEL 6以后才通過(guò)引入新的機(jī)制得到解決。而一旦SGA區(qū)被換出內(nèi)存會(huì)造成很大的性能抖動(dòng)。所以在這個(gè)問(wèn)題徹底解決之前,絕大多數(shù)版本的Linux依然需要通過(guò)hugepages來(lái)固定SGA區(qū)。(Linux平臺(tái)并不支持通過(guò)設(shè)置lock_sga和參數(shù)的方法來(lái)固定SGA, pre_page_sga這個(gè)參數(shù)存在太多的弊端已經(jīng)強(qiáng)烈不推薦使用)

Relief of TLB pressure:?(減輕?TLB?的壓力)

我們知道TLB是直接緩存虛擬地址到物理地址的緩存表,用于提升性能,省去查找page table減少開(kāi)銷,但是如果出現(xiàn)的大量的TLB miss,必然會(huì)給系統(tǒng)的性能帶來(lái)較大的負(fù)面影響,尤其對(duì)于連續(xù)的讀操作。從第二篇文章中我們知道如果使用hugepages能大量減少PTE的數(shù)量,也就意味著訪問(wèn)同樣多的內(nèi)容需要的PTE會(huì)更少,而通常TLB的槽位是有限的,一般只有512個(gè),所以更少的PTE也就意味著更高的TLB的命中率。

Decreased page table overhead:?(減少頁(yè)表的開(kāi)銷)

在前面的內(nèi)容中我們通過(guò)計(jì)算,對(duì)4k page和hugepages的頁(yè)表開(kāi)銷的進(jìn)行對(duì)照發(fā)現(xiàn),使用hugepages可以極大的減少維護(hù)頁(yè)表的開(kāi)銷。這篇文章中也提到了一個(gè)計(jì)算方法:

Each page table entry can be as large as 64 bytes and if we are trying to handle 50GB of RAM, the pagetable will be approximately 800MB in size which is practically will not fit in 880MB size lowmem (in 2.4 kernels – the page table is not necessarily in lowmem in 2.6 kernels) considering the other uses of lowmem. When 95% of memory is accessed via 256MB hugepages, this can work with a page table of approximately 40MB in total.

注意這里說(shuō)PTE為64Bytes是一種最極端的情況,考慮的是極值,所以實(shí)際上這種估算方法并不是太合理。前面說(shuō)過(guò):一般來(lái)說(shuō)x86的PTE的大小為4Bytes, x86_64的PTE的大小為8Bytes,這里說(shuō)的PTE為64Bytes實(shí)際上指的是由8個(gè)PTE組成的PTEG(PTE group),在?《Microprocessor 8085, 8086》?這本書的425頁(yè)中提到A?PTEG?contains eight Page Table Entries (PTEs) of eight bytes each

Eliminated page table lookup overhead:?(減少頁(yè)表查詢的開(kāi)銷)

PTE的數(shù)量減少,那么使得很多頁(yè)表的查詢就不需要了,并且更少的PTE使得頁(yè)表的查詢更快。如果TLB miss,則可能需要額外三次內(nèi)存讀取操作才能將線性地址翻譯為物理地址。

Faster overall memory performance:?(提升內(nèi)存訪問(wèn)的整體性能)

現(xiàn)代操作系統(tǒng)都是使用虛擬內(nèi)存管理,每一次對(duì)內(nèi)存的訪問(wèn)實(shí)際上都是由兩次抽象的內(nèi)存操作組成。如果只要使用更少的頁(yè)面,那么原本在頁(yè)表訪問(wèn)的瓶頸也得以避免。

來(lái)看一個(gè)具體的問(wèn)題。

某客戶新上線的Oracle數(shù)據(jù)庫(kù)系統(tǒng),運(yùn)行在Linux x86_64平臺(tái)上,主機(jī)配置較高,32核+120G內(nèi)存,SGA設(shè)置90G左右,但是每當(dāng)數(shù)據(jù)庫(kù)運(yùn)行大約一周以后,前臺(tái)應(yīng)用就會(huì)變得異常緩慢,經(jīng)常假死,有時(shí)新連接都沒(méi)有響應(yīng),如果DBA不加干涉殺掉部分local=NO的進(jìn)程,過(guò)一段時(shí)間就可能有節(jié)點(diǎn)被驅(qū)逐。 經(jīng)過(guò)簡(jiǎn)單的分析,當(dāng)前數(shù)據(jù)庫(kù)主機(jī)有如下一些特征:

  • 前臺(tái)響應(yīng)緩慢或者新連接無(wú)法建立時(shí),CPU占用率并不高,但是奇怪的是有一個(gè)系統(tǒng)進(jìn)程kswapd0占據(jù)了單核CPU的100%,其它進(jìn)程的CPU占用率都控制在單核的各位數(shù);
  • 通過(guò)free命令來(lái)查看剩余內(nèi)存,發(fā)現(xiàn)所剩的內(nèi)存已經(jīng)不多,通過(guò)sar -B和vmstat查看發(fā)現(xiàn)有較為嚴(yán)重的page in和page out。
  • 問(wèn)題發(fā)生時(shí)刻,連接數(shù)有一定程度的增加,但是基本都是呈緩慢線性的方式增加,沒(méi)有劇增的情況。從oracle進(jìn)程來(lái)看,每個(gè)連接占的CPU和內(nèi)存資源都差不多;
  • 從/proc/meminfo來(lái)看,頁(yè)表占用了內(nèi)存的絕大部分; 操作系統(tǒng)重啟的時(shí)候,在/var/logs/message中有類似的信息:
messages: Feb 10 10:11:40 rac01 kernel: SysRq : Resetting messages: Feb 10 10:16:35 rac01 syslogd 1.4.1: restart.

這個(gè)問(wèn)題并不復(fù)雜:本質(zhì)就是一個(gè)內(nèi)存耗盡的問(wèn)題,但是另客戶非常不解的是:按照規(guī)劃,物理內(nèi)存應(yīng)該是綽綽有余的,那為什么還出現(xiàn)了內(nèi)存耗竭的情況呢? 從前面的例子可以看到,因?yàn)闆](méi)有配置hugepages,導(dǎo)致了隨著連接數(shù)的增加頁(yè)表急劇膨脹,并且SGA被頻繁的從swap交換空間換入/換出。在Linux中, ?kswapd是負(fù)責(zé)內(nèi)核頁(yè)面交換管理的一個(gè)守護(hù)進(jìn)程,它的職責(zé)是保證Linux內(nèi)存管理操作的高效。當(dāng)物理內(nèi)存不夠時(shí),它就會(huì)變得非常aggressive,就像上文中所說(shuō)的能占用單核CPU的100%. ? kswapd 進(jìn)程負(fù)責(zé)確保內(nèi)存空間總是在被釋放中,它監(jiān)控內(nèi)核中的pages_high和pages_low閥值。如果空閑內(nèi)存的數(shù)值低于pages_low,則每次 kswapd 進(jìn)程啟動(dòng)掃描并嘗試釋放32個(gè)free pages.并一直重復(fù)這個(gè)過(guò)程,直到空閑內(nèi)存的數(shù)值高于 pages_high。kswapd 進(jìn)程完成以下幾個(gè)操作:

  • 如果該頁(yè)處于未修改狀態(tài),則將該頁(yè)放置回空閑列表中.
  • 如果該頁(yè)處于已修改狀態(tài)并可備份回文件系統(tǒng),則將頁(yè)內(nèi)容寫入到磁盤.
  • 如果該頁(yè)處于已修改狀態(tài)但沒(méi)有任何磁盤備份,則將頁(yè)內(nèi)容寫入到swap device.

注:?每次?kswapd?進(jìn)程啟動(dòng)掃描并嘗試釋放?32?個(gè)?free pages??不再適用于RHEL 5.4以后的版本。 以上方框中的內(nèi)容來(lái)自Linux System and Performance?Monitoring, 原文鏈接已不可考。當(dāng)然也可以參考MOS文檔kswapd / krefilld Process Consumes All the CPU Resources [ID 272249.1]。

在Linux系統(tǒng)中,有兩種方式可以用來(lái)使用hugepages。一種是2.6內(nèi)核就已經(jīng)引入的Hugetlbfs虛擬文件系統(tǒng),還有一種方式就是從2.6.38版本開(kāi)始(RHEL 6)引入的THP(Transparent Hugepages).

在現(xiàn)實(shí)世界中,hugetlbfs主要用于數(shù)據(jù)庫(kù),需要專門的進(jìn)行配置以及應(yīng)用程序的代碼支持,而THP則可用于更廣泛的應(yīng)用程序,一切都交給操作系統(tǒng)來(lái)完成,也不再需要額外的配置,所以對(duì)于應(yīng)用程序是透明的。 我們首先來(lái)看hugetlbfs。hugetlbfs是一個(gè)虛擬文件系統(tǒng),它運(yùn)行在內(nèi)核層,不與磁盤空間相對(duì)應(yīng)。如果需要使用hugetlbfs,則需要在編譯Linux內(nèi)核的時(shí)候在file system這個(gè)配置欄中勾選CONFIG_HUGETLB_PAGE和CONFIG_HUGETLBFS選項(xiàng)(如果勾選了CONFIG_HUGETLB_PAGE則CONFIG_HUGETLBFS會(huì)自動(dòng)勾選)。內(nèi)核編譯完成并啟動(dòng)操作系統(tǒng)以后,將hugetlbfs文件系統(tǒng)掛載到特定的目錄(不同的發(fā)行版目錄可能不一樣,Red Hat一般mount在/dev/hugepages),則hugetlbfs就可以訪問(wèn)了。完成以后可以通過(guò)

cat /proc/filesystems | grep tlb

來(lái)查看hugetlbfs是否已經(jīng)開(kāi)啟。因?yàn)镽HEL/OL提供二進(jìn)制內(nèi)核的rpm包,所以這些操作在RHEL/OL都不需要做。RHEL/OL上惟一需要做的就是在nr_hugepages中輸入需要使用的hugepages的數(shù)量,例如:

echo 25000 > /proc/sys/vm/nr_hugepages

當(dāng)然我們都知道/proc文件系統(tǒng)的內(nèi)容只對(duì)當(dāng)前生效,如果需要重啟后依然有效則需要把vm.nr_hugepages?= 25000這個(gè)條目加入到/etc/sysctl.conf內(nèi)核配置文件中,然后重啟操作系統(tǒng)或者使用sysctl -p 刷新內(nèi)核參數(shù)配置才能生效。 如果一個(gè)程序要使用hugetlbfs,那么用戶只能使用mmap 標(biāo)準(zhǔn)的SYSV函數(shù)shmget/ shmat來(lái)調(diào)用/訪問(wèn)它。如果使用mmap調(diào)用,則在mmap函數(shù)的第四個(gè)參數(shù)帶入的標(biāo)志位為MAP_HUGETLB,具體實(shí)例請(qǐng)參考Linux內(nèi)核文檔:?https://www.kernel.org/doc/Documentation/vm/map_hugetlb.c?,

如果使用shmget接口來(lái)調(diào)用,則需要?jiǎng)tshmget的第三個(gè)參數(shù)的位置帶入SHM_HUGETLB參數(shù)(shmat沒(méi)有這個(gè)參數(shù), 所以通過(guò)listener新建一個(gè)連接無(wú)法獲知是否使用了hugepages??蓞⒖磗hmat的man頁(yè)面:??http://linux.die.net/man/2/shmat?)。具體實(shí)例請(qǐng)參考Linux內(nèi)核文?https://www.kernel.org/doc/Documentation/vm/hugepage-shm.c???赡苡型瑢W(xué)覺(jué)得知道這個(gè)對(duì)于一個(gè)dba毫無(wú)意義,因?yàn)榭赡芪矣肋h(yuǎn)不會(huì)進(jìn)行與hugepages開(kāi)發(fā)相關(guān)的任何工作,但是實(shí)際上卻不是這樣的。

Linux平臺(tái)上無(wú)法從操作系統(tǒng)層面得知數(shù)據(jù)庫(kù)是不是真正使用了hugepages。那么這個(gè)時(shí)候我們通過(guò)strace跟蹤數(shù)據(jù)庫(kù)的啟動(dòng)過(guò)程(啟動(dòng)以后無(wú)法看到)發(fā)現(xiàn),其調(diào)用了shmget, 并且第三個(gè)參數(shù)為SHM_HUGETLB標(biāo)志。這樣我們就可以斷定數(shù)據(jù)庫(kù)使用了hugepages。例如:如果kernel.shmmax為32G,通過(guò)strace跟蹤就能看到類似的調(diào)用信息。(可以看出shmget的第二個(gè)參數(shù)為申請(qǐng)的內(nèi)存大小,單位為Bytes)

$ strace -fo strace.out $ sqlplus / as sysdba SQL>startup nomount; $ grep HUGETLB strace.out | less shmget(0xxxxxxxxx, 13625196544, IPC_CREAT|IPC_EXCL|SHM_HUGETLB|0660) ...

那么能否可以通過(guò)/proc/meminfo中的信息來(lái)確認(rèn)數(shù)據(jù)庫(kù)使用了hugepages,我這里舉例說(shuō)明:以下是一個(gè)Exadata用戶的hugepages信息:

#cat /proc/meminfo | grep -i hugepage HugePages_Total: 13007 HugePages_Free: 11813 HugePages_Rsvd: 3372 HugePages_Surp: 0 Hugepagesize: 2048 kB

從上面的信息可以得出以下結(jié)論:當(dāng)前hugepages一共實(shí)際使用了13007-11813=1194個(gè)pages (不包括預(yù)留的),預(yù)留了3372個(gè)pages。永遠(yuǎn)不會(huì)使用達(dá)到了11813-3372=8841個(gè)pages。每個(gè)page大小為2M,也就是說(shuō)有接近16.5G的hugepages內(nèi)存被浪費(fèi)了(因?yàn)閔ugepages無(wú)法swap,所以不能被其它程序所使用)。換句話說(shuō):當(dāng)前系統(tǒng)使用中或者即將被使用的hugepages的總和為HugePages_Total – HugePages_Free + HugePages_Rsvd=13007-11813+3372=4566個(gè)。產(chǎn)生這樣令人困惑的結(jié)果是因?yàn)橛脩魹榱耸≠Y源,在這臺(tái)主機(jī)上配置了多個(gè)數(shù)據(jù)庫(kù)實(shí)例,但是只有一個(gè)實(shí)例使用了hugepages。 之所以要提這個(gè)事情,是因?yàn)樵贠racle 11.2.0.3版本以前,如果當(dāng)前操作系統(tǒng)配置了hugepages,但是數(shù)據(jù)庫(kù)實(shí)例設(shè)置的SGA大小如果比hugepages總的大小還要大,則SGA無(wú)法使用hugepages的內(nèi)存,然后會(huì)去使用其它非hugepages的內(nèi)存,并且在alert中也沒(méi)有任何信息,進(jìn)而導(dǎo)致系統(tǒng)內(nèi)存占用率高,數(shù)據(jù)庫(kù)性能非常糟糕。

Kevin Closson?在他的blog中有抱怨過(guò)這個(gè)問(wèn)題,但是他卻沒(méi)說(shuō)這實(shí)際上是一個(gè)Bug 12654172: EXHAUST THE AVAILABLE HUGEPAGES FOR ALLOCATING A REALM。當(dāng)然11.2.0.3以后的版本,會(huì)在alert日志提示hugepages沒(méi)有使用的警告信息。 目前在Linux的主流版本,依然無(wú)法像其它平臺(tái)那樣使用操作系統(tǒng)工具來(lái)獲取到數(shù)據(jù)庫(kù)是否使用了hugepages。例如:在Solaris中可以使用pmap -s來(lái)查看,在AIX中可以使用vmstat來(lái)查看,在RHEL/OL 6可以使用cat /proc/<pid>/smaps來(lái)查看。

配置hugepages

接下來(lái)講述如何在RHEL/OL/SLES如何設(shè)置hugepages,Exadata后期的版本onecommand默認(rèn)為數(shù)據(jù)庫(kù)配置了hugepages,早期的版本配置方式與RHEL/OL 類似。 在RHEL/OL上,大致有如下步驟:

1?)???首先需要配置?memlock

在/etc/security/limits.conf最后添加:

oracle hard memlock lock_value oracle soft memlock lock_value

其中上述lock_value使用比SGA值略大的一個(gè)值代替。

2?)估算?hugepages?的大小

在RHEL/OL平臺(tái),如果是數(shù)據(jù)庫(kù)沒(méi)有啟動(dòng),則可以按照如下公式大致估算所需要的hugepages數(shù)目: #hugepages=(SGA(MB)+(20k * # of Oracle processes running)/1024) / hugepage_size (MB) 例如:如果sga的大小為64G,運(yùn)行的oracle進(jìn)程數(shù)為1000, 那么則大致需要32777個(gè)hugepages。RedHat Consultant?Scott Croft認(rèn)為計(jì)算的時(shí)候?應(yīng)該加上PGA的值?,但是pga是無(wú)法用到hugetlbfs的,所以這里沒(méi)有算到pga的值。 當(dāng)然在數(shù)據(jù)庫(kù)實(shí)例沒(méi)有啟動(dòng)的時(shí)候只能是估算,如果Oracle數(shù)據(jù)庫(kù)正在運(yùn)行,則可以得到更準(zhǔn)確的值。以下腳本根據(jù)數(shù)據(jù)庫(kù)啟動(dòng)以后的的共享內(nèi)存段總和除上hugepages的大小,計(jì)算出來(lái)所需的hugepages的數(shù)量。

# # hugepages_settings.sh # # Linux bash script to compute values for the # recommended HugePages/HugeTLB configuration # # Note: This script does calculation for all shared memory # segments available when the script is run, no matter it # is an Oracle RDBMS shared memory segment or not. # Check for the kernel version #查看Oracle Kernel的版本,因?yàn)?.4和2.6使用的hugepages的參數(shù)是不一樣的; #2.4使用vm.hugetlb_pool,而2.6使用vm.nr_hugepages。 KERN='uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'' # Find out the HugePage size #查找Hugepages的大小,x86非PAE為4096,x86+PAE以及x86_64為2048,注意# 這里單位為K。 HPG_SZ=`grep Hugepagesize /proc/meminfo | awk {'print $2'}` # Start from 1 pages to be on the safe side and guarantee 1 free HugePage #保證至少有1個(gè)page,也就是計(jì)數(shù)從1開(kāi)始,MOS文檔401749.1的初始計(jì)數(shù)從0開(kāi)始。 NUM_PG=1 # Cumulative number of pages required to handle the running shared memory segments #循環(huán)計(jì)算一共需要多少hugepages #ipcs -m | awk {'print $5'} | grep "[0-9][0-9]*"的結(jié)果是列出所有的shared memory的大#小,單位為Bytes;echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q 為將shared memory處理單 #個(gè)page的大小,得到單個(gè)shared memory所需的hugepages的數(shù)量。將所有的shared memory #循環(huán)累加,最終得到總的hugepages的數(shù)量。 for SEG_BYTES in `ipcs -m | awk {'print $5'} | grep "[0-9][0-9]*"` do MIN_PG='echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q' if [ $MIN_PG -gt 0 ]; then NUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q` fi done # Finish with results #根據(jù)不同的內(nèi)核,提示設(shè)置不同的hugepages參數(shù) case $KERN in '2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`; echo "Recommended setting: vm.hugetlb_pool = $HUGETLB_POOL" ;; '2.6') echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;; *) echo "Unrecognized kernel version $KERN. Exiting." ;; esac # End

3?)?設(shè)置?hugepages?內(nèi)核參數(shù)

運(yùn)行上述hugepages_settings.sh,得到一個(gè)值。將這個(gè)值寫入/etc/sysctl.conf, 例如:

#echo "vm.nr_hugepages=20480">>/etc/sysctl.conf #sysctl -p #grep Huge /proc/meminfo

4?)?禁用?AMM?特性

因?yàn)镺racle自動(dòng)內(nèi)存管理的AMM特性與hugetlbfs不兼容,所以需要禁用這個(gè)特性,但是可以使用SGA自動(dòng)管理。具體做法將MEMORY_TARGET/MEMORY_MAX_TARGET設(shè)置為0,并且手工指定SGA_TARGET/SGA_MAX_SIZE/PGA_AGGREGATE_TARGET的值。

5?)重啟主機(jī)和數(shù)據(jù)庫(kù)確認(rèn)生效

設(shè)置完成以后,最好重啟主機(jī)(不是必須的,但是建議)和數(shù)據(jù)庫(kù)(必須)使得hugepages生效。如果使用的Linux是SLES (SUSE Linux Enterprise Server) ,則Oracle提供了一個(gè)名為orarun的rpm包,可以用于自動(dòng)配置其hugepages。 This package creates the user and the groups for Oracle, sets the Oracle environment variables, sets kernel parameters to values recommended by Oracle, and provides for automated start and stop of Oracle components at system start and stop time. SLES 11的orarun包可以在以下ftp站點(diǎn)找到:?http://ftp.novell.com/partners/oracle/sles-10/?SLES 11的orarun包可以在以下ftp站點(diǎn)找到:??http://ftp.novell.com/partners/oracle/sles-11/??


總結(jié)

以上是生活随笔為你收集整理的Hugepages详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

黄色大片网 | 国产99中文字幕 | 欧美精品国产综合久久 | 粉嫩一区二区三区粉嫩91 | 精品99在线 | 国产中文字幕在线视频 | 香蕉视频最新网址 | 国产精品ⅴa有声小说 | 久久国产精品视频观看 | 在线看成人 | 天天干天天在线 | 草久在线视频 | 欧美日韩国产欧美 | 国内视频一区二区 | 天天干天天草 | 在线观看日本高清mv视频 | av资源在线看 | 国产亚洲精品久久久久久大师 | 最近更新中文字幕 | 久久看片网站 | 91久久久国产精品 | 精品美女在线观看 | 狠狠色丁香九九婷婷综合五月 | 麻豆传媒视频在线播放 | 色在线视频网 | 国产视频在线观看一区二区 | 69精品久久久 | 亚洲片在线| 日本三级人妇 | 高清一区二区 | 国产一区二区在线观看免费 | 成年人黄色av | 国产美女搞久久 | 日本丶国产丶欧美色综合 | 久久久色 | 在线视频18在线视频4k | 亚洲国产高清在线 | 色吧久久 | 国产高清亚洲 | 色国产精品一区在线观看 | 91九色视频| 激情欧美一区二区三区 | 国产一卡在线 | 日本不卡久久 | 国产午夜精品久久久久久久久久 | 亚洲激情p| av一区二区三区在线 | 999视频在线播放 | 国产精品入口久久 | 国产精品免费麻豆入口 | 天天看天天操 | 日韩欧美一区视频 | 午夜免费福利视频 | 天天伊人狠狠 | 亚洲综合视频在线观看 | 激情五月播播久久久精品 | 黄色av免费 | 中文字幕日本在线观看 | 黄色一级片视频 | 精品999在线 | 色婷婷国产精品一区在线观看 | 日韩在线视频二区 | 亚洲激情小视频 | 精品中文字幕视频 | 欧美污污网站 | 91麻豆精品国产 | 91av在线免费看 | 久久艹免费 | 蜜臀av麻豆 | 精品国产片| av一级网站 | 久久理伦片 | 四虎成人av| 国内毛片毛片 | 午夜久久久久久久 | 国产精品无av码在线观看 | 伊人伊成久久人综合网小说 | 免费三级影片 | 狂野欧美激情性xxxx欧美 | 91精品系列 | 夜夜操狠狠干 | av免费在线看网站 | 一区免费观看 | 国产精品99久久久久人中文网介绍 | 在线免费国产视频 | 国产精品麻豆视频 | 欧美成人精品三级在线观看播放 | 国产亚洲综合在线 | 久草免费色站 | 国产成人在线观看免费 | 丁香九月激情综合 | 国产午夜三级一区二区三桃花影视 | 日韩久久精品一区二区三区下载 | 欧美日韩国产三级 | 麻豆网站免费观看 | 手机av观看| 深爱婷婷久久综合 | 亚洲电影免费 | 中文字幕免费高清在线观看 | 亚洲一级二级三级 | 国产高清在线免费 | 国产99久久久欧美黑人 | 久久免视频| 国产在线观看中文字幕 | 深夜精品福利 | 亚洲免费资源 | 在线观看黄色 | 91麻豆精品91久久久久同性 | 91手机在线看片 | 国产视频999 | 人人澡人人草 | 国产永久网站 | 99久久久国产精品 | 国产九九精品视频 | 亚洲男男gⅴgay双龙 | 成人午夜在线电影 | 不卡av电影在线 | 久久久久在线视频 | 福利一区二区 | 亚洲激情综合网 | 欧美成天堂网地址 | 久久亚洲在线 | 欧美福利久久 | 久久激情五月激情 | 午夜视频在线观看一区二区三区 | 狠狠狠色丁香综合久久天下网 | 高清中文字幕av | 日本中文字幕在线免费观看 | 在线观看一区二区视频 | 黄色小说免费观看 | 深爱激情五月综合 | 精品国产免费av | 91麻豆操 | 国产成人99久久亚洲综合精品 | 午夜在线免费视频 | 99免费在线观看视频 | 亚洲精品动漫在线 | 国产视频综合在线 | 欧洲在线免费视频 | 麻豆91精品视频 | 久久天天躁夜夜躁狠狠85麻豆 | 国产一区二区在线影院 | 在线免费观看国产黄色 | 青青草在久久免费久久免费 | 日韩一区在线免费观看 | 在线看的av网站 | 97超在线视频 | 国产精品18久久久久久久网站 | 激情小说久久 | 亚洲一级二级 | 国产日韩精品一区二区三区 | 黄色小网站在线 | 午夜精品久久一牛影视 | 亚洲精品男人天堂 | 精品国产自在精品国产精野外直播 | 天天射天天干天天 | 日韩毛片在线播放 | 超碰官网 | 日韩在线色视频 | 日韩欧美视频免费在线观看 | 久久国产精品99久久久久久老狼 | 天天操天天弄 | 日日夜夜网 | 日韩欧美一区二区不卡 | 国产成人免费在线观看 | 欧美日韩在线观看视频 | 国产成人一区二区三区免费看 | 国产精品美女久久久久aⅴ 干干夜夜 | 日韩激情三级 | 在线视频18在线视频4k | 99成人在线视频 | 手机在线观看国产精品 | 婷婷久月 | 狠狠久久伊人 | 91视频免费观看 | 91成人精品在线 | 亚洲精品在线免费看 | 亚洲永久免费av | 精品久久国产精品 | 97在线看| 91自拍视频在线 | 9在线观看免费高清完整版在线观看明 | 国产小视频你懂的在线 | 亚洲精品在线观看不卡 | 久久99久久99精品免观看粉嫩 | 国产免费大片 | 97在线观看免费视频 | 91探花在线视频 | 99热国内精品 | 日本久久久久久 | 国产一级片在线播放 | 粉嫩av一区二区三区四区五区 | 国产91精品欧美 | 成人日批视频 | 97人人爽| 在线亚洲成人 | 丝袜制服综合网 | 四虎国产精品永久在线国在线 | 91在线永久 | 9999精品| 免费a级观看 | 亚洲区视频在线观看 | 黄av免费在线观看 | 久草在线一免费新视频 | 久久色亚洲 | aaa日本高清在线播放免费观看 | 成人免费在线播放 | 人人模人人爽 | 2023av在线 | 青青河边草免费观看完整版高清 | 久久久久久久福利 | av丝袜在线 | 国产最新在线观看 | 国产精品手机在线 | a午夜在线| 国产一区二区电影在线观看 | 久久久久久久福利 | 高清av免费看 | 久草在线最新 | 亚洲精品一区二区精华 | 成人国产电影在线观看 | 粉嫩av一区二区三区四区五区 | 天天色天天射天天综合网 | 99九九热只有国产精品 | 成年人免费av | 亚洲精品成人免费 | av在线一二三区 | 三级a毛片 | 在线播放 日韩专区 | 国产一区网 | 香蕉视频久久 | 91免费在线看片 | 免费在线观看不卡av | 亚洲精品乱码久久久久久按摩 | 日韩在线小视频 | 亚洲精品视频二区 | 黄色大全免费观看 | 黄色录像av | 久久人人爽人人爽人人片av免费 | 中文字幕色在线视频 | 亚洲精品乱码久久久久久写真 | 在线精品亚洲一区二区 | 99精品黄色片免费大全 | 欧美伦理一区二区 | 天天亚洲综合 | 久久一区二区三区四区 | 久久天| 91在线你懂的 | 综合网在线视频 | av电影免费看| 免费看片黄色 | 久久99网站 | 天天插天天狠 | 伊人中文在线 | 久久免费视频在线观看 | 婷婷九月激情 | 精品国产成人av在线免 | 免费99视频 | 久久99国产精品自在自在app | 日韩中字在线观看 | 西西4444www大胆艺术 | 国际精品久久久久 | 伊人久久电影网 | 特级西西444www高清大视频 | 96av视频| 黄色小说免费观看 | 久久激情五月婷婷 | 日韩激情网 | 久久免费视频在线观看 | 午夜精品中文字幕 | 国产成人三级在线播放 | 亚洲精品玖玖玖av在线看 | 国产精品1区2区在线观看 | 欧美日韩国产一区二区三区在线观看 | 亚洲禁18久人片 | 亚洲国产片 | 日韩爱爱片| 97超碰福利久久精品 | 日日夜夜爱| 天天操天天操天天操天天操天天操 | 欧美日韩视频免费 | 亚洲精品视频网址 | 五月天婷亚洲天综合网鲁鲁鲁 | 国产精品久久久区三区天天噜 | 91在线免费观看网站 | 欧美专区日韩专区 | 日韩网 | 在线播放你懂 | 91视频在线自拍 | 日韩一区二区三区观看 | 人人狠| 日韩激情免费视频 | 欧美黑人性爽 | 中文字幕在线观看视频一区二区三区 | av电影久久| 天天爽天天搞 | 亚洲视频免费在线观看 | 亚洲综合黄色 | 黄色亚洲免费 | 亚洲欧洲一级 | 欧美激情综合五月色丁香小说 | 成人99免费视频 | 伊人一级| 国产精品国产亚洲精品看不卡 | 国产色在线,com | 91久久精品一区二区三区 | 国产成人三级在线观看 | 黄色成人小视频 | 激情婷婷综合网 | 91精品91 | 国产资源在线视频 | 狠狠狠狠狠狠狠干 | 手机av资源 | 在线亚洲人成电影网站色www | av在线网站免费观看 | 亚洲开心色 | 男女激情片在线观看 | 国产在线2020 | 国产精品一区免费在线观看 | 伊人亚洲精品 | 一区二区三区动漫 | 国产夫妻性生活自拍 | 精品一区91 | 日韩一级黄色片 | 亚洲午夜电影网 | 日韩成人精品一区二区三区 | 亚洲影视九九影院在线观看 | 日韩精品视频在线观看网址 | 国产 亚洲 欧美 在线 | 丁香五月亚洲综合在线 | 精品一区久久 | 国产最新在线观看 | 天天干夜夜爱 | 超碰人人射 | 国产91精品久久久久久 | 碰超在线 | 日本黄区免费视频观看 | 美女网站在线免费观看 | 国语精品免费视频 | 日本精品久久久久中文字幕5 | 丁香婷婷久久 | 中文字幕在线免费 | 欧美在线视频一区二区三区 | 国产高清在线免费 | 波多野结衣久久精品 | 欧美精品做受xxx性少妇 | 久久免费黄色 | 欧美日韩免费一区二区 | 亚洲 欧美变态 另类 综合 | 欧美黄在线 | 久久亚洲影视 | 就要干b| 黄色av成人在线观看 | 天天插天天爱 | 国产精品麻豆果冻传媒在线播放 | 日韩精品中字 | 成人免费xxx在线观看 | www.黄色小说.com | 国产 欧美 日产久久 | 欧美最猛性xxx | 欧美91精品国产自产 | 成人影视免费看 | 色九九在线 | 久久国产精品久久久 | 亚洲精品国产精品久久99热 | 日本久久影视 | 黄色在线免费观看网址 | 色婷婷视频在线观看 | 黄色毛片网站在线观看 | 91片网| 99久久99久久精品国产片果冰 | 国产黄色精品网站 | 99久久一区 | 国产精品2020 | 中文字幕乱在线伦视频中文字幕乱码在线 | 91av手机在线观看 | 91成人网在线观看 | 婷婷色六月天 | 国产成人高清av | 亚洲视频专区在线 | 国产偷在线 | 日本久久高清视频 | 国产免费av一区二区三区 | 国产日韩欧美视频 | 国产91精品一区二区麻豆亚洲 | 国产日韩在线视频 | 人人干97 | 国产资源在线视频 | 日本视频不卡 | 天堂av一区二区 | 中文字幕在线观看第二页 | 亚洲精品中文在线观看 | 日韩一二三 | 五月开心六月伊人色婷婷 | 久草在线| 亚洲成免费 | 亚洲婷婷综合色高清在线 | 五月激情六月丁香 | 在线国产精品一区 | 欧美一区二区在线免费观看 | 国产精品一区二区三区久久久 | 国产精品久久久久国产精品日日 | 亚洲激情在线视频 | 最新av电影网址 | 国产91成人在在线播放 | 国产精品久久网站 | 婷婷5月色 | 免费观看黄 | 国内精品二区 | 日韩一区二区三区在线看 | 日日爽日日操 | 在线看91| 国产伦精品一区二区三区在线 | 国产一区二区观看 | 亚洲午夜久久久久久久久久久 | 开心丁香婷婷深爱五月 | 欧美国产一区二区 | 久久久久久久影院 | 国产日韩三级 | 日日干综合 | 五月婷影院 | 四虎在线免费观看视频 | 色激情五月 | 日本精品视频一区二区 | 在线成人性视频 | 日韩av快播电影网 | 婷婷国产精品 | 中文字幕免费一区 | 一级a性色生活片久久毛片波多野 | 中文字幕在线观看国产 | av看片在线观看 | 8x8x在线观看视频 | 人人草人人草 | 日本中文字幕免费观看 | 成人免费网视频 | 久久91网 | 色在线高清 | 日韩三级av | 亚洲视频网站在线观看 | 久久新 | 中文字幕在线观看1 | 99在线精品视频观看 | 91大神dom调教在线观看 | 91黄色影视 | 99精品国产高清在线观看 | 正在播放国产一区二区 | 波多野结衣一区二区三区中文字幕 | 日韩美女免费线视频 | 国产精品无av码在线观看 | 久久久精品在线观看 | 三级av免费 | 日韩欧美中文 | 国产专区视频在线 | 亚洲一区免费在线 | 九九热精品在线 | 免费在线黄 | 中文字幕av一区二区三区四区 | av黄色在线观看 | 韩日色视频| 最近中文字幕久久 | 日韩爱爱网站 | 国产精品一区专区欧美日韩 | 天天色棕合合合合合合 | 国产午夜三级一区二区三桃花影视 | 97超碰在线免费观看 | 日本一区二区三区视频在线播放 | 高潮毛片无遮挡高清免费 | 黄色一及电影 | 免费日韩一区 | 免费观看一区二区三区视频 | 中文字幕不卡在线88 | 丁香激情五月婷婷 | 激情 婷婷 | 久草久草在线观看 | 欧美午夜精品久久久久久孕妇 | 亚洲成a人片77777潘金莲 | 国产aa免费视频 | 日韩伦理片一区二区三区 | 美女黄频在线观看 | 综合色在线观看 | 91精品国产一区二区在线观看 | 日本黄色免费看 | 免费高清在线观看成人 | 伊人宗合| 久草在线资源观看 | 色 中文字幕 | 欧美日韩亚洲第一 | 综合网av| 91chinese在线 | 在线免费看片 | 黄色小说在线观看视频 | 国产亚洲视频在线观看 | 一区二区三区四区免费视频 | 日韩有色 | 波多野结衣在线播放一区 | 久草在线免费看视频 | 嫩模bbw搡bbbb搡bbbb | 久久久久国产精品厨房 | www.xxx.性狂虐| 久久国产女人 | 激情久久久久 | 五月在线视频 | 婷婷 综合 色 | 国产一级片一区二区三区 | 最近能播放的中文字幕 | 偷拍精偷拍精品欧洲亚洲网站 | 99视频在线播放 | 国产美女网站在线观看 | 九月婷婷综合网 | 久久久精品国产一区二区 | 中文高清av | 国产在线观看国语版免费 | 夜夜躁狠狠躁日日躁视频黑人 | 韩国视频一区二区三区 | 99久久久久国产精品免费 | 午夜丁香视频在线观看 | 久久综合狠狠综合久久狠狠色综合 | 午夜免费福利视频 | 成人性生交大片免费观看网站 | 亚洲永久av | 免费看黄在线网站 | 亚洲综合欧美激情 | 亚洲va天堂va欧美ⅴa在线 | 国产资源精品在线观看 | 免费a网站 | 亚洲aⅴ在线观看 | 国产成人精品一区二区三区免费 | www.色午夜,com | 精品国产1区2区 | 日日干影院 | 国产视频一区精品 | 欧美在一区 | 天天在线视频色 | 久久人人97超碰国产公开结果 | 探花视频免费在线观看 | 国产99久久久国产 | 一区二区三区中文字幕在线 | 日韩色中色 | 91精品人成在线观看 | sm免费xx网站 | 亚洲天堂va| 日韩欧美国产精品 | 亚洲 av网站 | 久久久91精品国产一区二区三区 | 精品国产一区二区三区久久影院 | 欧美成年黄网站色视频 | 国产精品久久久久一区二区三区 | 欧美成人精品三级在线观看播放 | 欧美日韩国产在线 | 草久久av | 国精产品999国精产品岳 | 国产精品一区二区三区观看 | 亚洲免费视频观看 | 亚洲国内精品在线 | 天天色 天天 | 亚洲欧洲成人 | 五月天婷婷在线观看视频 | 国产综合在线观看视频 | 国产高清不卡一区二区三区 | 日日爱影视 | 日韩av视屏在线观看 | 亚洲国产剧情av | 久久亚洲私人国产精品va | 国产精品视频久久 | 亚洲一区尤物 | 五月开心六月伊人色婷婷 | 亚洲精品乱码久久久一二三 | 国产一区二区精品久久91 | 91麻豆精品久久久久久 | 精品国产伦一区二区三区观看方式 | 国产伦精品一区二区三区高清 | 久久夜夜爽 | 国产精品免费久久久久久 | 国产精品久久久久久a | 在线观看免费 | 国产精品久久久久久久久久久久午夜 | 亚洲精品中文字幕在线观看 | 亚洲成人黄色av | 午夜精品久久久久久久久久久久 | 精品欧美小视频在线观看 | 在线观看中文字幕网站 | 99re久久资源最新地址 | 2020天天干夜夜爽 | 精品国偷自产国产一区 | 久久久精品国产免费观看同学 | 激情婷婷亚洲 | 国产小视频在线观看免费 | 久久久精品国产一区二区三区 | 亚洲91中文字幕无线码三区 | 日韩网站在线看片你懂的 | 成人午夜免费剧场 | 狠狠狠狠狠狠天天爱 | 免费在线一区二区三区 | 国产美女免费观看 | 在线观看国产麻豆 | 91字幕| 亚洲成人免费在线 | 久久精品99视频 | 国产在线专区 | 日韩字幕| 99久热精品 | 久久精品视频国产 | 91麻豆精品国产91久久久无限制版 | 久久久久久久免费观看 | 亚洲老妇xxxxxx | 中文字幕久久亚洲 | 国产成人亚洲精品自产在线 | 国产三级国产精品国产专区50 | 黄色亚洲免费 | av动图 | av黄色免费网站 | 欧美日韩成人一区 | 欧美日韩一区二区视频在线观看 | 婷婷丁香自拍 | 国产一二区在线观看 | 久久精品视频2 | 久久黄色免费观看 | 亚洲 欧美日韩 国产 中文 | 日韩国产精品一区 | 久久久国产影视 | 337p日本大胆噜噜噜噜 | 日日综合| 国产资源精品 | 我要色综合天天 | 99在线精品视频在线观看 | 99在线观看精品 | 丁香婷婷亚洲 | 草久久av | 成人影音av | 久久久网址| 中文字幕在线观看免费 | 欧美日韩视频免费 | 国产日韩在线播放 | 国产成人精品av在线观 | 久久国产亚洲精品 | 一区二区精品视频 | 狠狠狠狠狠狠 | 免费看亚洲毛片 | 久久视频这里有精品 | 黄色国产精品 | 亚洲精品国偷拍自产在线观看 | japanesexxxxfreehd乱熟 | 免费视频一区 | 国产另类xxxxhd高清 | 成片免费观看视频 | 欧美色图东方 | 国产成人三级一区二区在线观看一 | 久久久久国产精品午夜一区 | 日本性视频 | 色哟哟国产精品 | 中文av在线免费观看 | 91精品麻豆 | 91精品国产91久久久久久三级 | 福利视频入口 | 涩涩在线 | 看毛片的网址 | 毛片视频电影 | 五月天最新网址 | 最新色站| 国产精品激情 | 在线视频 影院 | 9999精品免费视频 | 久久久久久久久久久久电影 | 麻豆传媒视频在线播放 | 99久久精品国产欧美主题曲 | 亚洲永久精品在线观看 | 日韩区欠美精品av视频 | 国内三级在线 | 九色激情网| 日韩高清在线一区二区三区 | 激情久久五月 | 欧美视频www | 激情欧美日韩一区二区 | 久久免费视频这里只有精品 | 99色人 | 色婷婷综合久久久久中文字幕1 | 久久国产三级 | 91丨porny丨九色 | av电影中文字幕 | 久久久久久久18 | 99国产在线 | 中文字幕av在线不卡 | 国产在线毛片 | 欧美伦理电影一区二区 | 亚洲精品综合欧美二区变态 | www.综合网.com | 久久精品视频网址 | mm1313亚洲精品国产 | 久久久在线 | 成年人在线观看免费视频 | 久久精品官网 | 国产一区久久久 | 久久99精品国产91久久来源 | 日韩最新中文字幕 | 色福利网站 | 国产3p视频 | 一级免费片| 超碰av在线播放 | 久久av福利 | 狠狠色免费 | 美女网站在线 | 精品久久久久久国产偷窥 | 久久夜夜爽 | 欧美aaaxxxx做受视频 | 久久无码av一区二区三区电影网 | 久久一区国产 | 国产精品免费观看国产网曝瓜 | 91亚色免费视频 | 日韩欧美视频一区二区 | 精品久久久久久久久久久久久久久久 | 亚洲国内精品视频 | 亚洲三级视频 | 胖bbbb搡bbbb擦bbbb | av一级网站 | 欧美日韩xxxxx | 日本爱爱免费视频 | 免费高清影视 | 国产va在线 | 日韩免费在线一区 | 婷婷精品在线视频 | 欧美精品乱码久久久久久 | 日韩激情视频在线 | 婷婷国产视频 | 亚洲在线不卡 | 在线观看国产麻豆 | www.亚洲精品| 国产免费三级在线观看 | 久久成人久久 | 丁香六月伊人 | 国产亚洲精品久久久久秋 | 亚洲 综合 精品 | 日韩理论在线视频 | 1区2区视频 | 久久精品一区二区三区四区 | 亚洲乱亚洲乱妇 | 中文字幕久久精品一区 | 在线观看视频在线观看 | 午夜久久久久久久久 | 免费在线观看av不卡 | 久热超碰| 成人精品影视 | 国产在线色视频 | 国产成人精品亚洲 | 亚洲精品国产精品久久99 | 久久av不卡| 亚洲精品h| 亚洲欧美国产精品18p | 亚洲一级片在线看 | 免费色黄 | 国产精品自在欧美一区 | 亚洲欧洲视频 | 国产精品久久久久婷婷二区次 | 欧洲精品码一区二区三区免费看 | 91精品久久久久久久91蜜桃 | 香蕉在线视频播放网站 | 午夜久久影院 | 国产操在线 | 国产精品99免费看 | 国产一区在线播放 | 久久久精品国产一区二区 | 精品在线你懂的 | 亚洲国产片 | 成人小视频在线观看免费 | 最近中文字幕免费大全 | 奇米网在线观看 | 欧美性猛片 | 亚洲一级国产 | 免费美女av | 国产精品国产毛片 | 欧美福利视频 | 麻豆影视网站 | 中文字幕免费高清在线观看 | 91探花系列在线播放 | 久久a免费视频 | 欧美国产亚洲精品久久久8v | 午夜精品久久久久久久99水蜜桃 | 色美女在线 | 日韩精品1区2区 | 在线观看日韩精品视频 | 成人av手机在线 | 天天干干 | 精品国产一区二区三区不卡 | 91午夜精品 | 92av视频| 在线观看免费国产小视频 | 免费在线黄色av | 久久亚洲精品国产亚洲老地址 | 天天干天天爽 | 少妇精品久久久一区二区免费 | 国产小视频在线 | 日韩精品视 | 欧美性久久久久久 | 激情电影影院 | 免费成人在线观看 | 日韩午夜一级片 | 久久久久久久看片 | 久久久国产成人 | 国产第一二区 | 日韩成片 | av资源免费看 | 国产精品一区二区久久久 | 亚洲 欧美变态 另类 综合 | 精品国模一区二区 | 成年人免费电影在线观看 | av一区二区三区在线 | 亚洲精品国产第一综合99久久 | 欧美九九视频 | 久久综合狠狠综合久久狠狠色综合 | 久久精品这里热有精品 | 亚洲国产色一区 | 午夜精品福利一区二区三区蜜桃 | 91精品啪在线观看国产81旧版 | 激情视频二区 | 91天堂影院 | 久久综合视频网 | a精品视频| 九九精品视频在线观看 | 欧美一区二区三区免费观看 | 一区二区三区www | 亚洲国产丝袜在线观看 | 99久久婷婷国产精品综合 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 高清一区二区三区 | 91久久精品日日躁夜夜躁国产 | 成人观看| 天天曰天天 | 91精品国产亚洲 | 精品一区91| 97视频资源 | 成年美女黄网站色大片免费看 | 久久一区二区三区超碰国产精品 | 在线播放91| 国产视频精品久久 | 99亚洲精品在线 | 激情五月婷婷综合 | 国产精品区免费视频 | 狠狠色丁香久久婷婷综合丁香 | 激情综合啪| 中文字幕 国产视频 | 成片免费观看视频大全 | 久久免费的精品国产v∧ | 精品毛片久久久久久 | 精品国产乱码久久久久久久 | 最近中文字幕免费av | 国产精品中文 | 国产999视频 | 午夜免费久久看 | 国产区精品在线 | 在线直播av| 国产一级二级在线 | 国产精品亚洲片在线播放 | 首页中文字幕 | 国产亚洲人成网站在线观看 | 韩国av电影网 | 中文字幕第一页在线视频 | 少妇性xxx | 久久免费视频4 | 超碰在线亚洲 | 国产精品久久一区二区三区不卡 | 亚洲精品久久视频 | 国产高清免费在线观看 | 婷婷中文字幕综合 | 涩涩资源网 | 日韩 在线| 久草成人在线 | 看片网站黄色 | 久久黄色免费视频 | 欧美精品一区二区免费 | 久久精品美女视频网站 | 国产精品久久久一区二区 | 黄色网址中文字幕 | 麻豆久久精品 | 久久99日韩| 中文字幕免费播放 | 99精品视频99 | 欧美不卡在线 | 最新国产一区二区三区 | 在线影视 一区 二区 三区 | 少妇搡bbbb搡bbb搡aa | 国产精品涩涩屋www在线观看 | 2022久久国产露脸精品国产 | 国产字幕在线播放 | 久精品在线观看 | 亚洲最大av | 亚洲深爱激情 | 国产精品久久久久久久久久久久久久 | 国产成人精品午夜在线播放 | 久久99影院 | 日韩精品一区二区三区水蜜桃 | 国产亚洲在 | 91chinese在线| 欧美日韩1区2区 | 激情偷乱人伦小说视频在线观看 | 九九在线高清精品视频 | 国产精品入口传媒 | 国产视频一区二区在线播放 | 免费亚洲片 | 中文字幕乱码电影 | 久久99视频免费 | 青青河边草手机免费 | 成人黄色大片 | 久久国产剧场电影 | 日韩欧美视频在线播放 | 日韩精品视频久久 | 97色婷婷人人爽人人 | 成人免费观看在线视频 | 久日视频| 国产精品久久久久久超碰 | 亚洲精品大片www | 天天操天天干天天综合网 | 久久9精品| 国产日韩精品一区二区 | 超碰人人在线观看 | 久久成人国产精品一区二区 | 日韩精品综合在线 | 中国一级片在线观看 | 久久国产成人午夜av影院宅 | 国内精品久久久久影院一蜜桃 | 久久精品国产久精国产 | 午夜的福利 | 久久黄色免费观看 | 亚洲精品美女久久17c | www.婷婷色| 欧美地下肉体性派对 | 日韩精品免费一区 | 韩国av一区二区三区在线观看 | 黄色aaa级片| 国产精品欧美一区二区 | 欧美一级电影在线观看 | 天天想夜夜操 | 亚洲视频电影在线 | 成人9ⅰ免费影视网站 | www婷婷| 色婷婷 亚洲 | 久草视频在线免费播放 | 国产免费专区 | 天堂在线视频免费观看 | 国产又粗又猛又色又黄网站 | 91精品国产乱码在线观看 | 狠狠狠色丁香婷婷综合激情 | 521色香蕉网站在线观看 | 免费a v视频 | 在线看不卡av | 久草视频在线免费播放 | 国产精品v欧美精品v日韩 | 国产黄网站在线观看 | 国产成人精品免高潮在线观看 | 香蕉国产91 | 中文字幕观看视频 | 国产h在线播放 | 黄色片视频在线观看 | 亚洲成a人片77777kkkk1在线观看 | 国产精品自在线 | 亚洲成av人电影 | 中文字幕在线精品 | 日日草夜夜操 | 91av官网| 久久久久国产精品视频 | 天天射射天天 | 亚洲在线精品视频 | 久久精品国产免费观看 | 91成人看片 | 韩国精品在线观看 | 少妇bbw搡bbbb搡bbb | 国产在线永久 | 黄色av网站在线观看 | 日韩激情免费视频 | 免费看一级特黄a大片 | av中文字幕免费在线观看 | 婷婷色网视频在线播放 | 最新国产精品久久精品 | 亚洲国产免费 | 超碰成人免费电影 | 天天综合入口 | 99久久久国产精品免费观看 | 国产中文| 国产精品一区二区免费在线观看 | 九九视频在线 | 黄色三级在线看 | 久久久久久久久久久影院 | 久久高清国产视频 | 国产精品美女久久久久久久久 | 免费福利在线视频 | 久久精品国产亚洲 | 国产私拍在线 | 99这里只有精品视频 | 99国产免费网址 | 精品在线小视频 | a级片久久久 | 波多野结衣在线中文字幕 | 正在播放国产91 | 国产免费午夜 | 99热国内精品 | 久久tv视频 | 97超碰国产精品 | 日本黄色大片免费看 | 婷婷丁香花五月天 | 992tv在线 |