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

          警告: Reinitializing ServerSocket
          2006-7-28 15:07:40 org.apache.tomcat.util.net.PoolTcpEndpoint acceptSocket
          嚴(yán)重: 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的配置或是應(yīng)用本身的問題,"谷歌"一把后才發(fā)現(xiàn),該問題的根本原因是由于系統(tǒng)文件資源的限制導(dǎo)致的。具體可以參考http://www.bea.com.cn/support_pattern/Too_Many_Open_Files_Pattern.html
          的說明。具體的解決方式可以參考一下:
          1。ulimit -a 查看系統(tǒng)目前資源限制的設(shè)定。
          ???[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 的最大數(shù)為1024
          那么我們可以通過一下命令修改該參數(shù)的最大值
          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

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

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

          常用鏈接

          留言簿(17)

          隨筆分類

          隨筆檔案

          文章檔案

          blog

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁乡县| 祁连县| 安新县| 大冶市| 南澳县| 胶南市| 临桂县| 黄骅市| 福建省| 花垣县| 达州市| 阆中市| 达孜县| 苍溪县| 延长县| 德阳市| 兴业县| 攀枝花市| 本溪市| 民勤县| 石门县| 广丰县| 葵青区| 蒙自县| 定安县| 肥乡县| 双柏县| 唐海县| 高台县| 锡林郭勒盟| 长兴县| 阳朔县| 富民县| 乌兰察布市| 乌鲁木齐县| 宿州市| 万载县| 龙山县| 郓城县| 清丰县| 泰宁县|