2023年11月15日

[筆記] inotify Info: Tracking What Apps Consume Your File Watcher Resource

不知道大家有沒有用過會幫你追蹤檔案的變動狀況 (更新/刪除) 的程式,在一偵測到檔案有變動時就會提醒/自動更新到最新的結果。在 Linux 上 kernel 那邊有提供一套 C API 專門處理這件事,叫做 inotify,利用這一組 API 我們就能輕鬆的在 Linux 上的程式做到一樣的偵測。

然而 inotify 針對每個使用者其實是設有上限的 (是一個使用者,而非一個程式),如果程式因意外掛著沒有被清掉,或是沒寫好導致一直占用資源,這將導致後續的程式因為觸發上限導致失敗。這時就需要去找出到底是哪些 process 占用掉太多 inotify 資源。

這次會遇到這個問題是來自同事用了 VS code,把一個內含相當大量檔案的資料夾加入監測,結果導致後續的程式要使用 inotify 時一下子就觸發上限了。為了找是哪些 process 在使用 inotify,找到了有人在 github 上分享的 script & C++ 版本。


script:

dotfiles/utils/scripts/inotify-consumers at master · fatso83/dotfiles · GitHub


C++ version:

GitHub - mikesart/inotify-info: Linux inotify info reporting app



沒有留言:

張貼留言