GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie Sie Ihr System (CPU, File IO, MySQL) mit Sysbench bewerten

sysbench ist eine Benchmark-Suite, mit der Sie sich schnell einen Eindruck von der Systemleistung verschaffen können, was wichtig ist, wenn Sie eine Datenbank unter intensiver Last betreiben möchten. Dieser Artikel erklärt, wie Sie Ihre CPU-, Datei-E/A- und MySQL-Leistung mit sysbench messen.

1 Sysbench installieren

Unter Debian/Ubuntu kann sysbench wie folgt installiert werden:

sudo apt-get install sysbench

Unter CentOS und Fedora kann es aus dem EPEL-Repository installiert werden.

EPEL-Repository hinzufügen:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y installiere epel-release
yum -y update

Installieren Sie dann sysbench mit yum:

yum installiere Sysbench

Verschaffen Sie sich einen Überblick über die Sysbench-Optionen

Schau mal auf

man sysbench

um mehr über seine Parameter zu erfahren.

Ich werde jetzt einfache drei grundlegende Tests durchführen, die Ihnen mehr über Ihre CPU-Leistung, Datei-IO-Leistung und MySQL-Leistung verraten.

2 CPU-Benchmark

Sie können Ihre CPU-Leistung wie folgt messen:

sysbench --test=cpu --cpu-max-prime=20000 ausführen
[email protected]:~# sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.12:  Multi-Threaded-Systembewertungs-Benchmark

Wird ausgeführt der Test mit folgenden Optionen:
Anzahl der Threads: 1

CPU-Performance-Benchmark wird durchgeführt

Threads gestartet!
Fertig.

Maximale Primzahl überprüft in CPU-Test: 20000


Zusammenfassung der Testausführung:
    Gesamtzeit:                          23,8724 s
     Gesamtzahl der Ereignisse:             Gesamtzeit durch Ereignisausführung:23.8716
Statistik pro Equest:
min:2.31ms
avg:2.39ms
max:6,39ms
ca. 95 Perzentil:               2,44 ms

Threads fairness:
    Ereignisse (Durchschn./Std.Abw.):           10000.0000/0.00
    Ausführungszeit (Durchschn./Std.Abw.):   23.8716/0.0 <.0.0 br />[E-Mail geschützt]:~#

Sie sehen viele Zahlen, die wichtigste davon ist die Gesamtzeit:

Gesamtzeit:                          23,8724 s

Natürlich müssen Sie Benchmarks über mehrere Systeme hinweg vergleichen, um zu wissen, was diese Zahlen wert sind.

3 Datei-IO-Benchmark

Um die Datei-IO-Leistung zu messen, müssen wir zuerst eine Testdatei erstellen, die viel größer als Ihr RAM ist (da das System sonst RAM zum Caching verwendet, was die Benchmark-Ergebnisse manipuliert) - 150 GB ist ein guter Wert:

sysbench --test=fileio --file-total-size=150G vorbereiten

Danach können wir den Benchmark ausführen:

sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
[email protected]:~# sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 -- max-requests=0 run
sysbench: /usr/lib/libmysqlclient.so.18: keine Versionsinformationen verfügbar (erforderlich von sysbench)
sysbench 0.4.12:  Multi-Threaded Systembewertungs-Benchmark

Durchführen des Tests mit folgenden Optionen:
Anzahl der Threads: 1
Initialisieren des Zufallszahlengenerators vom Timer.


Flags für das Öffnen zusätzlicher Dateien: 0
128 Dateien, 1,1719 GB jede
150 GB Gesamtdateigröße
Blockgröße 16 KB
Anzahl zufälliger Anfragen für zufällige IO: 0
Lese-/Schreibverhältnis für kombinierte zufällige IO Test: 1.50
Periodisch FSYNC aktiviert, Aufruf fsync() jede 100 Anforderungen.
Aufruf fsync() am Ende des Tests, aktiviert.
Verwenden des synchronen E/A-Modus
Wird ausgeführt zufälliger R/W Test
Threads gestartet!
Zeitlimit überschritten, Beenden...
Fertig.

Durchgeführte Operationen:  600 Lesen, 400 Schreiben, 1186 Sonstiges =2186 insgesamt
Lesen 9,375 Mb  Geschrieben 6,25 Mb  Insgesamt übertragen 15,625 Mb  (53,316 Kb/s)
    3,33 Anfragen/s ausgeführt

Zusammenfassung der Testausführung:
    Gesamtzeit:          br              Gesamtzahl der Ereignisse:1000
