解決高並發中出現Too many open files問題__Too

來源:互聯網
上載者:User

1.主要方向:在源碼項目中尋找所有引用了InputStream或者其他流的地方,查看其是否在使用完後,正常close掉,此處建議將流的close放到finally塊中,這樣異常時也會去close流。

2.次要方向:session或者其他有用到socket的代碼處,仔細查詢看是否有沒有釋放資源的地方

 

另附:

        在Linux中執行下面2個指令可以看出系統預設open files的1024不足以支撐測試,請相應調整為4096。

        在系統訪問高峰時間以root使用者執行下面的指令碼,可能出現的結果如下:                 

                # lsof -n|awk ‘{print$2}’|sort|uniq -c |sort -nr|more 

                   1170   32229 
                    57  24244 
                    57  24231 
                    56  24264 

      其中第一列是開啟的檔案控制代碼數量,第二列是進程號。

                # ps-aef|grep 32229 

root    32229     1 33 10:58 pts/0    00:09:17/usr/java/jdk1.6.0_32/bin/java-Djava.util.logging.config.file=/kmsapp/apache-tomcat-6.0.35_engine/conf/logging.properties-Xms512m -Xmx2048m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.endorsed.dirs=/kmsapp/apache-tomcat-6.0.35_engine/endorsed -classpath/kmsapp/apache-tomcat-6.0.35_engine/bin/bootstrap.jar-Dcatalina.base=/kmsapp/apache-tomcat-6.0.35_engine-Dcatalina.home=/kmsapp/apache-tomcat-6.0.35_engine -Djava.io.tmpdir=/kmsapp/apache-tomcat-6.0.35_engine/temporg.apache.catalina.startup.Bootstrap start

發現是tomcat進程開啟最多檔案控制代碼數量,而且它開啟了1170個檔案控制代碼數量,超出了1024的預設值。

 

所以應該將值調為4096,那麼要想永久性的調整,請按如下2步操作:

 1、修改/etc/security/limits.conf

       通過 vi /etc/security/limits.conf修改其內容,在檔案最後加入(數值也可以自己定義):

       * soft  nofile = 4096

        * hard  nofile = 4096


2、修改/etc/profile

       通過vi/etc/profile修改,在最後加入以下內容:

       ulimit -n4096


      然後重新登入即可生效了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.