Ana içeriğe geç

Too many open files

bilgi

Bu veya başka bir sorunu çözmek için uzman yardımına ihtiyacınız varsa, teknik destek koşullarımızı inceleyin.

Açıklama

Yaklaşık 128 civarında çok sayıda kamerayla Inotify sınırlarıyla karşılaşabilirsiniz — bu durumda bir kamera eklerken sunucu günlüğünde şu mesajı görebilirsiniz:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0xe8 pc=0xdda663]

goroutine 1258 [running]:
gitlab.com/yuccastream/yucca/pkg/runner/latest.(*Runner).GetStats(...)
/builds/yuccastream/yucca/pkg/runner/latest/runner.go:327
gitlab.com/yuccastream/yucca/pkg/server/executor/exec.(*Worker).GetStream(0xc002b74500)
/builds/yuccastream/yucca/pkg/server/executor/exec/worker.go:188 +0xa3
gitlab.com/yuccastream/yucca/pkg/server/executor/exec.(*Executor).StatusStream(0xc0003f01c0, 0xc00074b6c0)
/builds/yuccastream/yucca/pkg/server/executor/exec/executor.go:126 +0xb8
gitlab.com/yuccastream/yucca/pkg/server.(*Server).stateWatcher(0xc000c1e000)
/builds/yuccastream/yucca/pkg/server/server.go:914 +0x233
created by gitlab.com/yuccastream/yucca/pkg/server.(*Server).Start in goroutine 1
/builds/yuccastream/yucca/pkg/server/server.go:695 +0x4db

Kameralardan birinin günlüğünde ise:

Error: too many open files

Birçok Linux dağıtımında varsayılan olarak şu parametreler ayarlıdır:

grep NOFILE /etc/systemd/system.conf
#DefaultLimitNOFILE=1024:524288

Çözüm

Sınırları artırmak için şunu çalıştırın:

sed -i 's/^#DefaultLimitNOFILE=.*/DefaultLimitNOFILE=10240:524288/' /etc/systemd/system.conf

Ayrıca /lib/systemd/system/yucca.service dosyasındaki yucca.service systemd unit'i için de bu parametreyi artırın:

mkdir -p /etc/systemd/system/yucca.service.d/
cat > /etc/systemd/system/yucca.service.d/override.conf << 'EOF'
[Service]
LimitNOFILE=10240
EOF

sudo systemctl daemon-reload
sudo systemctl cat yucca # проверить

Ardından ayarları uygulayın ve yucca.service sürecini yeniden başlatın:

sudo systemctl restart yucca.service