Gesamtzeit durch Ereignisausführung:158.7611
Statistiken pro Request:
min:0.01ms
AVG:158.76ms
max:2596.96 ms
         ca. 95 Perzentil:             482,29 ms

Threads fairness:
    Ereignisse (Durchschn./Std.Abw.):           1000.0000/0,00
    Ausführungszeit (Durchschn./Std.Abw.):   158,7611/0,0<.0.0 br />[E-Mail geschützt]:~#

Die wichtige Zahl ist der Kb/sec-Wert:

Gelesen 9,375 Mb  Geschrieben 6,25 Mb  Gesamt übertragen 15,625 Mb  (53,316 Kb/s)

Nach dem Benchmark können Sie die 150 GB große Testdatei vom System löschen:

sysbench --test=fileio --file-total-size=150G Bereinigung

4 MySQL-Benchmark

Um die Leistung von MySQL zu messen, erstellen wir zunächst eine Testtabelle im Datenbanktest mit 1.000.000 Datenzeilen:

sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword vorbereiten
[email protected]:~# sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql- password=yourrootsqlpassword Vorbereiten
sysbench 0.4.12:Multithread-Systembewertungs-Benchmark
Keine DB-Treiber angegeben, mysql verwendet
Tabelle 'sbtest' erstellen...
1000000 Datensätze in Tabelle 'sbtest' erstellen...
[email protected]:~#

Ersetzen Sie das Wort yourrootsqlpassword mit Ihrem MySQL-Root-Passwort im obigen Befehl. Machen Sie dasselbe in den nächsten Befehlen.

Anschließend können Sie den MySQL-Benchmark wie folgt ausführen:

sysbench --test=oltp --oltp-table-size=1000000  --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword --max- time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
[email protected]:~# sysbench --test=oltp  --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql- password=yourrootsqlpassword --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
sysbench 0.4.12:  Multi-Threaded System Evaluation Benchmark

Keine DB-Treiber spezifiziert, mit mysql
Laufen des Tests mit folgenden Optionen:
Anzahl der Threads: 8

Durchführen des OLTP-Tests.
Ausführen eines gemischten OLTP-Tests
Durchführen eines schreibgeschützten Tests
Verwenden einer speziellen Verteilung (12 Iterationen,  1 Prozent der Werte werden in 75 Prozent-Fällen zurückgegeben)
Verwenden von "BEGIN" zum Starten von Transaktionen
Verwenden von auto_inc auf der ID-Spalte 
Threads gestartet!
Zeitlimit überschritten, beenden...
(letzte Nachricht 7 mal wiederholt)
Fertig.

OLTP -Teststatistik:
ausgeführte Abfragen:
Lesen:2253860
schreiben:0
Sonstiges:32 1980
Total:2575840
Transaktionen:160990 (2683,06 pro Sec.)
Deadlocks:0 (0,00 pro Sek.)
Lesen /Schreibanfragen:2253860 (37562,81 pro Sec.))
Andere Operationen:321980 (5366.12 pro Sec.)

Zusammenfassung Zeit für Ereignisausführung:479.3419
Statistik von Per-Request:
min:0.81ms
avg:2,98ms
max:3283,40 ms
ca. 95 Perzentil:               4,62 ms

Threads fairness:
    Ereignisse (Durchschn./Std.Abw.):           20123,7500/63,52
    Ausführungszeit (Durchschn./Std.Abw.):   59,9177/0.> br />[E-Mail geschützt]:~#

Die wichtige Zahl ist der Wert der Transaktionen pro Sekunde:

Transaktionen:                        160990 (2683,06 pro Sek.)

Um das System danach zu bereinigen (d. h. die Testtabelle zu entfernen), führen Sie Folgendes aus:

sysbench --test=oltp  --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword cleanup
  • sysbench:http://sysbench.sourceforge.net/

Linux
  1. Verbessern Sie die Linux-Systemleistung mit noatime

  2. So erstellen Sie eine Datenbank in MySQL mit MySQL Workbench

  3. So bearbeiten Sie Ihre Hosts-Datei in Windows 10

  4. Wie kann ich eine Datei von Awk kategorisieren?

  5. Wie sichert man seine MySQL-Datenbank mit phpMyAdmin?

So defragst du dein Linux-System

So retten Sie Ihr Windows- oder Linux-System mit Rescatux

So erhalten Sie Systemstatistiken mit node.js

Wie bekomme ich den Prozentsatz der Prozessorauslastung mit Bash?

Wie fülle ich eine Datei mit FF mit dd auf?

Wie kann ich rsync mit einem FAT-Dateisystem verwenden?