Linux下增大可打开文件描述符的最大数

字体大小: 中小 标准 ->行高大小: 标准

在安装Oracle Grid Infrastructure检查约束时遇到一个错误,大体是说当前可打开的文件描述符的最大数为1024,而要求是65536。

于是在gird用户下执行ulimit -a, 显示可打开的最大文件数为1024,这是默认值;执行ulimit -n 65536不允许修改,转到root下面执行ulimit -n 65536,执行ulimit -a 显示为65536,在grid用户下执行依然为1024。当时想到用sudo的方式执行,对gird用户赋予所有权限,执行ulimit -n 65536依然报错。后来想起在配置/etc/profile文件里,对oracle有ulimit -n 65536的命令,如下:

  1. if [ $USER = "oracle" ]; then           if [ $SHELL = "/bin/ksh" ]; then  
  2.               ulimit -p 16384                 ulimit -n 65536  
  3.         else                 ulimit -u 16384 -n 65536  
  4.         fi   umask 022  
  5. fi  

添加grid用户后,source /etc/profile,

  1. if [ $USER = "oracle" ] || [ $USER = "grid" ]  ; then           if [ $SHELL = "/bin/ksh" ]; then  
  2.               ulimit -p 16384                 ulimit -n 65536  
  3.         else                 ulimit -u 16384 -n 65536  
  4.         fi   umask 022  
  5. fi  

在grid执行ulimit -a依然为1024,后来检查安装步骤发现忘了在/etc/security/limits中添加grid用户了,添加下面即可:

  1. grid              soft    nproc   2047   grid              hard    nproc   16384  
  2. grid              soft    nofile  1024   grid              hard    nofile  65536  

看来是作用域的问题,增大文件描述符,可参考:通过 ulimit 改善系统性能 http://www.linuxidc.com/Linux/2011-03/33121.htm

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/57685.html