![](/img/trans.png)
[英]Writing large amount of strings from memory to a file using streams in node.js causing high RAM usage
[英]Massive memory/RAM usage with Chokidar Node.js package from pre-existing files in directory being watched unnecessarily
我在這個用例中使用了 Node.js package “chokidar”:
add
事件,因為當文件以原子方式移動到監視目錄時(一旦所有更改完成,它們就會從同一文件系統上的另一個目錄移動)...
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
add
事件?chokidar.watch("/my-watched-dir", {
ignoreInitial: true,
})
.on('add', (filepath) => {...}
我也嘗試將depth
選項設置為 0 和 1。
應用程序一啟動,memory 的使用率就會攀升得非常高(甚至在第一個新文件出現之前第一次觸發add
事件)。
並且預存文件數較少時也沒有問題,所以不存在應用啟動后新文件吞吐量的問題。
據我所知,Linux平台上的chokidar等庫會直接使用Node.js提供的fs.watch和fs.watchFile。
為了跨平台,這兩個 API 始終偵聽與路徑相關的所有事件,因此答案是您不能將 chokidar 用於您的目的。
如果您希望使用更少的 memory,請手動輪詢或使用可以直接訪問 inotify 的本機 Linux 模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.