免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2207 | 回复: 0
打印 上一主题 下一主题

在Solaris10中为Oracle配置系统资源 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-29 17:04 |只看该作者 |倒序浏览

在Solaris10中为Oracle配置系统资源
       文/呼必斯哈拉图
摘要:
      在Solaris10这个版本中的系统资源配置管理较之前的版本有较大的变化。诸如Oracle等,在安装、运行、优化等过程中需要对系统资源(内核参数,信号量,内存空间,CPU时间等)进行调整和设置后才能运行良好的的大型应用来说,熟悉Solaris10的这种新的资源管理方法和机制是非常有必要的。 本文将介绍在Oracle的安装、使用过程中用到的一些资源配置的命令和方法。以便为更多的Oracle和其它类似情况的用户提供参考。
一、    预备知识
A.           在Solaris10中仍然可以在/etc/system中设置需要的系统资源。但是有很多以前可以用在此文件中进行设置的参数在Solaris10中已经废止。如图:


其中带有*号的项目仍然可以在/etc/system中进行设置。但是其默认值有所变化。见下表:

资源控制标识
废止选项
旧默认值
最大值
新默认值
process.max-msg-qbytes
msginfo_msgmnb
4096
ULONG_MAX
65536
process.max-msg-messages
msginfo_msgtql
40
UINT_MAX
8192
process.max-sem-ops
seminfo_semopm
10
INT_MAX
512
process.max-sem-nsems
seminfo_semmsl
25
SHRT_MAX
512
project.max-sem-ids
seminfo_semmni
10
224
128
project.max-shm-memory
shminfo_shmmax
0x800000
UINT64_MAX
1/4 物理内存
project.max-shm-ids
shminfo_shmmni
100
224
128
project.max-msg-ids
msginfo_msgmni
50
224
128
注意:写在/etc/system文件中的配置只有重新启动后才能生效。
B.           可以用项目数据库(project database)对单个进程或单个项目进行资源分配的设置。项目数据库的文件是/etc/project。其格式如下:projname:projid:comment:user-list:group-list:attributes
其中:projname------给定的项目名称
      Projid--------给定的项目标识符
      Comment-------项目说明
      User-list-----用户列表(表明此用户使用此设置)
      Group-list----组列表(表明此用户组的用户使用此设置)Attributes----设定属性(是key=value pair)
   *更多详细信息请查阅参考资料1。
C.           用projects,projadd,projmod,projdel,prctl进行系统资源的配置。
其中:
project用于查看已经配置的project参数
projadd 用于创建project
projmod 用于修改project中的属性值
projdel 用于删除project
prctl 用于动态设置系统资源配置(增,删,改)
      注意:用proj*设置的值都会自动写入到/etc/project文件里。而
prctl设置的值在系统重新启动后就会丢失(需要重新设置)。关于proj*命令的用法请看手册(例如:#man projadd).
二、    Oracle中系统资源的调整
A.           用proj系列命令来对Oracle安装时的参数进行设置管理
在Oracle安装时下表中的这些参数是需要进行设置的。下面就具体的在Solaris10下面一步一步的设置这些值。这些值要root用户或者有相同权限的用户进行设置。(假设已经建好了一个oracle用户)
semsys:seminfo_semmni
project.max-sem-ids
100
semsys:seminfo_semmsl
process.max-sem-nsems
256
shmsys:shminfo_shmmax
project.max-shm-memory
4294967295
shmsys:shminfo_shmni
project.max-shm-ids
100
A1 验证项目信息
#more /etc/project           看一下目前已经存在的项目

可以看到并没有针对oracle用户设置project。这样oracle的默认project就是default:3了。通过下面的几个命令验证一下吧!
#su – oracle
#projects                显示当前用户参加的projects
屏幕回显为:default
也可以用#id –p 来显示当前用户的默认project。此时屏幕回显为
uid=102(oracle)gid=(oinstall)projid=3(default)
#exit                    返回到root用户
A.2oracle用户创建新项目
#projadd –U oracle –p 1234 oracle_param
用户A.1中的方法查看就可以看到oracle用户已经多了一个oracle_param的project。可是其默认的project还是default:3。
#projadd –U oracle –p 1233 –c “oracle parameters” user.oracle
再次用上面的方法验证,这次不但多了一个user.oracle project而且oracle用户的默认project也变成了user.oracle了。实际上这两个project我们只用一个就可以了。用
#projdel oracle_param   将这个不用的project删除掉(如果愿意可以用前面的方式进行验证)。
提示:-U 指定用户,-p指定项目的识别号,-c 用于项目信息说明
A.2在项目中添加属性设置
   #projmod –a –K “project.max-shm-memory=(priv,4294967295,deny)” user.oracle
       #more /etc/project看一下这个值是否已经保存
到/etc/project中

    用相同的方法设置余下的属性
#projmod –a –K “project.max-sem-ids =(priv,100,deny)” user.oracle
#projmod –a –K “process.max-sem-nsems =(priv,256,deny)” user.oracle
    #projmod –a –K “project.max-shm-ids =(priv,100,deny)” user.oracl



提示:-a 表示增加,-r表示删除,-K 代表key,用于具体属性的设置。可以将将几个参数一起设置,例如:#projmod –a –K “…” –K “…”。用project方式设置的这些选项在系统重新启动后也不会丢失(只要进入到oracle用户这些设置就生效了)。
B.           prctl来进行参数的调整
  与Project方式不同,prctl是一个动态设置系统资源的方式。只有在当前的系统生效,在系统重新启动后这些设置将会丢失。下面用一个实际的例子来看一下怎么用prctl来设置和查看设定的值。
B1查看已经设定好的值
     有两种方式,分别如下(例如要查看 max-shm-memory)先到oracle用户(su - oracle):
提示:用 #prctl $$ 命令可以查看所有的设置。
     #prctl –n project.max-shm-memory $$
     

    #prctl –n project.max-shm-memory –i project user.oracle



B2修改已经设定好的值
     下面试着用prctl来修改一下project.max-shm-memory的值变为6G,首先开两个终端窗口,第一个窗口下进入到oracle用户下,第二个窗口需要到root方式下(因为权限限制)。之后在第二个窗口中执行
     #prctl –n project.max-shm-memory –r –v 6.00G –i project user.oracle
在第一个窗口中用B.1中提供的方法查看发现当前的project.max-shm-memory值确实已经变成了6G了。

在此窗口中用#more /etc/project 查看发现此文件中project.max-shm-memory值仍然是4G。还是在第一个窗口中先用#exit(如果进入了bash,那么还要一次exit)命令返回到root,之后再用su – oracle进入到oracle用户,使用同样的方法检查发现用prctl设置的新值已经丢失了。
      Prctl命令还可以创建和删除一个系统资源设置属性。更多prctl命令的使用方法请使用#man prctl进行查看。
三、    参考资料:
     
System Administration Guide: Solaris Containers-Resource Management and Solaris Zones
     
Solaris Tunable Parameters



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15296/showart_92426.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP