linux下提示Too many open files解決辦法

來源:互聯網
上載者:User

– 合理配置Linux同時可開啟檔案控制代碼數限制及lsof命令使用

今天一上班就看到一來自效能測試組的一個系統錯誤報表,Linux系統下的應用在壓力下會出現”Too many open files”的錯誤並導致服務停止。

其中這是老問題,就是需要合理配置Linux同時可開啟檔案控制代碼數限制。
當然,如果應用程式有bug,濫用資源是另一個問題了。

Linux把大部分資源都會虛擬成檔案,象開啟網路連接也都會佔用檔案控制代碼,Linux的預設限制一般是1024,這個限制對一般個人使用是沒有問題的,但對一個特殊應用或都在大並發訪問下是不夠的。

使用者級:

Linux限制每個登入使用者的可串連檔案數。可通過 ulimit -n來查看當前有效設定。如果想修改這個值就使用 ulimit -n 命令。

對於檔案描述符增加的比例,資料推薦是以2的冪次為參考。如當前檔案描述符數量是1024,可增加到2048,如果不夠,可設定到4096,依此類推。

系統級:

系統級設定對所有使用者有效。可通過兩種方式查看系統最大檔案限制

1  cat /proc/sys/fs/file-max 
2  sysctl -a 查看結果中fs.file-max這項的配置數量

如果需要增加配置數量就修改/etc/sysctl.conf檔案,配置fs.file-max屬性,如果屬性不存在就添加。
配置完成後使用sysctl -p來通知系統啟用這項配置


1 cat /proc/sys/fs/file-max
2 sysctl -a


查看結果中fs.file-max這項的配置數量

如果需要增加配置數量就修改/etc/sysctl.conf檔案,配置fs.file-max屬性,如果屬性不存在就添加。
配置完成後使用sysctl -p來通知系統啟用這項配置

如果想查看檔案控制代碼的具體使用方式,可以使用lsof命令,給幾個例子:

1. 查看某進程(pid)在使用的檔案

lsof -p pid

2. 尋找誰在使用某個檔案

lsof /var/run/sendmail.pid

3. 尋找監聽連接埠25的進程

lsof -i :25

呵呵,功能還是很強大的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.