MBUF Usage



  • Guten Tag,

    kann jemand kurz und verständlich, einem unwissenden erklären was es mit "MBUF Usage". Ich muss gestehen, dass ich diesen Wert noch nie zuvor gehört habe.

    Und was ist besser niedriger und hoher Wert?

    Gruß



  • https://doc.pfsense.org/index.php/What_are_mbufs

    Hoffe das Hilft die schon.  :)

    Hier gibt es eigentlich kein besser oder schlechter wenn ich das richtig lese.
    Nur wenn es voll ist sollte man sich Gedanken machen ob die Hardware vielleicht zu klein ist.



  • Das hatte ich auch schon gelesen, bin da aber nicht ganz schlau draus geworden.

    Viele schreiben die hätten mit beispielsweise einem AMD-SOC etwa 21% mit 3 NIC.

    Ich wundere mich nämlich gerade über meinen C2758 mit 4Gb RAM und 4 NIC. Der hat eine Usage von 74% derzeit.



  • MBUF ist im Groben der Speicher, den der Netzwerktreiber für sich beansprucht. Wie viel RAM beansprucht wird hängt also vom Treiber bzw. der Hardware und von der Anzahl der NICs ab, die maximale MBUF Größe ist aber vorgegeben.

    Dieser Vorgabewert lässt sich anpassen. Ebenso sind weitere Anpassungen für bestimmte Hardware erforderlich oder zumindest ratsam, um einen Überlauf zu vermeiden, denn dann steht die Kiste.
    Siehe dazu:
    https://doc.pfsense.org/index.php/Tuning_and_Troubleshooting_Network_Cards

    Grüße



  • Danke @viragomann ;)

    Also sollte man zumindest den ersten Absatz (den nmbcluster von 26584 auf 131072 anheben) durchspielen? Oder wäre noch mehr Pflicht?

    Leider hatte ich dahingehend noch keinen Absturz. Mich hatte wie gesagt nur der hohe MBUF-Wert irritiert. Bei einem Clean-Install liegt er jetzt bei 70%.

    Auch die meine NIC´s sind mit "igb" benannt, sollte ich deshalb dort vielleicht lieber auf 1 Millionen setzen?



  • @haithabu84:

    Leider hatte ich dahingehend noch keinen Absturz.

    ;D

    Wenn du mit dem Standardwert nur 70% hast, würde ich mir nicht allzu viele Gedanken machen. Eventuell den Wert verdoppeln, wenn du dir ganz sicher sein möchtest.
    Bei mir liegt die Auslastung bei 4 x igb nahezu konstant bei 38354/131072.

    Weitere Anpassungen die igb NICs betreffend habe ich nicht vorgenommen.



  • Was kann passieren wen man den Wert auf 1 Mille setzt? Eher gut oder weniger?



  • kann jemand kurz und verständlich, einem unwissenden erklären was es mit "MBUF Usage". Ich muss gestehen, dass ich diesen Wert noch nie zuvor gehört habe.

    Das ist bei pfSense was ja auf FreeBSD basiert historisch so gewachsen und da nun einmal nur ein
    gewisser Speicher für den Kernel zur Verfügung steht und dieser leider auch nicht so ohne weiteres
    erweitert werden kann, hat man sich dazu einfach eine Art Umweg geschaffen um etwas Speicher
    "auszulagern" bzw. einfach zu verlagern. Pro CPU Core und LAN Port wird eine Warteschlange gebildet
    das heißt bei einer 8 Core CPU sind das bei einem LAN Port 8 Warteschlangen wenn dort kein HT mit
    im Spiel ist! Und bei einer 8 Core CPU mit HT (16 threats) und vier LAN Ports kommt da eben auch mal
    schnell etwas zusammen. Hat man dann noch einen Squid Proxy am laufen und hat auch dafür den Speicher
    erhöht kann es einmal schnell eng werden. Abhilfe kann man aber mit der Installation von mehr RAM schaffen.
    Denn wenn man 8 GB RAM installiert hat und und die mbuf Auslastung bzw. Nutzung liegt bei 74 %, aber
    man hat noch ~6 GB RAM frei, kann man nun die mbuf Anzahl erhöhen und dann liegt die mbuf Anzahl bei
    sagen wir einmal ~10% aber man hat dann eben nur noch ~4 GB RAM frei.

    Installiert man noch weitere Pakete oder nutzt noch mehr Dienste kann es aber auch mit 8 GB RAM
    schon wieder eng werden, das ist je nach Konfiguration aber auch immer eine Sache der Admins.

    Es gibt Leute die fahren Snort, Squid & SquidGuard & HAVP/ClamAV und nutzen nur 2 LAN Ports
    zusammen mit einer Dual Core CPU und kommen damit locker aus und es gibt Leute die erhöhen;

    • die mbufs
    • Squid default RAM usage
    • Squid nur aus dem RAM cachen
    • Cache Erhöhung (/tmp oder /swap) im RAM

    Und haben dann so etwas wie den C2758 mit 8 CPU Cores und 4 GB LAN Ports und dann muss eben RAM
    in die Kiste rein und das nicht wenig! Also die benutzen dann eben lieber 8 GB - 16 GB oder mehr.

    Ich wundere mich nämlich gerade über meinen C2758 mit 4Gb RAM und 4 NIC. Der hat eine Usage von 74% derzeit.

    C2758 = 8 CPU Cores (16 HT) x 4 GB LAN Ports = 64 Warteschlangen und die je zu xyz MB
    die genaue MB Anzahl weiß ich auch nicht mehr aus dem Kopf.

    Also wer nun das geld hat und sich eben 2 x 8 GB RAM leisten kann sollte das auch tun und dann
    eben die mbufs anheben bis ein gutes Verhältnis erreicht worden ist.

    Und dann eben weiter so verfahren mit der Squid RAM nutzung und der Art und Weise von der Squid Nutzung
    also nur von HDD/SDD, RAM cachen oder ohne cache direkt.

    Bitte nicht vergessen solche Sachen wie TRIM, PowerD oder die mbuf Erhöhung in eine loader.conf.local
    Datei hinein zu schreiben, denn sonst ist alles nach einem Update oder Upgrade wieder futsch!

    Es ist halt alles eine Frage der Konfiguration, die einen sind Minimalisten und die anderen können
    nicht genug von allem haben oder rechnen einfach mehr Reserven mit ein.



  • @BlueKobold: Danke für die ausführliche Erklärung. ;)

    Ich zähle mich eher zu den Minimalisten. Bisher ist auch nicht geplant Caching einzusetzen, weshalb ich dahingehend auch keine extra SSD eingebaut habe.

    Die Anforderungen sehen eigentlich ziemlich überschaubar aus:

    Firewall und NAT… das typische halt
    NTP
    2x OpenVPN-Tunnel
    1x IPSEC
    Bind... nachinstalliertes Package
    Soll später mal als Proxy fungieren

    Soweit ich weiß unterstüzt der C2758 kein HT. Weshalb es sich also in Grenzen halten sollte.

    Eine loader.conf.local habe ich bereits erstellt und dort den MBUF verdoppelt. Trim ist nicht per Default aktiviert? PowerD habe ich auch noch nicht.



  • Das mit dem TRIM interessiert mich auch, habe eine SSD in eine APU1D4 eingebaut.



  • Ich zähle mich eher zu den Minimalisten.
    Dqann sollten 4 GB - 8 GB locker reichen

    Bisher ist auch nicht geplant Caching einzusetzen, weshalb ich dahingehend auch keine extra SSD eingebaut habe.

    Auf was hast Du denn Dein OS (pfSense) installiert? Ist halt so eine Sache wenn man Squid nutzt
    ist es schon ratsam eine mSATA, SSD oder SSD-DOM zu installieren und von daher wäre dann auch
    die Aktivierung von der TRIM Unterstützung seitens pfSense sinnvoll.

    Die Anforderungen sehen eigentlich ziemlich überschaubar aus:

    Wenn das nur alles immer so stimmen würde könnte man viel gezielter helfen und/oder
    Tips dazu geben, nur all zu oft werden 4 Sachen benannt und nachher stellt sich so pö á pö
    heraus dass es dann doch fast wieder 10 Sachen sind und dann ist halt auch mitunter die
    Hilfe nicht mehr so zielgerichtet wie man annimmt.

    Soll später mal als Proxy fungieren

    Siehst Du das meinte ich weiter oben! Aber ok warum denn nicht, aber eine SSD sollte
    dann schon dazu kommen, es sei denn Du konfigurierst Dir dann den Squid halt anders.

    Soweit ich weiß unterstüzt der C2758 kein HT. Weshalb es sich also in Grenzen halten sollte.

    8 CPU Core und 4 LAN Ports = 32 Warteschlangen

    Eine loader.conf.local habe ich bereits erstellt und dort den MBUF verdoppelt.

    Man kann auch nur die Hälfte nehmen und dann immer ein wenig mehr um es so auszutarieren
    das man auf ~30% mbuf kommt und noch genug RAM frei hat.

    Trim ist nicht per Default aktiviert?

    Nein. Denn es gibt ja auch noch SSDs die kein TRIM können und von daher wäre
    das dann voll in die falsche Richtung, bloß weil jemand eine mSATA oder SSD installiert hat.

    PowerD habe ich auch noch nicht.

    Gut das wäre noch so eine Sache wenn man im Widget eine andere CPU Frequenz sieht
    oder die CPU mehrere Frequenzen hat auf denen sie laufen kann.



  • Das mit dem TRIM interessiert mich auch, habe eine SSD…

    Gut das kann ich verstehen nur es kommt eben darauf an, ob die SSD oder mSATA denn auch wirklich
    TRIM unterstützt!!! Und das kann nur der Käufer wissen und nicht das pfSense Team! Also wäre es
    schon einmal schick zu wissen was denn für eine SSD verbaut wurde? Sollte diese TRIM Unterstützung

    …..in eine APU1D4 eingebaut.

    Ok da wäre mir als erstes PowerD (high adaptive) viel wichtiger denn sonst wird die CPU auch nicht richtig
    genutzt! Ohne PowerD kommt man so auf einen Durchsatz von ~450 MBit/s und mit eingeschaltetem PowerD
    (high adaptive) kommt man dann so auf ~650 MBit/s - 750 MBit/s.



  • SSD: Kingston SSDNow V300 60GB
    Die sollte eigentlich TRIM beherrschen.

    Das mit dem PowerD wusste ich noch gar nicht, danke!
    Die Werte unten standen bereits auf hiadaptive aber PowerD an sich war noch nicht an.

    Gruß



  • SSD: Kingston SSDNow V300 60GB
    Die sollte eigentlich TRIM beherrschen.

    Sollte hätte und könnte ist in der EDV/IT wohl eher kontraproduktiv.

    Kingston schreibt dazu:
    Alle MLC-basierten SSDNow Laufwerke von Kingston sind jetzt TRIM-kompatibel. Einige unserer SSDNow-Laufwerke der ersten Generation sind nicht TRIM-kompatibel.

    Das mit dem PowerD wusste ich noch gar nicht, danke!
    Die Werte unten standen bereits auf hiadaptive aber PowerD an sich war noch nicht an.

    Also bei dem PC Engines APU 1D4 würde ich PowerD auf alle Fälle aktivieren wollen.
    Man spart Strom und die steigert die Geschwindigkeit bzw. damit den Durchsatz.



  • Installiert habe ich pfSense auf einen SATA-DOM Innodisk DSSL-04GD07SCADB(F) mit 4Gb. Es handelt sich dabei um eine SLC.

    Zur Not würde ich noch eine SSD nachträglich einbauen, aber ich sehe derzeit keinen Sinn darin. In 1-2 Jahren kann ich eventuell mal darüber nachdenken.

    Thematik Proxy: Derzeit lohnt es sich ebenfalls noch nicht, weshalb ich mir damit behelfe allen Clients den Internet-Zugang zu verweigern und nur einigen wenigen ausgewählten zu erlauben.



  • @BlueKobold:

    Kingston schreibt dazu:
    Alle MLC-basierten SSDNow Laufwerke von Kingston sind jetzt TRIM-kompatibel. Einige unserer SSDNow-Laufwerke der ersten Generation sind nicht TRIM-kompatibel.

    Genau das ist ja das Problem, ich habe auf dem Datenblatt von Kingston nichts davon gefunden, jedoch gibt es eine FAQ wo gezeigt wird wie man TRIM in Windows 7 aktiviert, was nur darauf schließen lässt..