全部博文(389)
分类: Oracle
2014-01-06 00:55:22
配置Timesten使用HugePage
我们知道随着服务器内存的增加,linux的内存查效率会变低,在使用timesten内存数据的时候,这一点
变得更加明显。好消息是timesten支持使用largepage来减少查的效率低下的问题
环境:RHEL 5.5 ,Timesten 11.2.2.4.0
[root@tt ~]# getconf PAGE_SIZE
4096
默认的linux使用的page 大小是4K,而largepage的每个page是2048K
[root@tt ~]# cat /proc/meminfo | grep Huge
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
在/etc/sysctl.conf定义系统中的hugepage的页数量
vm.nr_hugepages=350 --定义了600M
vm.hugetlb_shm_group=500 --定义了timesten用户的所在group id
[root@tt ~]# sysctl -p --生效,建议还是重启,有时候由于系统没有空闲内存,hugepage不一定分配成功
[timesten@tt ~]$ cat /proc/meminfo | grep Huge
HugePages_Total: 350
HugePages_Free: 350
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
修改用户的memlock限制,由于largepage不能换页,所以需要lock在物理内存中
[root@tt ~]# vi /etc/security/limits.conf
timesten soft memlock 614400
timesten hard memlock 614400
在$TT/info/ttendaemon.options增加使用large page的参数
-linuxlargepagealignment 2 --2M,对应hagepagesize
重启ttdaemon,并加载数据库
[timesten@tt ~]$ ttdaemonadmin -start
TimesTen Daemon startup OK.
[timesten@tt ~]$ ttisql "DSN=test"
Copyright (c) 1996-2011, Oracle. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "DSN=test";
Connection successful: DSN=test;UID=timesten;DataStore=/home/timesten/abc/bb;DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;DRIVER=/home/timesten/TimesTen/tt1122/lib/libtten.so;MemoryLock=4;PermSize=300;TempSize=200;TypeMode=0;PLSQL_TIMEOUT=300;
(Default setting AutoCommit=1)
在tterror.logs中有类似的提示,表明系统使用了large page,例子中使用了292个page
00:08:18.50 Info: : 3091: Shared segment created using 292 large pages
00:08:18.51 Info: : 3091: Locked shared segment, KEY 0x4f0002a7 ID 3080196
[root@tt ~]# cat /proc/meminfo | grep Huge
HugePages_Total: 350
HugePages_Free: 306
HugePages_Rsvd: 264
Hugepagesize: 2048 kB
表示total不等于free表时largepage已经被使用.但是total-free等于44个,原是是和largepage的分配机制有关.