posts - 37,  comments - 53,  trackbacks - 0
          最近,運行的tomcat服務器在正常運行將近2個月后,拋出如下錯誤:

          警告: Reinitializing ServerSocket
          2006-7-28 15:07:40 org.apache.tomcat.util.net.PoolTcpEndpoint acceptSocket
          嚴重: Endpoint ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=80] ignored exception: java.net.SocketException: Too many open files
          java.net.SocketException: Too many open files
          ?at java.net.PlainSocketImpl.socketAccept(Native Method)
          ?at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
          ?at java.net.ServerSocket.implAccept(ServerSocket.java:450)
          ?at java.net.ServerSocket.accept(ServerSocket.java:421)
          ?at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)
          ?at org.apache.tomcat.util.net.PoolTcpEndpoint.acceptSocket(PoolTcpEndpoint.java:407)
          ?at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:70)
          ?at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
          ?at java.lang.Thread.run(Thread.java:595)

          原本以為是tomcat的配置或是應用本身的問題,"谷歌"一把后才發現,該問題的根本原因是由于系統文件資源的限制導致的。具體可以參考http://www.bea.com.cn/support_pattern/Too_Many_Open_Files_Pattern.html
          的說明。具體的解決方式可以參考一下:
          1。ulimit -a 查看系統目前資源限制的設定。
          ???[root@test security]# umlimit -a
          -bash: umlimit: command not found
          [root@test security]# ulimit -a
          core file size??????? (blocks, -c) 0
          data seg size???????? (kbytes, -d) unlimited
          file size???????????? (blocks, -f) unlimited
          max locked memory???? (kbytes, -l) unlimited
          max memory size?????? (kbytes, -m) unlimited
          open files??????????????????? (-n) 1024
          pipe size????????? (512 bytes, -p) 8
          stack size??????????? (kbytes, -s) 8192
          cpu time???????????? (seconds, -t) unlimited
          max user processes??????????? (-u) 7168
          virtual memory??????? (kbytes, -v) unlimited
          [root@test security]#
          通過以上命令,我們可以看到open files 的最大數為1024
          那么我們可以通過一下命令修改該參數的最大值
          2. ulimit -n 4096
          [root@test security]# ulimit -n 4096
          [root@test security]# ulimit -a
          core file size??????? (blocks, -c) 0
          data seg size???????? (kbytes, -d) unlimited
          file size???????????? (blocks, -f) unlimited
          max locked memory???? (kbytes, -l) unlimited
          max memory size?????? (kbytes, -m) unlimited
          open files??????????????????? (-n) 4096
          pipe size????????? (512 bytes, -p) 8
          stack size??????????? (kbytes, -s) 8192
          cpu time???????????? (seconds, -t) unlimited
          max user processes??????????? (-u) 7168
          virtual memory??????? (kbytes, -v) unlimited

          這樣我們就修改了系統在同一時間打開文件資源的最大數,基本解決以上問題。

          另外我們可以通過lsof? -p [進程的 pid]來查看系統當前打開的文件資源,可以了解不同時期系統的文件資源的使用情況,可根據情況進行系統資源的配置。
          posted on 2006-07-31 11:39 雪地孤鴻 閱讀(4134) 評論(0)  編輯  收藏 所屬分類: java
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(17)

          隨筆分類

          隨筆檔案

          文章檔案

          blog

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阳山县| 怀远县| 新乡市| 中江县| 龙游县| 伊宁市| 诸暨市| 武鸣县| 二手房| 郓城县| 砚山县| 山西省| 庄河市| 饶平县| 东阿县| 临沂市| 广东省| 日土县| 仙桃市| 成武县| 沭阳县| 乌海市| 伊宁县| 万州区| 万山特区| 和政县| 绥江县| 竹溪县| 正阳县| 望都县| 丰都县| 鄂伦春自治旗| 长泰县| 龙州县| 玛曲县| 城步| 东乌珠穆沁旗| 安西县| 博客| 白城市| 泰和县|