柔情似水 发表于 2015-1-14 20:29:06

带来一篇Oracle经由过程设置年夜内存页办理利用swap分区成绩

如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!在一个旧事网站的背景数据库的监控过程当中,常常呈现数据库入手下手利用互换分区的情形,并进而招致全部使用体系呼应十分迟缓,不克不及够供应办事。该办事器的内存为8G,SGA设置为4G,PGA设置为1G。操纵体系为64位。
依照事理,即便内存产生不敷的情形,应当是磁盘读写变得加倍剧烈,而不是入手下手频仍的利用swap互换分区,沿着这个思绪,寻觅相干材料,发明假如设置年夜内存页能够强行把SGA锁定到内存中,年夜内存页是不同意被互换的。而同时相干材料也申明,在内存对照年夜的情形下,当体系内存为8G以上时,假如不接纳年夜内存页(2M),那末办理这些内存所必要的内存也会急剧增添。关于体系可使用下令cat/proc/meminf检察PageTables项,因为没有接纳年夜内存页办理而分外发生的内存损耗。

详细操纵步调:
1、检察体系内存
cat/proc/meminfo|grepMemTotal
MemTotal:8177384kB
2、检察SGA和PGA
SQL>showparametersga;
NAMETYPEVALUE
-----------------------------------------------------------------------------
lock_sgabooleanTRUE
pre_page_sgabooleanFALSE
sga_max_sizebiginteger4G
sga_targetbiginteger4G
SQL>showparameterpga;
NAMETYPEVALUE
-----------------------------------------------------------------------------
pga_aggregate_targetbiginteger1G
4、检察没有利用年夜内存页时的情形
more/proc/meminfo|grep-iHugePage
HugePages_Total:0
HugePages_Free:0
HugePages_Rsvd:0
Hugepagesize:0
5、设置HugePagesPool巨细
vi/etc/sysctl.conf
在最初增加以下的行www.ckuyun.com
vm.nr_hugepages=2300#(这个值应年夜于或即是SGA/2m,即4*1024m/2m)
6、设置oracle用户最年夜线程数、文件句柄和最年夜能锁定的内存
vi/etc/security/limits.conf
在最初增加以下的行

oraclesoftnproc2047
oraclehardnproc16384
oraclesoftnofile1024
oraclehardnofile65536
oraclesoftmemlock5194304#(这里是以KB为单元,一样平常年夜于即是SGA)
oraclehardmemlock5194304
7、使设置失效
sysctl-p
8、重启体系及启动oracle实例,上面是我们利用年夜内存页后的了局,
看到由于办理内存页而分外必要的内存(PageTables)为55M
cat/proc/meminfo
MemTotal:8177384kB
MemFree:950472kB
Buffers:16824kB
Cached:1365136kB
SwapCached:170652kB
Active:1274416kB
Inactive:1082156kB
HighTotal:0kB
HighFree:0kB
LowTotal:8177384kB
LowFree:950472kB
SwapTotal:10420208kB
SwapFree:10056116kB
Dirty:148kB
Writeback:0kB
AnonPages:982112kB
Mapped:52944kB
Slab:64568kB
PageTables:55580kB
NFS_Unstable:0kB
Bounce:0kB
CommitLimit:12153700kB
Committed_AS:2584964kB
VmallocTotal:34359738367kB
VmallocUsed:267584kB
VmallocChunk:34359470407kB
HugePages_Total:2300
HugePages_Free:264
HugePages_Rsvd:13
Hugepagesize:2048kB
如上因为我们的体系数据库SGA为4G,因而设置了2300个年夜内存页,如许可以供应充足多的年夜内存页供数据库的SGA利用。设置年夜内存的一个别的优点是能够分明的看到体系利用内存的情形,不然Oracle会占用buffer及cache内存,很难盘算体系空余的实践内存数目。
从内存meminfo信息中能够看出,2300个年夜内存页,被利用了2300-264=2036个(这个历程在启动数据库的时分是静态变更的,直到SGA用满)。
在设置的过程当中,发明我们的体系内核还不撑持年夜内存页,设置后看到HugePage_Total为0,申明设置有效,必要装置新的内核。年夜内存页的设置能够参考相干文档。
当设置完成后,同时设置lock_sga为true,Oracle数据库办事器不再产生大批利用swap分区的情形了,不再呈现功能妨碍。


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!

小魔女 发表于 2015-1-16 18:40:55

带来一篇Oracle经由过程设置年夜内存页办理利用swap分区成绩

如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。

柔情似水 发表于 2015-2-2 12:42:13

工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。

谁可相欹 发表于 2015-2-7 23:39:55

和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。

因胸联盟 发表于 2015-2-24 05:53:22

当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。

仓酷云 发表于 2015-3-7 13:18:22

熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考:

再现理想 发表于 2015-3-15 09:54:23

期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?

小女巫 发表于 2015-3-22 01:10:44

Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
页: [1]
查看完整版本: 带来一篇Oracle经由过程设置年夜内存页办理利用swap分区成绩