Nach einigen Jahren in Verwendung, wollte meine Influx Datenbank auf einmal nicht mehr funktionieren. Die Fehlermeldung hierzu war leider nicht besonders aufschlussreich: InfluxDB API unavailable after 21 attempts…
Deswegen gestaltete sich das Suchen nach einer Lösung als recht schwierig. Eine weitere Fehlermeldung half mir leider auch nicht weiter:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: github.com/influxdata/influxdb/tsdb/engine/tsm1.getBuf(0xc7a28b, 0x200f6290) Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/pools.go:17 +0x94 fp=0x50c1218 sp=0x50c11fc pc=0xcf76b4 Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: github.com/influxdata/influxdb/tsdb/engine/tsm1.(*WALSegmentReader).Next(0x5d728d0, 0x2022e000) Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/wal.go:1167 +0x2bc fp=0x50c12d8 sp=0x50c1218 pc=0xd0dd04 Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: github.com/influxdata/influxdb/tsdb/engine/tsm1.(*CacheLoader).Load.func1(0x50c1594, 0x805c920, 0x50c158c, 0x4ef4300, 0x0, 0x0) Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/cache.go:734 +0x34c fp=0x50c1568 sp=0x50c12d8 pc=0xd130b8 Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: github.com/influxdata/influxdb/tsdb/engine/tsm1.(*CacheLoader).Load(0x805c920, 0x4ef4300, 0x1, 0x1) Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/cache.go:758 +0x88 fp=0x50c159c sp=0x50c1568 pc=0xca00bc Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: github.com/influxdata/influxdb/tsdb/engine/tsm1.(*Engine).reloadCache(0x6d61a40, 0x0, 0x0) Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:2408 +0x1d4 fp=0x50c16ec sp=0x50c159c pc=0xccfbe4 Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: github.com/influxdata/influxdb/tsdb/engine/tsm1.(*Engine).Open(0x6d61a40, 0x4e11c00, 0x1ed86d8) Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:754 +0x28c fp=0x50c1734 sp=0x50c16ec pc=0xcc69b4 Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: github.com/influxdata/influxdb/tsdb.(*Shard).Open.func1(0x4d22840, 0x0, 0x0) Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: /go/src/github.com/influxdata/influxdb/tsdb/shard.go:344 +0x298 fp=0x50c1a58 sp=0x50c1734 pc=0x5d12c4 Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: github.com/influxdata/influxdb/tsdb.(*Shard).Open(0x4d22840, 0x4e11c20, 0x677c1b0) Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: /go/src/github.com/influxdata/influxdb/tsdb/shard.go:355 +0x1c fp=0x50c1a84 sp=0x50c1a58 pc=0x5b9dac Aug 29 09:08:22 serverpi influxd-systemd-start.sh[24386]: github.com/influxdata/influxdb/tsdb.(*Store).loadShards.func1(0x4e1ac80, 0x503e000, 0x505a300, 0x4e1acc0, 0xfd51f0, 0x4d1c3c0, 0x50560c0, 0x4fc3f17, 0x9, 0x4f203b1, ...) |
Nach einigen Neuinstallationen und Hardwarewechseln fand ich dann allerdings die Lösung. Das Problem liegt daran, dass die Influx Datenbank aus vielen kleineren Dateien besteht. Die Zahl der gleichzeitig geöffneten Dateien pro user ist aber beschränkt. Um diese Zahl zu erhöhen reicht es, in der Datei /etc/sysctl.conf
die Zeile fs.file-max = 2097152
hinzuzufügen. Nach einem Neustart kann die Datenbank dann genug Dateien öffnen, um ordnungsgemäß zu funktionieren.
10.12.2023: Zusatz
Zusätzlich kann es hilfreich sein, in der Datei /etc/systemd/system/multi-user.target.wants/influxdb.service
die Zeile Type=forking
auszukommentieren und zusätzlich die Zeile TimeoutStartSec=900
hinzuzufügen.
Schreibe einen Kommentar