OPNsense Forum

International Forums => German - Deutsch => Topic started by: Matze_ on January 06, 2021, 12:37:07 PM

Title: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 06, 2021, 12:37:07 PM
Hallo zusammen,

meine OPNsense beendet zeitweise die Arbeit und ist nicht mehr erreichbar mit dem Hinweis im Log:

[zone: mbuf] kern.ipc.nmbufs limit reached und anschließend
[ 704] generic_netmap_txsync     Failed to replenish mbuf

Den MBUF habe ich bereits auf 1.000.000 hochgesetzt (siehe Anhang). Im Regelfall wird der Wert nicht erreicht. Allerdings ist mir auch aufgefallen, dass der MBUF über die Zeit steigt und nicht wieder zurückgeht.

Die OPNsense ist auf dem Release 20.7.7_1-amd64 und läuft virtualisiert (Proxmox) auf einer Qotom Q355G4 i5-5200U, mit 8GB RAM. Neben der OPNsense ist noch ein Pihole virtualisiert, so dass die Prozessorlast nicht zu hoch ist.

Hat jemand eine Idee, womit das zusammenhängen könnte und wie ich das beheben kann oder mit einem Workaround lösen könnte?

Vor dem Absturz habe ich folgenden Logeintrag gefunden:
2021-01-06T11:51:38 kernel FreeBSD/SMP: 1 package(s) x 2 core(s)
2021-01-06T11:51:38 kernel FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
2021-01-06T11:51:38 kernel ACPI APIC Table: <BOCHS  BXPCAPIC>
2021-01-06T11:51:38 kernel Event timer "LAPIC" quality 100
2021-01-06T11:51:38 kernel avail memory = 4048093184 (3860 MB)
2021-01-06T11:51:38 kernel real memory  = 4244635648 (4048 MB)
2021-01-06T11:51:38 kernel Hypervisor: Origin = "KVMKVMKVM"
2021-01-06T11:51:38 kernel AMD Features2=0x1<LAHF>
2021-01-06T11:51:38 kernel AMD Features=0x20100800<SYSCALL,NX,LM>
2021-01-06T11:51:38 kernel Features2=0x80202001<SSE3,CX16,x2APIC,HV>
2021-01-06T11:51:38 kernel Features=0x1783fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,SSE2,HTT>
2021-01-06T11:51:38 kernel Origin="GenuineIntel"  Id=0xf61  Family=0xf  Model=0x6  Stepping=1
2021-01-06T11:51:38 kernel CPU: Common KVM processor (2194.97-MHz K8-class CPU)
2021-01-06T11:51:38 kernel HardenedBSD: initialize and check features (__HardenedBSD_version 1200059 __FreeBSD_version 1201000).
2021-01-06T11:51:38 kernel VT(vga): text 80x25
2021-01-06T11:51:38 kernel FreeBSD clang version 8.0.1 (tags/RELEASE_801/final 366581) (based on LLVM 8.0.1)
2021-01-06T11:51:38 kernel root@sensey64:/usr/obj/usr/src/amd64.amd64/sys/SMP amd64
2021-01-06T11:51:38 kernel FreeBSD 12.1-RELEASE-p11-HBSD #0  74f1f081a1e(stable/20.7)-dirty: Fri Dec  4 13:40:15 CET 2020
2021-01-06T11:51:38 kernel FreeBSD is a registered trademark of The FreeBSD Foundation.
2021-01-06T11:51:38 kernel The Regents of the University of California. All rights reserved.
2021-01-06T11:51:38 kernel Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
2021-01-06T11:51:38 kernel Copyright (c) 1992-2019 The FreeBSD Project.
2021-01-06T11:51:38 kernel Copyright (c) 2013-2019 The HardenedBSD Project.
2021-01-06T11:51:38 kernel ---<<BOOT>>---
2021-01-06T11:51:38 syslogd kernel boot file is /boot/kernel/kernel
2021-01-06T11:48:31 syslogd exiting on signal 15
2021-01-06T11:46:28 kernel [zone: mbuf] kern.ipc.nmbufs limit reached
2021-01-06T11:46:28 kernel 988.260048 [ 704] generic_netmap_txsync     Failed to replenish mbuf
2021-01-06T11:46:28 kernel 988.259730 [ 704] generic_netmap_txsync     Failed to replenish mbuf
2021-01-06T11:46:23 kernel 983.611449 [ 704] generic_netmap_txsync     Failed to replenish mbuf
2021-01-06T11:46:23 kernel 983.611295 [ 704] generic_netmap_txsync     Failed to replenish mbuf
2021-01-06T11:46:19 kernel 979.641664 [ 704] generic_netmap_txsync     Failed to replenish mbuf
2021-01-06T11:46:19 kernel 979.641537 [ 704] generic_netmap_txsync     Failed to replenish mbuf
2021-01-06T11:46:18 kernel 978.611650 [ 704] generic_netmap_txsync     Failed to replenish mbuf
2021-01-06T11:46:18 kernel 978.259743 [ 704] generic_netmap_txsync     Failed to replenish mbuf

Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 13, 2021, 02:38:57 PM
Hat keiner eine Idee oder die gleiche Situation? Ich habe festgestellt, dass nach einem Reboot sind die Buffer wieder geleert und füllen sich dann langsam.
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: franco on January 13, 2021, 07:53:25 PM
Hi Matze,

