[Node.js] How to Resolve Error: ENFILE: file table overflow, open xxx
I’ll introduce how to resolve the Error: ENFILE: file table overflow, open xxx that occurs in Node.js.
 
Error: ENFILE: file table overflow, open xxx is an error that occurs when the file descriptor limit is exceeded.
So the solution is simply to increase the file descriptor limit.
Since the error occurred on macOS this time, I referred to Macのファイルディスクリプタ上限を上げる - 橋本商会 for the solution.
$ 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
Add/update the following two files in /Library/LaunchDaemons/.
limit.maxfiles.plist
  
  
    Label 
    limit.maxfiles 
    ProgramArguments 
    
      launchctl 
      limit 
      maxfiles 
      524288 
      524288 
     
    RunAtLoad 
    
    ServiceIPC 
    
     
 
limit.maxproc.plist
  
  
    Label 
      limit.maxproc 
    ProgramArguments 
      
        launchctl 
        limit 
        maxproc 
        2048 
        2048 
       
    RunAtLoad 
      
    ServiceIPC 
      
     
 
Change the ownership of the added plist to root.
sudo chown root /Library/LaunchDaemons/limit.max*.plist
Enable the plist settings.
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxproc.plist
Now, restart the OS.
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                       2048
-n: file descriptors                524288
That’s all from the Gemba where I was troubled by the sudden Error: ENFILE: file table overflow, open xxx.