mysql hugepage_Linux配置HugePage
對(duì)于內(nèi)存較大的Oracle數(shù)據(jù)庫服務(wù)器,配置HugePage是很有必要的,下面是配置Huge的步驟:
對(duì)于內(nèi)存較大的Oracle數(shù)據(jù)庫服務(wù)器,配置HugePage是很有必要的,下面是配置Huge的步驟:
我的環(huán)境:
OS:CentOS release 6.4 (Final)
Oracle:11.2.0.4 RAC
Oracle 大內(nèi)存需要配置HugePage
在Oracle 11.2.0.3.0上開啟大頁(HugePages)的詳細(xì)解析
Linux HugePages及MySQL 大頁配置
Linux HugePage 特性
1. 設(shè)置memlock
編輯/etc/security/limits.conf
增加:
* Soft memlock 稍小于RAM值
* hard memlock 稍小于RAM值
Memlock值大于sga沒關(guān)系的,所以我們可以設(shè)置這個(gè)值在我們想要的SGA size和物理內(nèi)存size之間,這個(gè)值得單位是kb。
[root@node1 ~]# grep -i memtot /proc/meminfo
MemTotal: 132250576 kB
我們物理內(nèi)存大小126G,因此我可以設(shè)置memlock為100G。
在2個(gè)節(jié)點(diǎn)設(shè)置:
[root@node1 ~]# tail -2 /etc/security/limits.conf
* soft memlock 104857600
* hard memlock 104857600
設(shè)置完畢后,以O(shè)racle用戶登錄驗(yàn)證:
node2-> ulimit -l
104857600
2. 禁用AMM特性:
禁用AMM特性需要將memory_max_target, memory_max_target2個(gè)參數(shù)重置,而不僅僅是設(shè)置為0,最好的辦法是創(chuàng)建一個(gè)pfile,在pfile中將這2個(gè)參數(shù)刪除,再根據(jù)這個(gè)pfile創(chuàng)建spfile.
主要內(nèi)存參數(shù)設(shè)置為:
node1->
node1-> grep target /tmp/init.ora
*.pga_aggregate_target=1572864000
*.sga_target=64424509440
SQL> create spfile from pfile='/tmp/init.ora';
File created.
SQL> startup force
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
Additional information: -134217728
Additional information: 1
SQL>
出現(xiàn)這個(gè)報(bào)錯(cuò)是因?yàn)閟hmall設(shè)置的太小。
Shmall表示共享內(nèi)存的總大小,單位為pagesize的大小。
根據(jù)我的配置,最大能支持8G的SGA:
node1-> getconf PAGE_SIZE
4096
node1-> cat /proc/sys/kernel/shmall
2097152
修改shmall并重新啟動(dòng)數(shù)據(jù)庫,修改的方法很簡單,編輯/etc/sysctl.conf:
kernel.shmall= 16252928
即可。
修改完畢kernel.shmall,此時(shí)可以重啟數(shù)據(jù)庫。
SQL> startup nomount pfile='/tmp/init.ora';
ORACLE instance started.
Total System Global Area 6.4137E+10 bytes
Fixed Size 2269072 bytes
Variable Size 6979321968 bytes
Database Buffers 5.7043E+10 bytes
Redo Buffers 112762880 bytes
SQL>
SQL>
DB啟動(dòng)后重新創(chuàng)建spfile:
SQL> create spfile='+OCR/sszgdb/spfilesszgdb.ora' from pfile='/tmp/init.ora';
File created.
SQL>
3. 根據(jù)Oracle的腳本計(jì)算hugepage大小(計(jì)算時(shí)要確保Oracle已經(jīng)啟動(dòng)),也可自己計(jì)算:
Press Enter to proceed...
Recommended setting: vm.nr_hugepages = 30739
node1->
4. 根據(jù)腳本的計(jì)算值在2個(gè)節(jié)點(diǎn)編輯/etc/sysctl.conf
加入vm.nr_hugepages = 30739
[root@node2 ~]# grep -i huge /proc/meminfo
AnonHugePages: 602112 kB
HugePages_Total: 30739
HugePages_Free: 30739
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB停止數(shù)據(jù)庫實(shí)例
5. 重啟服務(wù)器,一般重啟服務(wù)器之后DB也自動(dòng)啟動(dòng)了。服務(wù)器和DB重啟后可以通過以下命令驗(yàn)證大頁的使用情況:
grep -i Hugepages /proc/meminfo
此時(shí)查看Oracle的alert日志,也可以發(fā)現(xiàn):
Starting ORACLE instance (normal)
************************ Large Pages Information *******************
Per process system memlock (soft) limit = UNLIMITED
Total Shared Global Region in Large Pages = 58 GB (96%)
Large Pages used by this instance: 29761 (58 GB)
Large Pages unused system wide = 24 (48 MB)
Large Pages configured system wide = 30739 (60 GB)
Large Page size = 2048 KB
RECOMMENDATION:
Total System Global Area size is 60 GB. For optimal performance,
prior to the next instance restart:
1. Increase the number of unused large pages by
at least 936 (page size 2048 KB, total size 1872 MB) system wide to
get 100% of the System Global Area allocated with large pages
可以發(fā)現(xiàn)sga并沒有全部放在大頁里,這樣可能對(duì)性能帶來負(fù)面影響,,Oracle建議我們再加入936個(gè)大頁,可見Oracle的大頁腳本計(jì)算并不準(zhǔn)確,我們需要增加大頁數(shù)量,并設(shè)置參數(shù)Use_large_pages=only,該參數(shù)確保Oracle的共享內(nèi)存全部使用大頁。
更多詳情見請繼續(xù)閱讀下一頁的精彩內(nèi)容:
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!
總結(jié)
以上是生活随笔為你收集整理的mysql hugepage_Linux配置HugePage的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WIM文件怎么安装系统Win10
- 下一篇: mysql hugepage_huge