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