GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo comparar su sistema (CPU, File IO, MySQL) con Sysbench

sysbench es una suite de referencia que le permite obtener rápidamente una impresión del rendimiento del sistema, lo cual es importante si planea ejecutar una base de datos con una carga intensiva. Este artículo explica cómo comparar el rendimiento de su CPU, E/S de archivos y MySQL con sysbench.

1 Instalación de sysbench

En Debian/Ubuntu, sysbench se puede instalar de la siguiente manera:

sudo apt-get install sysbench

En CentOS y Fedora, se puede instalar desde el repositorio de EPEL.

Agregar repositorio EPEL:

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

Luego instale sysbench con yum:

yum install sysbench

Obtenga una descripción general de las opciones de sysbench

Echa un vistazo a

man sysbench

para obtener más información sobre sus parámetros.

Ahora realizaré tres pruebas básicas simples que le brindarán más información sobre el rendimiento de su CPU, el rendimiento de E/S de archivos y el rendimiento de MySQL.

2 puntos de referencia de CPU

Puede comparar el rendimiento de su CPU de la siguiente manera:

sysbench --test=cpu --cpu-max-prime=20000 run
[email protected]:~# sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 20000


Test execution summary:
    total time:                          23.8724s
    total number of events:              10000
    total time taken by event execution: 23.8716
    per-request statistics:
         min:                                  2.31ms
         avg:                                  2.39ms
         max:                                  6.39ms
         approx.  95 percentile:               2.44ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   23.8716/0.00

[email protected]:~#

Ves muchos números, el más importante es el tiempo total:

tiempo total:                          23,8724 s

Por supuesto, debe comparar puntos de referencia en múltiples sistemas para saber cuánto valen estos números.

3 puntos de referencia de E/S de archivos

Para medir el rendimiento de E/S del archivo, primero debemos crear un archivo de prueba que sea mucho más grande que su RAM (porque, de lo contrario, el sistema usará la RAM para el almacenamiento en caché, lo que altera los resultados de referencia). 150 GB es un buen valor:

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

Luego, podemos ejecutar el benchmark:

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: no version information available (required by sysbench)
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1
Initializing random number generator from timer.


Extra file open flags: 0
128 files, 1.1719Gb each
150Gb total file size
Block size 16Kb
Number of random requests for random IO: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Threads started!
Time limit exceeded, exiting...
Done.

Operations performed:  600 Read, 400 Write, 1186 Other = 2186 Total
Read 9.375Mb  Written 6.25Mb  Total transferred 15.625Mb  (53.316Kb/sec)
    3.33 Requests/sec executed

Test execution summary:
    total time:                          300.0975s
    total number of events:              1000
    total time taken by event execution: 158.7611
    per-request statistics:
         min:                                  0.01ms
         avg:                                158.76ms
         max:                               2596.96ms
         approx.  95 percentile:             482.29ms

Threads fairness:
    events (avg/stddev):           1000.0000/0.00
    execution time (avg/stddev):   158.7611/0.00

[email protected]:~#

El número importante es el valor de Kb/seg:

Lectura 9,375 Mb  Escrito 6,25 Mb  Total transferido 15,625 Mb  (53,316 Kb/seg)

Después de la evaluación comparativa, puede eliminar el archivo de prueba de 150 GB del sistema:

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

4 Evaluación comparativa de MySQL

Para medir el rendimiento de MySQL, primero creamos una tabla de prueba en la base de datos test con 1 000 000 de filas de datos:

sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword prepare
[email protected]:~# sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword prepare
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Creating table 'sbtest'...
Creating 1000000 records in table 'sbtest'...
[email protected]:~#

Reemplace la palabra sucontraseñarootsql con su contraseña de root de MySQL en el comando anterior. Haz lo mismo en los siguientes comandos.

Luego, puede ejecutar el punto de referencia de MySQL de la siguiente manera:

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

No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8

Doing OLTP test.
Running mixed OLTP test
Doing read-only test
Using Special distribution (12 iterations,  1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.

OLTP test statistics:
    queries performed:
        read:                            2253860
        write:                           0
        other:                           321980
        total:                           2575840
    transactions:                        160990 (2683.06 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 2253860 (37562.81 per sec.)
    other operations:                    321980 (5366.12 per sec.)

Test execution summary:
    total time:                          60.0024s
    total number of events:              160990
    total time taken by event execution: 479.3419
    per-request statistics:
         min:                                  0.81ms
         avg:                                  2.98ms
         max:                               3283.40ms
         approx.  95 percentile:               4.62ms

Threads fairness:
    events (avg/stddev):           20123.7500/63.52
    execution time (avg/stddev):   59.9177/0.00

[email protected]:~#

El número importante es el valor de las transacciones por segundo:

transacciones:                        160990 (2683,06 por seg.)

Para limpiar el sistema después (es decir, eliminar la tabla de prueba), ejecute:

sysbench --test=oltp --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword cleanup

5 Enlaces

  • sysbench:http://sysbench.sourceforge.net/

Linux
  1. Cómo editar su archivo de hosts en Windows 10

  2. ¿Cómo hacer una copia de seguridad de su base de datos Mysql con phpMyAdmin?

  3. Cómo comparar sus servidores Ubuntu Linux con Phoronix Test Suite

  4. Cómo crear y montar el sistema de archivos Btrfs (explicado con ejemplos)

  5. Cómo proteger su sistema Ubuntu Linux con SurfShark VPN

Cómo desfragmentar su sistema Linux

Cómo rescatar su sistema Windows o Linux con Rescatux

Cómo configurar múltiples servidores MySQL en un sistema usando mysqld_multi

¿Cómo redirigir la salida de system() a un archivo?

¿Cómo rellenar un archivo con FF usando dd?

¿Cómo puedo usar rsync con un sistema de archivos FAT?