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 雪地孤鴻 閱讀(4129) 評論(0)  編輯  收藏 所屬分類: java
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(17)

          隨筆分類

          隨筆檔案

          文章檔案

          blog

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大荔县| 民权县| 永善县| 洛宁县| 赞皇县| 龙海市| 清水河县| 锦屏县| 濉溪县| 三明市| 积石山| 镇巴县| 三台县| 京山县| 芜湖市| 白水县| 汉寿县| 台湾省| 永州市| 晋宁县| 郧西县| 博湖县| 饶阳县| 响水县| 耒阳市| 文化| 育儿| 乌兰察布市| 竹北市| 巍山| 板桥市| 赤峰市| 虎林市| 湘潭市| 原阳县| 莱西市| 桐城市| 麻阳| 平南县| 仁化县| 莆田市|