Too many open files

問題背景

  1. 接手公司16年前服務,服務運行一段時間後便會報錯,以下爲問題日誌:
    在這裏插入圖片描述
  2. 查看服務進程
ps -ef | grep java
  1. 查看打開的文件
lsof -p PID
  1. 修改完成可以使用該命令查看文件數是否增長
ls -l /proc/PID/fd | wc -l

問題分析與解決

問題根本原因就是代碼問題,導致打開的文件太多,解決思路:

  1. 使用上述命令查看打開文件名
  2. 代碼中全局搜索該文件
  3. 分析代碼多次打開指定文件的原因進行修改。代開文件多次的原因:
    我遇到的問題是前人在靜態方法中獲取文件流,服務中大量頻繁調用該靜態方法
    對象不是單例模式,導致每次實例化對象都會打開文件
發佈了37 篇原創文章 · 獲贊 5 · 訪問量 5196
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章