旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

Falling back to polling which uses more CPU.

2014年2月17日

たくさんのファイルの watch をするようなプロセスを立ち上げる場合に、以下の様なエラーが出ました。
OS は Max OS X。
node app.js は、たまたま自分がそうだっただけで、エラーの趣旨には特に関係ないです。

$ node app.js   
[WARN] 15:41:55 node-dev ran out of file handles after watching 243 files.
[WARN] 15:41:55 Falling back to polling which uses more CPU.
[INFO] 15:41:55 Run ulimit -n 10000 to increase the file descriptor limit.
[INFO] 15:41:55 ... or add `--no-deps` to use less file handles.

解決方法: ulimit -n

詳細は全くわからないけど、以下の file descriptors の数値を上げればいいよう。

$ ulimit -a      
-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-v: address space (kbytes)          unlimited
-l: locked-in-memory size (kbytes)  unlimited
-u: processes                       709
-n: file descriptors                256

10000 とか激しい感じがしたので、控えめにこのくらいにしておきました。

$ ulimit -n 1024

設定はシェル再起動で消えるので、設定ファイルに書いたり毎度打ったりする必要があります。

追記 2014-04-18

コマンドを実行するだけだと接続を落とした際に設定がリセットされてしまうので、.zshrc や .bashrc などに、上記の ulimit -n を書いておく必要がある。