Gibt es eine Möglichkeit, CPS- und Thruoghput-Metriken in Linux zu erhalten?

Gibt es eine Möglichkeit, CPS- und Thruoghput-Metriken in Linux zu erhalten?

Ich möchte die Netzwerkauslastung meines Debian 9-Servers analysieren, um mögliche Netzwerküberlastungen zu erkennen.

Die wichtigsten Kennzahlen, die ich analysieren muss, sind:

  • CPS (Verbindungen pro Sekunde)
  • Durchsatz

Gibt es eine Möglichkeit, diese Metriken innerhalb von Linux abzurufen?
Ich dachte, dass die CPS-Metrik irgendwie über Conntrack-Verbindungsereignisse abgerufen werden könnte, NEWbin mir aber nicht sicher, ob das der beste Weg ist.

Entschuldigen Sie, wenn das offensichtlich ist.

PS: Dieser Server verarbeitet nicht nur den lokalen Datenverkehr, er leitet auch viel Datenverkehr weiter.

Antwort1

Ich denke, es würde ausreichen, den Ursprung dieser Metriken anhand der nativen Linux-API zu beschreiben.


Durchsatz

Übrigens, dieDurchsatzMetrik im Allgemeinen ist etwas, dasexternin Bezug auf das Testobjekt (OS Linux, von dem Sie sprechen). D. h. grob gesagt haben wir zwei Hosts (z. B. Client und Server) und ein Testobjekt dazwischen. Wir leiten den Netzwerkverkehr zwischen Client und Server weiter und zeichnen den (Grenz-)Durchsatz des Testobjekts auf (z. B. mitiperf).
Aber innerhalb von OS Linux können wir den Durchsatz einfach nur pro Schnittstelle messen.
Sie können also einfach beobachten/proc/net/devund berechnen Sie dieDelta von Bytes pro Sekunde:

sh-tst# cat /proc/net/dev 
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo: 87016202  715723    0    0    0     0          0         0 87016202  715723    0    0    0     0       0          0
  eth3:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth2:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth1: 246415305 2899662    0 132906    0     0          0       230  5466117   19016    0    0    0     0       0          0
  eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

CPS

Dasselbe gilt für die CPS-Metrik. Im Grunde handelt es sich dabei um eine externe Messung. Aber innerhalb Ihres Linux-Systems können Sie versuchen, sie auf der Grundlage von Folgendem zu berechnen /proc/net/stat/ip_conntrack:

sh-tst# cat /proc/net/stat/ip_conntrack 
entries  searched found new invalid ignore delete delete_list insert insert_failed drop early_drop icmp_error  expect_new expect_create expect_delete search_restart
000000f8  00001742 0003142f 0001e85a 00000079 00021333 0001e6cf 00003a3d 00003bc5 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
000000f8  00002389 0005f1a0 0003b6f3 00000085 0004286f 0003b59e 00003cea 00003e3f 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
000000f8  000002c0 00037a77 00000714 00000000 000382cb 00000825 00000724 00000616 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
000000f8  00000225 00026cf9 00000271 00000000 00026e48 00000348 000002bd 000001e6 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000

Auslnstat(8)Mann:

/proc/net/stat/ip_conntrack, /proc/net/stat/nf_conntrack Conntrack-bezogene Zähler. ip_conntrack dient nur der Abwärtskompatibilität mit älterem Benutzerbereich und zeigt dieselben Daten wie nf_conntrack.

...

neu Anzahl der Conntrack-Einträge hinzugefügt, die vorher nicht erwartet wurden.

In der Linux-Verbindungsverfolgung:

NEU - bedeutet, dass das Paket eine neue Verbindung gestartet hat oder anderweitig mit einer Verbindung verknüpft ist, die keine Pakete in beide Richtungen gesehen hat, und

Sie wollen also berechnenDelta newpro Sekunde.

Mehr lesen:

Antwort2

Der mit sysstat mitgelieferte Befehl sar erledigt beides.

So überwachen Sie Verbindungen pro Sekunde: sar -n TCP 1

active/s sind die ausgehenden TCP-Verbindungen passive/s sind die eingehenden TCP-Verbindungen

für UDP sar -n UDP 1

Um den Netzwerkdurchsatz anzuzeigen, geben Sie sar -n DEV ein (optional können Sie eine 1 hinzufügen, um den aktuellen Wert pro Sekunde zu überwachen)

verwandte Informationen