Vermute dieser FreeBSD Fix könnte helfen da hier nicht alle (immer nur der erste) transmit mbufs freigegeben werden und dann nicht mehr im System zu finden sind... https://github.com/opnsense/src/commit/9daba9a379

Eigentlich sollte dieser auf 21.1 (ist auch auf dem RC1), aber ich nehme das mal mit in die 20.7.8 nächste Woche. Bitte dann um Rückmeldung ob es was gebracht hat.


Grüsse
Franco
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 14, 2021, 10:04:16 AM
Hallo Franco,

vielen Dank. Ich vermute, dass ich jetzt noch nicht aktiv werden kann, oder?
Wenn ich bei der Lösung unterstützen kann, gib mir gerne Bescheid. Der Fall tritt regelmäßig auf und ich kann ggf. Traces etc. ziehen.

VG
Matze
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: franco on January 14, 2021, 10:40:20 AM
Hi Matze,

Da ich für einen anderen Fall gerade einen neuen Kernel gebaut habe kannst du auch testen, und zwar so:

# opnsense-update -kr 20.7.6-ipsec2
# opnsense-shell reboot


Grüsse
Franco
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 15, 2021, 12:11:06 PM
Hi Franco,

das Update ließ sich problemlos einspielen und ich warte jetzt mal ab, ob der Buffer langsam vollläuft.
Gibt es irgendwelche Logs, die Dir weiterhelfen?

VG
Matze
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: franco on January 17, 2021, 04:32:56 PM
Hi Matze,

Nein, da Hilft tatsächlich nur der MBUF Counter auf dem Dashboard.


Grüsse
Franco
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 18, 2021, 09:00:15 AM
Hallo Franco,

leider hat der Fix nicht die gewünschte Wirkung erzielt.
MBUF läuft weiter hoch und führte wieder zu einem Totalabsturz am Sonntag.

Viele Grüße
Matze
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 18, 2021, 05:57:30 PM
Kleine Ergänzung:
Ich habe auf das zur Verfügung stehende Update aktualisiert. Der Effekt ist aber auch da vermutlich noch vorhanden. Nach 3,5h bin ich bei ca. 7% Auslastung MBUF.

Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: franco on January 18, 2021, 06:00:29 PM
Oh, nein, jetzt ist wieder der normale Kernel drin (p11) statt dem Testkernel (p12).

Passiert das auch wenn Suricata nicht im IPS Modus läuft?


Grüsse
Franco
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: lewald on January 18, 2021, 07:05:41 PM
Hmm,

ich habe 4 aktuelle OPNSense auf Proxmox laufen. Bei keiner der Installationen habe ich dieses Problem.

Welche Netzwerkkarte ist via Proxmox zugewiesen? Wie läuft die VM (Host)?

Bei mir laufen die OPNSense VMs via Virtio und Processor Typ Host.
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 18, 2021, 09:55:38 PM
Quote from: franco on January 18, 2021, 06:00:29 PM
Oh, nein, jetzt ist wieder der normale Kernel drin (p11) statt dem Testkernel (p12).

Passiert das auch wenn Suricata nicht im IPS Modus läuft?


Grüsse
Franco

Ok, habe  wieder auf die vorherige Version gewechselt, IPS ausgestellt und werde berichten.

Viele Grüße
Matze
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 18, 2021, 10:21:08 PM
Quote from: lewald on January 18, 2021, 07:05:41 PM
Hmm,

ich habe 4 aktuelle OPNSense auf Proxmox laufen. Bei keiner der Installationen habe ich dieses Problem.

Welche Netzwerkkarte ist via Proxmox zugewiesen? Wie läuft die VM (Host)?

Bei mir laufen die OPNSense VMs via Virtio und Processor Typ Host.

