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的命令,如下:

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

添加grid用戶後,source /etc/profile,

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

在grid執行ulimit -a依然爲1024,後來檢查安裝步驟發現忘了在/etc/security/limits中添加grid用戶了,添加下面即可:

grid              soft    nproc   2047
grid              hard    nproc   16384
grid              soft    nofile  1024
grid              hard    nofile  65536

 

看來是作用域的問題,增大文件描述符,可參考下面兩篇文章:

通過 ulimit 改善系統性能

http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/

Linux: Increasing the number of open file descriptors

http://www.cs.uwaterloo.ca/~brecht/servers/openfiles.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章