Oracle数据库开启Huge Page
一.ORACLE開啟Huge page時(shí)的注意事項(xiàng)
1.Hugepages是在分配后就會預(yù)留出來的,其大小一定要比服務(wù)器上所有實(shí)例的SGA總和要大,差一點(diǎn)都不行。
比如說Hugepages設(shè)置為90G,oracle SGA為91G,那么oracle在啟動的時(shí)候就不會使用到這90G的Hugepages。
這90G就浪費(fèi)了。所以在設(shè)置Hugepages時(shí)要計(jì)算SGA的大小,后面會給出一個(gè)腳本來計(jì)算。
2.其他進(jìn)程無法使用Hugepages的內(nèi)存,所以不要設(shè)置太大,稍稍比SGA大一點(diǎn)保證SGA可以使用到hugepages就好了。
3. PGA不會使用Hugepages的內(nèi)存。所以11g的AMM (Automatic Memory Management,memory_target參數(shù))是不被支持的。
而ASMM(Automatic Shared Memory Management, SGA_target參數(shù))是被支持的,這兩個(gè)不要搞混淆了。
二.設(shè)置HugePages步驟
1.設(shè)置memlock
在/etc/security/limits.conf文件中添加memlock的限制,注意該值略微小于實(shí)際物理內(nèi)存的大小。比如物理內(nèi)存是64GB,可以設(shè)置為如下:
* ?soft ? memlock ? ? 60397977
* ?hard ? memlock ? ?60397977
如果這里的值超過了SGA的需求,也沒有不利的影響。但是,其實(shí)按我的實(shí)驗(yàn),這個(gè)值其實(shí)大于SGA,小于物理內(nèi)存就可以,盡量應(yīng)該靠近SGA。
如果使用了Oracle Linux的oracle--validated包,或者Exadata DB compute會自動配置這個(gè)參數(shù)。
?
2.驗(yàn)證memlock使用如下命令查看參數(shù)值: ?這里,最好是重啟一下服務(wù)器再驗(yàn)證,比較穩(wěn)妥
$ ulimit -l
60397977
?
3.禁用AMM ? ?----注意
如果Oracle是11g以后的版本,那么默認(rèn)創(chuàng)建的實(shí)例會使用Automatic Memory Management (AMM)的特性,
該特性與HugePage不兼容。在設(shè)置HugePage之前需要先禁用AMM。設(shè)置初始化參數(shù)MEMORY_TARGET和MEMORY_MAX_TARGET為0即可。
使用AMM的情況下,所有的SGA內(nèi)存都是在/dev/shm下分配的,因此在分配SGA時(shí)不會使用HugePage。這也是AMM與HugePage不兼容的原因。
另外:默認(rèn)情況下ASM instance也是使用AMM的,但因?yàn)锳SM實(shí)例不需要大SGA,所以對ASM實(shí)例使用HugePages意義不大。
所以,如果我們要使用HugePage,那么就必須先確保沒有設(shè)置MEMORY_TARGET/ MEMORY_MAX_TARGET參數(shù)。
?
4.計(jì)算vm.nr_hugepages的建議值
確保所有的數(shù)據(jù)庫實(shí)例都已經(jīng)啟動,包括ASM實(shí)例。使用hugepages_settings.sh腳本獲取thevm.nr_hugepages內(nèi)核參數(shù)的建議值。
./hugepages_settings.sh ? ? ? ? ?------腳本見下面附件
...(略)
Recommended setting: vm.nr_hugepages = 1536
5.在/etc/sysctl.conf文件中設(shè)置vm.nr_hugepages參數(shù)
vm.nr_hugepages = 1536
設(shè)置好之后,用sysctl -p 命令使其生效
?
6.停止所有實(shí)例,并重啟服務(wù)器
在重啟系統(tǒng)之后,確保所有的數(shù)據(jù)庫實(shí)例都已經(jīng)啟動,使用如下命令檢查HugePage的狀態(tài)
[root@test1 ~]# cat /proc/meminfo |grep -i HugePages
HugePages_Total: ? ?1536
HugePages_Free: ? ? 1500
HugePages_Rsvd: ? ? 1025
-----------------------------------------------------------------------------------------------------------------------------------------------------
附:ORACLE官網(wǎng)提供的計(jì)算vm.nr_hugepages建議值的腳本
注1:該腳本需要在已經(jīng)安裝了oracle的服務(wù)器上執(zhí)行,且保證oracle處于正常運(yùn)行狀態(tài),才會有結(jié)果
注2:腳本中需要用到bc命令,如沒有則安裝yum install bc -y
注3:在CENTOS 7 上測試時(shí)報(bào)錯(cuò):Unrecognized kernel version 3.10. Exiting. 可以將腳本中倒數(shù)第5行的2.6修改為3.10來解決
歡迎關(guān)注我的博客《Jackin's Blog - 知識改變命運(yùn)》學(xué)習(xí)分享更多知識
總結(jié)
以上是生活随笔為你收集整理的Oracle数据库开启Huge Page的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用iconfont.css生成html
- 下一篇: z3 android os,尖Phone