fix: raise open file descriptor limit to prevent EMFILE errors (#13895)

## Summary
- Adds `LimitNOFILE=65536` to both web and worker systemd service units
- Fixes recurring `Errno::EMFILE` (Too many open files) errors during
peak traffic after deploys

## Context
Puma workers idle at 720-770 open FDs against the default soft limit of
1024, leaving ~250 FDs of headroom. During deploy-triggered instance
refreshes at peak traffic, concurrent requests exhaust the remaining
FDs, causing EMFILE across all web instances.

3 incidents in March 2026 with escalating event counts. The hard limit
is already 524288, so this just raises the soft limit to a standard
production value.

Self-hosted instances pick this up automatically via `cwctl --upgrade`.

Fixes
https://linear.app/chatwoot/issue/CW-6685/errnoemfile-too-many-open-files-rb-sysopen
This commit is contained in:
Vishnu Narayanan
2026-03-25 06:07:07 +05:30
committed by GitHub
parent 14df7b3bc1
commit 775b73d1f9
2 changed files with 2 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ TimeoutStopSec=30
KillMode=mixed KillMode=mixed
StandardInput=null StandardInput=null
SyslogIdentifier=%p SyslogIdentifier=%p
LimitNOFILE=65536
Environment="PATH=/home/chatwoot/.rvm/gems/ruby-3.4.4/bin:/home/chatwoot/.rvm/gems/ruby-3.4.4@global/bin:/home/chatwoot/.rvm/rubies/ruby-3.4.4/bin:/home/chatwoot/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/chatwoot/.rvm/bin:/home/chatwoot/.rvm/bin" Environment="PATH=/home/chatwoot/.rvm/gems/ruby-3.4.4/bin:/home/chatwoot/.rvm/gems/ruby-3.4.4@global/bin:/home/chatwoot/.rvm/rubies/ruby-3.4.4/bin:/home/chatwoot/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/chatwoot/.rvm/bin:/home/chatwoot/.rvm/bin"
Environment="PORT=3000" Environment="PORT=3000"

View File

@@ -15,6 +15,7 @@ TimeoutStopSec=30
KillMode=mixed KillMode=mixed
StandardInput=null StandardInput=null
SyslogIdentifier=%p SyslogIdentifier=%p
LimitNOFILE=65536
MemoryMax=1.2G MemoryMax=1.2G
MemoryHigh=infinity MemoryHigh=infinity