歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

linux+weblogic Too many open files解決方案

逐個排查

1、linux服務器: ulimit -a 檢查 open files 設置(建議65535:ulimit -n 65535)

2、weblogic服務器:

在***\wlserver_10.3\common\bin\目錄下找到commEnv.sh,修改其resetFd()函數的ulimit -n 後面的數值,根據操作系統不同系統適量調大,調整後的該函數應為

resetFd() {

if [ ! -n "`uname -s |grep -i cygwin || uname -s |grep -i windows_nt || \

uname -s |grep -i HP-UX`" ]

then

maxfiles=`ulimit -H -n`

if [ "$?" = "0" -a `expr ${maxfiles} : '[0-9][0-9]*$'` -eq 0 ]; then

ulimit -n 65535fi

fi

3、代碼:

通過一個隊列來控制並發量,如果當前活躍(指調用發起但未執行回調)的異步調用量小於限定值,從隊列中取出執行。

如果活躍調用達到限定值,調用暫時存放在隊列中。

每個異步調用結束時,從隊列中取出新的異步調用執行。

bagpipe的API主要暴露了一個push()方法和一個full事件,示例代碼如下:

var Bagpipe = require('bagpipe');

// 設定最大並發數為10

var bagpipe = new Bagpipe(10);

for (var i=0; i<100; i++) {

bagpipe.push(async, function () {

// 異步回調執行

});

}

bagpipe.on('full', function (length) {

console.warn('隊列擁堵,目前隊列長度為:' + length);

});

4、如果還不行再檢查這裡/etc/security/limits.conf

加入:* - nofile 65535退出登陸

再ssh進來就效了

5、如果還有其他檢查頂,請友人補充,謝謝。

Copyright © Linux教程網 All Rights Reserved