Open5
Docker コンテナ起動時に発生する `Too many open files` を解消したい
最近、コンテナ起動時に以下のようなエラーが発生することが多い
Errno::ENFILE: Too many open files in system @ rb_file_s_mtime
または以下のような、ファイルシステムへのアクセスで問題が出ているように見える
file table overflow
環境
- OS: macOS 14.6.1(23G93)
- CPU: Apple M3 Pro
- Docker:
Client:
Version: 27.2.0
API version: 1.47
Go version: go1.21.13
Git commit: 3ab4256
Built: Tue Aug 27 14:14:45 2024
OS/Arch: darwin/arm64
Context: desktop-linux
Server: Docker Desktop 4.34.2 (167172)
Engine:
Version: 27.2.0
API version: 1.47 (minimum version 1.24)
Go version: go1.21.13
Git commit: 3ab5c7d
Built: Tue Aug 27 14:15:41 2024
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.7.20
GitCommit: 8fc6bcff51318944179630522a095cc9dbf9f353
runc:
Version: 1.1.13
GitCommit: v1.1.13-0-g58aa920
docker-init:
Version: 0.19.0
GitCommit: de40ad0
マウント方法を変更してみる
VirtioFS が選択されていたものを gRPC FUSE に切り替えたら、ある程度安定した
ただ、ベンチマーク取っていないから定かではないがパフォーマンスに影響あるはずなので、他の回避方法があってほしい
関連してそう?
tmp/cache/bootsnap を削除してみる
Docker Volume に配置されているので VirtioFS 関係あるのか不明だが、 bootsnap の処理でエラーが発生するケースが多いようなので、試しに tmp/cache/bootsnap
を削除してみる。
docker compose exec app rm -rf tmp/cache/bootsnap
これで幾分安定した気がするが、まだしばらく様子見