Solaris的资源管理
来源:互联网 发布:mac上怎么删除文件 编辑:程序博客网 时间:2024/04/30 05:44
为了确保一些大型应用程序(如Oracle)运行良好,需要为其分配合理的系统资源,如:内存空间、信号灯集、CPU时间等,这些系统资源的分配在以往的系统中通常通过可调的内核参数在”/etc/system”文件中设定, 这种方式需要重新启动机器才能使修改生效,但Solaris 10版本中的系统资源配置管理较之前的版本有较大的变化, 在Solaris10中保留了这种传统做法,另外还提供了另一种动态设置参数的方式,不需要重新启动OS就可以修改这些系统限制,以下Solaris 10中资源配置管理的例子都是基于Oracle的应用.Oracle是一个由多进程组成的程序, 不同的进程之间利用不同的IPC方式实现不同的功能,IPC需要占用系统开销,对Oracle应用程序的资源限制实际上是设定IPC所能占用的系统开销(有关IPC的介绍,请参考其它书籍).
基于项目调整
项目(project)是Solaris Resource Management(资源管理)中的基本单位。通过几个系统命令(projects,projadd,projmod,projdel)对系统资源进行控制. 基于项目方式设置的资源控制在系统重新启动后也不会丢失.本节将以Oracle在Solaris10上进行安装为例,以project为单位为Oracle用户分配所有与之相关的资源。
step1. 为oracle用户创建新的项目.
# id –p oracle
uid=605(oracle) gid=601(dba) projid=3(default)
# projadd -U oracle -p 1233 -c "oracle parameters setting" user.oracle
其中:
-U: 指定应用到该项目的用户列表.
-c: 项目的描述信息.
-p: 非负整数,项目ID号.
# id –p oracle
uid=605(oracle) gid=601(dba) projid=1233(user.oracle)
step2. 为项目添加属性.
# projmod -a -K "project.max-shm-memory=(priv,17179869184,deny)" user.oracle (设置最大共享内存为12G,系统物理内存为32G,单位为字节.)
# projmod -a -K "project.max-sem-ids=(priv,2000,deny)" user.oracle
# projmod -a -K "process.max-sem-nsems=(priv,2048,deny)" user.oracle
# projmod -a -K "project.max-shm-ids=(priv,256,deny)" user.oracle
其中:
-a: 表示将属性追加到该项目数据库中(-r为删除).
-K: 代表key,用于指定具体的属性,可以一次设置多个属性值,格式为:
-K key1=value1 -K "key2=(value2a),(value2b)"
step3. 查看项目当前的设定值.
# prctl $$ (查看所有项目的属性)
# prctl -n project.max-shm-memory $$ (查看当前用户的属性值)
process: 16830: -sh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 7.81GB - deny -
system 16.0EB max deny -
root用户默认可用的共享内存为7.81GB,约为物理内存的1/4.
# prctl -n project.max-shm-memory -i project user.oracle
project: 1233: user.oracle
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 12.0GB - deny -
system 16.0EB max deny在运行时动态设定
除了基于Project方式来控制系统的资源之外,系统还通过”prctl”工具提供另一种动态设定资源的方法,但经prctl工具设置的系统资源限制只有在当前的系统生效,在系统重新启动后这些设置将会丢失.
如在系统运行时将oracle用户最大能使用的共享内存由12GB改为10GB:
# prctl -n project.max-shm-memory -r -v 10g -i project user.oracle
-r: 替代数据库中该项目已有的属性值.
-v: 指定新的目标值.
# prctl -n project.max-shm-memory -i project user.oracle
project: 1233: user.oracle
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 10.0GB - deny -
system 16.0EB max deny- Solaris的资源管理
- [Solaris]动态资源管理
- Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理
- 资源管理的重要性
- CCommand的资源管理方式
- 游戏引擎的资源管理
- 游戏引擎的资源管理
- gp的资源管理队列
- Linux 容器的资源管理
- unity AssetBundle的资源管理
- 资源管理概念的形象化
- Unity3D的资源管理
- OPNET的资源管理目录
- 深挖unity的资源管理
- Qt的资源管理系统
- linux的文件资源管理
- 资源管理
- 资源管理
- SQL数据类型-UNIQUEIDENTIFIER
- 在C#中使用自定义消息
- 我体会到的 web 应用
- 使用 GUID 值来作为数据库行标识
- JNI unicode jstring to char*
- Solaris的资源管理
- ASP学习笔记(15)--Recordset对象
- 关于Eclipse的安装与使用问题
- jQuery使用心得
- 病了
- window下用cygwin做嵌入式开发
- 整数和字节数组之间的转换算法
- 吊古戰場文 [唐]李華
- 获取.NET版本信息。