Was bedeutet 's' und 'u' Buchstaben für die CPU-Auslastung im iperf3-Befehl mit -V?

786
Jacob

Ich habe eine sehr einfache Frage: Wenn ich Iperf3 mit meinem Server und auf dem Client verwende, füge ich paramater -V hinzu, was bedeutet, dass detailliertere Informationen angezeigt werden. Es werden Informationen zur CPU-Auslastung auf Server und Client angezeigt. Beispiel für angezeigte Informationen:

CPU Utilization: local/sender 0.2% (0.1%u/0.1%s), remote/receiver 11.5% (7.7%u/3.9%s) 

Ich weiß nicht, was diese Buchstaben "u" und "s" bedeuten, also ist dies meine Frage und ich suche deine Hilfe.

1
Meine Vermutung - Benutzer und System. DavidPostill vor 7 Jahren 2

1 Antwort auf die Frage

1
Ben N

Der Kommentar von DavidPostill ist richtig: Sie stehen für U ser und S ystem. Um das zu beweisen, schauen wir uns den Code an .

Wir finden den String "CPU Utilization" iniperf_locale.c . Diese Datei scheint alle sprachspezifischen Zeichenfolgen zu haben, und die Variable für die Zeile, in der die CPU-Auslastung angegeben ist, wird aufgerufen report_cpu.

const char report_cpu[] = "CPU Utilization: %s/%s %.1f%% (%.1f%%u/%.1f%%s), %s/%s %.1f%% (%.1f%%u/%.1f%%s)\n"; 

Wir finden diese Variable iniperf_api.c . Die dort verwendete Funktion scheint mehr oder weniger ähnlich zu sein printf. Sie nimmt eine Formatzeichenfolge (unsere report_cpu) und ersetzt alle Platzhalter darin durch eine für Menschen lesbare Version der angegebenen Variablen.

iperf_printf(test, report_cpu, report_local, test->sender?report_sender:report_receiver, test->cpu_util[0], test->cpu_util[1], test->cpu_util[2], report_remote, test->sender?report_receiver:report_sender, test->remote_cpu_util[0], test->remote_cpu_util[1], test->remote_cpu_util[2]); 

Die vierten und fünften Platzhalter, die %.1fs in den Klammern, sind das, was wir untersuchen. Es sieht so aus, als ob die ersten beiden Parameter der Funktion eine Art Kontext bzw. die Vorlagenzeichenfolge sind. Wir werden also mit dem Zählen beginnen report_local. Der vierte ist test->cpu_util[1]. Einige Grab zeigt, dass diese dreiwertigen cpu_utilArrays erzeugt werden, iniperf_util.c . Der interessante Teil ist am Ende der cpu_utilFunktion:

pcpu[0] = (((ctemp - clast) * 1000000.0 / CLOCKS_PER_SEC) / timediff) * 100; pcpu[1] = (userdiff / timediff) * 100; pcpu[2] = (systemdiff / timediff) * 100; 

Steckplätze 1 und 2 basieren in der Tat auf der Benutzerzeit bzw. der Systemzeit, während Steckplatz 0 die Gesamtnutzung darstellt.