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