Ich habe aktuell 3 Netzwerkkarten zugewiesen. 2x virtio und 1x hostpci. Processor type ist kvm64(default)
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 18, 2021, 10:33:59 PM
Quote from: Matze_ on January 18, 2021, 09:55:38 PM
Quote from: franco on January 18, 2021, 06:00:29 PM
Oh, nein, jetzt ist wieder der normale Kernel drin (p11) statt dem Testkernel (p12).

Passiert das auch wenn Suricata nicht im IPS Modus läuft?


Grüsse
Franco

Kurze Rückmeldung nach einer Stunde: MBUF usage 0 % ( 4046/1000000 )
Das klingt nach Abschalten von IPS vielversprechend
Mal sehen, wie es morgen früh aussieht.

Viele Grüße
Matze

Ok, habe  wieder auf die vorherige Version gewechselt, IPS ausgestellt und werde berichten.

Viele Grüße
Matze
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 19, 2021, 11:14:39 AM
Kurzes Update nach 12h und ausgeschaltetem IPS:
MBUF usage: 0 % ( 3926/1000000 )

VG
Matze
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: lewald on January 19, 2021, 06:26:06 PM
Offtopic,


bei Proxmox sollten die VMs wenn die CPU das kann idealerweise auf Host gesetzt sein.
Aus Performance Gründen.

https://serverfault.com/questions/876664/kvm-which-cpu-for-vm-host-vs-kvm64-to-use-for-web-load

Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 20, 2021, 04:26:41 PM
Quote from: lewald on January 19, 2021, 06:26:06 PM
Offtopic,


bei Proxmox sollten die VMs wenn die CPU das kann idealerweise auf Host gesetzt sein.
Aus Performance Gründen.

https://serverfault.com/questions/876664/kvm-which-cpu-for-vm-host-vs-kvm64-to-use-for-web-load

Danke Dir für den Hinweis!
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 20, 2021, 04:30:29 PM
Hallo Franco,

im gestrigen Update habe ich gelesen, dass an dem Thema Mbuf gearbeitet wurde.
src: free full mbuf chains in iflib when draining transmit queues
Macht es schon Sinn das Update einzuspielen und IPS wieder einzuschalten?

Das Dashboard zeigt weiterhin 0% Mbuf Nutzung an.

Viele Grüße
Matze
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 26, 2021, 01:06:25 PM
Ich habe das Update durchgeführt und weiterhin MBUF=0%
Heute habe ich dann IPS eingeschaltet und erneut läuft der MBUF voll ohne sich wieder zurückzusetzen.
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: franco on January 27, 2021, 09:35:25 AM
Hi Matze,

Sorry für die späte Antwort. Es war ein Fix... und zwar der aus dem Test Kernel, aber in deinem Fall leider der Falsche. Da es mit Netmap zu tun hat werde ich versuchen das Sensei-Team hinter den Kulissen einzubinden. Ob es eine schnelle Lösung gibt oder gar 21.1 schon das Problem löst lässt sich nicht sagen aktuell.


Grüsse
Franco
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 27, 2021, 09:55:50 AM
Hi Franco,

vielen Dank für die Rückmeldung. Dann schalte ich IPS mal wieder aus und warte ab.
Wie finde ich denn raus, ob es einen Fix gibt?

Vielen Dank dafür, dass Du bei dem Thema am Ball bleibst!

Viele Grüße
Matze
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: franco on January 27, 2021, 10:58:06 AM
Wir prüfen und integrieren die verfügbaren Fixes aus FreeBSD regelmäßig; so sind auch in 21.1 neue Updates drin für Systemkomponenten die in FreeBSD schon aufgefallen und behoben wurden. In 20.7.x kommen nur Systemupdates die gezielt (verifiziert) Probleme beheben oder so offensichtlich sind, dass es keine Regression erzeugen kann.

Ist ein bisschen wie die Nadel im Heuhaufen zu finden. Der Anfang dazu ist immer die Stelle im Code zu finden die Probleme macht. Da sind wir mit Netmap zwar am Beginn der Eingrenzung, aber das sind noch tausende Zeilen Code potentiell... Gute Frage ist noch welcher Netzwerkkartentreiber im OPNsense bei dir verwendet wird (em, igb, etc.)


Grüsse
Franco
Title: Re: Absturz nach kern.ipc.nmbufs limit reached
Post by: Matze_ on January 30, 2021, 06:26:54 PM
Hallo Franco,

wenn ich zur Suche etwas beitragen kann, dann mache ich das gerne.
Ich habe gerade gesehen, dass die 21.1 rausgekommen ist. Soll ich updaten?

Für den Anschluß an die Fritzbox nutze ich igb, für die beiden Netzwerke vtnet und dann habe ich noch 3x ovpnc, von denen jeweils nur ein Anschluß aktiv ist.

Viele Grüße
Matze