posts - 241,  comments - 116,  trackbacks - 0
          公告

          <2012年1月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          友情鏈接

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          原因:   

              操作系統的中打開文件的最大句柄數受限所致,常常發生在很多個并發用戶訪問服務器的時候.因為為了執行每個用戶的應用服務器都要加載很多文件(new一個socket就需要一個文件句柄),這就會導致打開文件的句柄的缺乏.

          解決: 

          • 盡量把類打成jar包,因為一個jar包只消耗一個文件句柄,如果不打包,一個類就消耗一個文件句柄.
          • java的垃圾回收不能關閉網絡連接打開的文件句柄,如果沒有執行close()(例如:java.net.Socket.close())則文件句柄將一直存在,而不能被關閉.你也可以考慮設置socket的最大打開數來控制這個問題.
          •  對操作系統做相關的設置,增加最大文件句柄數量。
            1. Linux
              在 Linux內核2.4.x中需要修改源代碼,然后重新編譯內核才生效。編輯Linux內核源代碼中的 include/linux/fs.h文件,將 NR_FILE 由8192改為65536,將NR_RESERVED_FILES 由10 改為 128。編輯fs/inode.c 文件將MAX_INODE 由16384改為262144?;蛘呔庉?nbsp;/etc/sysctl.conf  文件增加兩行 fs.file-max = 65536 和 fs.inode-max = 262144 。一般情況下,系統最大打開文件數比較合理的設置為每4M物理內存256,比如256M.可以用lsof -p <pid of process>看打開的文件句柄數.
            2. Windows
              最大文件句柄是16,384,你在任務管理器的性能這一項中可以看到當前打開的句柄數.
          posted on 2012-01-06 13:14 墻頭草 閱讀(958) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          人人游戲網 軟件開發網 貨運專家
          主站蜘蛛池模板: 庆安县| 呼图壁县| 建平县| 武清区| 房山区| 于都县| 奎屯市| 邵武市| 敖汉旗| 耒阳市| 山阳县| 通化市| 龙游县| 娄底市| 宜兰市| 嵊泗县| 盱眙县| 建始县| 辛集市| 南涧| 宝坻区| 噶尔县| 绵阳市| 定边县| 扎囊县| 富源县| 龙门县| 上高县| 蛟河市| 隆子县| 龙井市| 宁强县| 上饶县| 弥渡县| 蓬溪县| 永昌县| 平阴县| 龙川县| 尉犁县| 连南| 云霄县|