首页 > 代码库 > solaris10使用projadd进行资源限制的添加(seminfo_*)

solaris10使用projadd进行资源限制的添加(seminfo_*)

在安装oracle时,需要进行资源限制配置:

noexec_user_stack=1
semsys:seminfo_semmni=100
semsys:seminfo_semmns=1024
semsys:seminfo_semmsl=256
semsys:seminfo_semvmx=32767
shmsys:shminfo_shmmax=4294967295
shmsys:shminfo_shmmni=100
rlim_fd_max=65536
rlim_fd_cur=4096
maxuprc=16384
max_nprocs=3000



使用project(立即生效,永久)

project是Solaris10新增加的特性,可以通过设置project参数为一个用户或一组用户设置参数值。设置后可立即生效。
‘但是,root用户的结果只受/etc/system里参数的影响,而不受project user.oracle影响,root用户不属于此project. ‘
以下是设置示例:



bash-3.2# :/ #>projadd user.oracle  (创建project user.oracle) 
bash-3.2# :/ #>id -p oracle 
uid=100(oracle) gid=1(other) projid=100(user.oracle)   (oracle用户属于project user.oracle)
bash-3.2# :/ #>projmod -a -K "process.max-file-descriptor=(basic,65534,deny)" user.oracle 
bash-3.2# :/ #>projmod -a -K "process.max-file-descriptor=(priv,65535,deny)" user.oracle 
bash-3.2# :/ #>grep ‘user.oracle‘ /etc/project 
user.oracle:100::::process.max-file-descriptor=(basic,65534,deny),(priv,65535,deny)
设置basic和privilege值分别为65534和65535,不能越过/etc/system中的最大硬限制65535;
bash-3.2# :/ #>tail -2 /etc/system 
set rlim_fd_cur=1024 
set rlim_fd_max=65535
bash-3.2# plimit $$
13110:  bash
   resource              current         maximum
  time(seconds)         unlimited       unlimited
  file(blocks)          unlimited       unlimited
  data(kbytes)          unlimited       unlimited
  stack(kbytes)         10240           unlimited
  coredump(blocks)      unlimited       unlimited
  nofiles(descriptors)  256             65536
  vmemory(kbytes)       unlimited       unlimited
bash-3.2# 


root用户的结果只受/etc/system里参数的影响,而不受project user.oracle影响,root用户不属于此project. 
bash-3.2# su - oracle 
Oracle Corporation      SunOS 5.10      Generic Patch   January 2005
-sh: TEMP=/tmp: is not an identifier
$ bash
bash-3.2$ plimit $$ 
14704:  bash
   resource              current         maximum
  time(seconds)         unlimited       unlimited
  file(blocks)          unlimited       unlimited
  data(kbytes)          unlimited       unlimited
  stack(kbytes)         10240           unlimited
  coredump(blocks)      unlimited       unlimited
  nofiles(descriptors)  65534           65535
  vmemory(kbytes)       unlimited       unlimited
bash-3.2$ 




--同样如上进行需要修改其他参数:
noexec_user_stack=1
semsys:seminfo_semmni=100
semsys:seminfo_semmns=1024
semsys:seminfo_semmsl=256
semsys:seminfo_semvmx=32767
shmsys:shminfo_shmmax=4294967295
shmsys:shminfo_shmmni=100
rlim_fd_max=65536
rlim_fd_cur=4096
maxuprc=16384
max_nprocs=3000


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-memory=(priv,4294967295,deny)" user.oracle
projmod -a -K  "project.max-shm-ids=(priv,100,deny)" user.oracle

solaris10使用projadd进行资源限制的添加(seminfo_*)