weblogic日誌報錯too many open files
很久以前的問題了:
1.日誌報錯too many open files;
2.診斷思路:檢視該程式實際開啟的檔案數是多少?用lsof命令檢視domain對應的程式號;
lsof -p 2744 |wc -l檢視總的大小;以及可以看到具體開啟的那些檔案;
3.檢查當前的系統配置
ulimit -a
但是剛才做的一切都顯示配置沒有問題,但是程式開啟了1024個檔案,卻報了開啟檔案個數臺多的問題;
在網上找到以下的文章,貌似該問題的原因:
weblogic Too many open files 問題
java.io.FileNotFoundException: /app/rms/release/web/update/Rmt_krUpfiles.ini (Too many open files)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.
at weblogic.utils.classloaders.FileSource.getInputStream(FileSource.java(Compiled Code))
at weblogic.servlet.FileServlet.sendFile(FileServlet.java(Compiled Code))
at weblogic.servlet.FileServlet.service(FileServlet.java(Compiled Code))
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java(Inlined Compiled Code))
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java(Compiled Code))
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java(Inlined Compiled Code))
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java(Compiled Code))
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java(Compiled Code))
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java(Inlined Compiled Code))
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java(Compiled Code))
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java(Compiled Code))
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java(Compiled Code))
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java(Compiled Code))
>
####<2008-7-1 10時15分05秒 GMT+08:00>
####<2008-7-1 10時15分06秒 GMT+08:00>
####<2008-7-1 10時15分06秒 GMT+08:00>
####<2008-7-1 10時15分07秒 GMT+08:00>
####<2008-7-1 10時15分08秒 GMT+08:00>
####<2008-7-1 10時15分08秒 GMT+08:00>
####<2008-7-1 10時15分09秒 GMT+08:00>
####<2008-7-1 10時15分09秒 GMT+08:00>
####<2008-7-1 10時15分09秒 GMT+08:00>
####<2008-7-1 10時15分09秒 GMT+08:00>
(Too many open files)
這個問題經過分析,可能是系統開啟的檔案數超過最大限制造成的.
透過看bea最大開啟檔案數限制,發現作業系統沒有限制(最好修改作業系統也修改weblogic的配置).
[bea@sczyapp1]/bea #ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 4194304
memory(kbytes) unlimited
coredump(blocks) 2097151
nofiles(descriptors) unlimited
[bea@sczyapp1]/bea #
------------------------------------
透過查詢bea設定發現
/bea/weblogic81/common/bin/commEnv.sh中,設定了
resetFd
所以bea的最大開啟檔案數為預設的 1024
此問題只要註釋掉resetFd,並重啟伺服器就可以解決.
系統預設的shell中寫的是小與,將shell中的邏輯修改一下也可以(就是修改 /bea/weblogic81/common/bin/commEnv.sh 指令碼)
檢查domain的啟動指令碼,發現domain啟動時首先要執行以下這個指令碼,確定一些記憶體和系統引數配置;
由於記憶體引數在啟動指令碼中單獨給出,所以才沒有暴露出問題。但是沒有單獨給出開啟檔案的限制,所以需要在那個指令碼當中修改;
不要啟用那個過程設定開啟檔案的限制;
對那一段的結果進行測試,結果印證了此時的限制是1024
#!/bin/sh
echo 'test'
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 "${maxfiles}" != 1024 ]; then
if [ `expr ${maxfiles} : '[0-9][0-9]*$'` -eq 0 ]; then
maxfiles=1025
echo "set 1025"
fi
if [ "${maxfiles}" -lt 1024 ]; then
ulimit -n ${maxfiles}
echo "set to unknow"
else
ulimit -n 1024
echo "set to 1024"
fi
fi
fi
}
resetFd
> sh test1.sh
test
set to 1024
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/288166/viewspace-705050/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Too many open files報錯處理
- 解決WebLogic中Too many open files異常Web
- nginx 報錯 accept4 () failed (24: Too many open files)NginxAI
- Too many open files in system處理
- Nginx報錯: "Too many open files accept" 和 "could not build the server_names_hash"NginxUIServer
- docker中使用systemctl命令時報Too many open files錯誤Docker
- titan-hadoop “Too many open files”修正Hadoop
- Ubuntu 解決 Too many open files 問題Ubuntu
- Weblogic BEA-002616 java.io.IOException: Too many open filesWebJavaException
- mysql備份提示 too many open files Errornumber 24MySqlError
- 解決 Too many symbol filesSymbol
- 從原始碼角度談談open_files_limit的生成邏輯及"Too many open files"的解決思路原始碼MIT
- Too many files with unapproved license異常APP
- Linux - 修改檔案控制程式碼數(Too many open files 異常)Linux
- 持續迴圈讀檔案,導致的too many open files如何解決
- React報錯之Too many re-rendersReact
- 超過最大檔案數—Linux-x86_64 Error: 23: Too many open files in systemLinuxError
- linux Too Many Files 問題檢視和解決方法Linux
- mysql報錯Changed limits: max_open_files: 5000MySqlMIT
- aix Oracle 使用者報錯:Too many processes already existAIOracle
- too many open files 與程式網路連線資料檢視[轉載自北風之神巨佬的文章]
- Weblogic日誌Web
- MySQL: Too many connectionsMySql
- 解決Mysql錯誤[1040]Too many connectionsMySql
- hpux的報錯日誌UX
- MySQL問題處理——1040錯誤Too many connectionsMySql
- nginx+phpfpm日誌報錯資訊NginxPHP
- MySQL ERROR 1040: Too many connectionsMySqlError
- 【MySQL】Too many connections 案例一則MySql
- [HP-UX] cannot fork: too many processesUX
- NETAPP - LOGIN TOO MANY USERSAPP
- when tag object too many, performance very lowObjectORM
- session_max_open_filesSession
- ssh或scp到遠端主機時報錯:Too many authentication failures for oracleAIOracle
- windows_weblogic日誌檢視WindowsWeb
- 連線雲虛擬主機中MySQL資料庫時出現“Too many connections”報錯資訊MySql資料庫
- laravel5.7 不記錄 sql 報錯日誌,自定義日誌資訊LaravelSQL
- weblogic 業務提交報錯Web