科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道在linux平台用hugetlbfs模拟lock_sga

在linux平台用hugetlbfs模拟lock_sga

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在linux平台不支持lock_sga参数。如果设定lock_sga=true,启动时将报ORA-27126错误。下面是总结的使用hugetlbfs来模拟lock_sga的步骤。

作者:changelive 来源:赛迪网技术社区 2007年9月5日

关键字: 数据库 lock_sga hugetlbfs Linux

  • 评论
  • 分享微博
  • 分享邮件
在linux平台不支持lock_sga参数。如果设定lock_sga=true,启动时将报ORA-27126错误。 tNsI QsN  
83Oh34 8#  
下面是总结的使用hugetlbfs来模拟lock_sga的步骤。 `jSdfX\  
q< ~ _2I+  
1.查看目前使用的SGA fiSPA.rc$  
sqlplus / as sysdba _Dr1eEj%  
!;K%)  
SQL*Plus: Release 10.1.0.3.0 - Production on ??y 4? 14 15:51:14 2007 I_ Ry7>L  
`L4N$#*n  
Copyright (c) 1982, 2004, Oracle. All rights reserved. /Ct)t 77w  
mRn\BF9@  
yT3VfZ1  
Connected to: P65WpUi  
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production R*{Y*$  
With the Partitioning, OLAP and Data Mining options } &ON1+m  
Q*2*jNq\ f  
SQL> show sga; ide'R  
GP_c!nY1  
Total System Global Area 524288000 bytes |27"ZxeY  
Fixed Size 1322760 bytes b{*5$hb  
Variable Size 123982072 bytes h&Lb 1^  
Database Buffers 398458880 bytes : n]Si!  
Redo Buffers 524288 bytes VpP-%F0;?w  
SQL> show parameter sga; Tj`{.T 4  
$:yi@m+fZ  
NAME TYPE VALUE :.7Pu^:  
------------------------------------ ----------- ------------------------------ *[CC/")  
lock_sga boolean FALSE X%t7<3Rx~  
pre_page_sga boolean FALSE E~{P|a4  
sga_max_size big integer 500M S)oO9D  
sga_target big integer 500M XS`tiIna  
SQL> nX'DU0= 0q  
e-)B<-byP+  
2.换算成2MB的页数, 500M/2M=250 O: owTq  
"|p:X{$  
3.设定sysctl.conf和fstab fRp<\V*  
在/etc/sysctl.conf添加一行 2DC,TyaP9n  
#比SGA_MAX_SIZE最少要多加一页 S 9Hqd835  
vm.nr_hugepages = 260 PUPJxalX%  
fJ4cX  
查看oracle的id和gid 9ckA$:= Y  
#id oracle ZhtIX>{9  
uid=501(oracle) gid=502(dba) groups=502(dba) tKU"9eQ0  
在/etc/fstab里添加一行 zI8Omit  
hugetlbfs /dev/hugetlbfs hugetlbfs mode=0777,uid=501,gid=502 0 0 w'LlJ|  
=rc]f2H  
#mkdir /dev/hugetlbfs =;h*6]FuaB  
#sysctl -p j8< mWEo  
#mount -a krAqR8x~f|  
#grep Huge /proc/meminfo %48ecd._  
HugePages_Total: 260 ]vyc8U)!A  
HugePages_Free: 260 4]=@X_  
Hugepagesize: 2048 kB zi[r)7Dx  
注:如果内存已经被占用则需要重起机器才能分配。 .@]0f$E,.  
#mount EVJz&$wm  
hugetlbfs on /dev/hugetlbfs type hugetlbfs (rw,mode=0777,uid=501,gid=502) 4/~rVC5  
注:每次重新启动都要执行一次:mkdir /dev/hugetlbfs;mount -a。可以加到/etc/rc.local里自动执行 >g7T1f3P3b  
MO,l3sH5  
4.设定/etc/security/limits.conf文件 YfAk#pRF  
添加两行 D-DC4}9O  
oracle soft memlock 1048576 QE8QV?JX  
oracle hard memlock 1048576 c`F#,iu7  
以K为单位,必须大于sga_max_size,这里设定为1G yI9y" bC m  
#su - oracle <f&tFV  
检查limits是否正确 w]e g&~xJ  
$ulimit -l Q-o[cfe&  
1048576 <;|c|;'  
Cz2me4A|  
5.重新启动数据库 OTP4{)F/  
$sqlplus / as sysdba F>sI3*J*  
SQL>shutdown immediate; e=X6I{$  
SQL>startup; 1(cRC%u'`  
SQL>! grep Huge /proc/meminfo `-P|=x}  
HugePages_Total: 260 )kD:\  
HugePages_Free: 24 eJJyT  
Hugepagesize: 2048 kB ?5Bnq-*k}  
n;]=x8ow  
以上在10.1.0.3 64bit on RHEL4U3 和 10.1.0.3 64bit on FC5上测试通过 U8/"j,Q(S  
.D ]M'M`o  
说明: s+_[V98we  
2M的页不要分配超过sga_max_size太多,会造成内存的浪费。 f8&b~Za  
经过测试,对使用文件系统数据库性能有10%-20%的提升,对使用裸设备或ASM的数据库影响较小。 >f2A]&E\  
在正式环境已经运行一周,暂时没有发现BUG. <gC`?%  
不同平台或不同数据库版本可能存在BUG,可以在测试环境先测试再使用。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章