inotify_init報錯Too many open files的問題追蹤和解決

背景:在nodejs項目中使用iotify監控配置文件動態變化,配置文件較多(幾千個配置文件)。在測試機器運行時無報錯信息,在線上機器執行失敗,報錯:terminate called after throwing an instance of 'InotifyException',其中,iotify模板是自己使用c++寫的so打包成nodejs模塊。


追蹤過程:1,使用strace node app.js執行,來追蹤系統調用細節,發現錯誤:inotify_init()                          = -1 EMFILE (Too many open files)

                     2,查看 ulimit -n,嘗試調大系統的文件描述符限制,重新執行,還是失敗

                     3,google到一些信息,嘗試sysctl  fs.inotify.max_user_instances = 128 ;   sysctl  fs.inotify.max_user_watches = 8192。 問題解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章