Monday, May 6, 2013

Benchmarking :: MySQL, CPU, File I / O, memoria :: Sysbench y Apache Benchmark

Original Post: http://anothermysqldba.blogspot.com/2013/05/benchmarking-mysql-cpu-file-io-memory.html


Decidir qué herramienta que desea utilizar:
Usaré Sysbench para este ejemplo:
Primero descarga sysbench
Instalar:
Manual SysBench
Revise sus opciones:
# Sysbench - test = OLTP ayuda

Compilado en pruebas:
fileio - Prueba de E / S de archivo
CPU - prueba de rendimiento de la CPU
memoria - Funciones de memoria prueba de velocidad
Discusiones - Temas prueba de rendimiento del subsistema
mutex - prueba de rendimiento Mutex
OLTP - test OLTP

Comandos: preparar limpieza versión ayuda run

Algunos ejemplos a continuación:

fileio - Prueba de E / S de archivo
# sysbench --test=fileio help 
fileio options:
--file-num=N number of files to create [128]
--file-block-size=N block size to use in all IO operations [16384]
--file-total-size=SIZE total size of files to create [2G]
--file-test-mode=STRING test mode {seqwr, seqrewr, seqrd, rndrd, rndwr, rndrw}
--file-io-mode=STRING file operations mode {sync,async,fastmmap,slowmmap} [sync]
--file-extra-flags=STRING additional flags to use on opening files {sync,dsync,direct} []
--file-fsync-freq=N do fsync() after this number of requests (0 - don't use fsync()) [100]
--file-fsync-all=[on|off] do fsync() after each write operation [off]
--file-fsync-end=[on|off] do fsync() at the end of test [on]
--file-fsync-mode=STRING which method to use for synchronization {fsync, fdatasync} [fsync]
--file-merged-requests=N merge at most this number of IO requests if possible (0 - don't merge) [0]
--file-rw-ratio=N reads/writes ratio for combined test [1.5] 

  • # Sysbench - test = fileio prepare
  • # Sysbench - test = fileio - test-mode file = rndwr plazo


CPU - prueba de rendimiento de la CPU
# Sysbench - test = cpu ayuda
opciones de CPU:
- CPU-max-prime N = límite superior para el generador de números primos [10000] 


  • # Sysbench - test = CPU - num-threads = 25 run


memoria - Funciones de memoria prueba de velocidad
# sysbench --test=memory help 
memory options:
--memory-block-size=SIZE size of memory block for test [1K]
--memory-total-size=SIZE total size of data to transfer [100G]
--memory-scope=STRING memory access scope {global,local} [global]
--memory-hugetlb=[on|off] allocate memory from HugeTLB pool [off]
--memory-oper=STRING type of memory operations {read, write, none} [write]
--memory-access-mode=STRING memory access mode {seq,rnd} [seq] 

  • # Sysbench - test = memoria <MEMORIA opciones> plazo

Discusiones - Temas prueba de rendimiento del subsistema
# sysbench --test=threads help   
threads options:
--thread-yields=N number of yields to do per request [1000]
--thread-locks=N number of locks per thread [8] 

  • # # Sysbench - test = Discusiones - num-threads = 64 - = prueba hilos - hilo-rendimiento = 100 - hilo-locks = 6 run


mutex - prueba de rendimiento Mutex
# sysbench --test=mutex help   
mutex options:
--mutex-num=N total size of mutex array [4096]
--mutex-locks=N number of mutex locks to do per thread [50000]
--mutex-loops=N number of empty loops to do inside mutex lock [10000] 
  • # Sysbench - test = mutex - num-threads = 64 run




OLTP - test OLTP
# sysbench --test=oltp help
oltp options:
--oltp-test-mode=STRING test type to use {simple,complex,nontrx,sp} [complex]
--oltp-reconnect-mode=STRING reconnect mode {session,transaction,query,random} [session]
--oltp-sp-name=STRING name of store procedure to call in SP test mode []
--oltp-read-only=[on|off] generate only 'read' queries (do not modify database) [off]
--oltp-skip-trx=[on|off] skip BEGIN/COMMIT statements [off]
--oltp-range-size=N range size for range queries [100]
--oltp-point-selects=N number of point selects [10]
--oltp-simple-ranges=N number of simple ranges [1]
--oltp-sum-ranges=N number of sum ranges [1]
--oltp-order-ranges=N number of ordered ranges [1]
--oltp-distinct-ranges=N number of distinct ranges [1]
--oltp-index-updates=N number of index update [1]
--oltp-non-index-updates=N number of non-index updates [1]
--oltp-nontrx-mode=STRING mode for non-transactional test {select, update_key, update_nokey, insert, delete} [select]
--oltp-auto-inc=[on|off] whether AUTO_INCREMENT (or equivalent) should be used on id column [on]
--oltp-connect-delay=N time in microseconds to sleep after connection to database [10000]
--oltp-user-delay-min=N minimum time in microseconds to sleep after each request [0]
--oltp-user-delay-max=N maximum time in microseconds to sleep after each request [0]
--oltp-table-name=STRING name of test table [sbtest]
--oltp-table-size=N number of records in test table [10000]
--oltp-dist-type=STRING random numbers distribution {uniform,gaussian,special} [special]
--oltp-dist-iter=N number of iterations used for numbers generation [12]
--oltp-dist-pct=N percentage of values to be treated as 'special' (for special distribution) [1]
--oltp-dist-res=N percentage of 'special' values to use (for special distribution) [75]

General database options:

--db-driver=STRING specifies database driver to use ('help' to get list of available drivers)
--db-ps-mode=STRING prepared statements usage mode {auto, disable} [auto]


Compiled-in database drivers:
mysql - MySQL driver

mysql options:
--mysql-host=[LIST,...] MySQL server host [localhost]
--mysql-port=N MySQL server port [3306]
--mysql-socket=STRING MySQL socket
--mysql-user=STRING MySQL user [sbtest]
--mysql-password=STRING MySQL password []
--mysql-db=STRING MySQL database name [sbtest]
--mysql-table-engine=STRING storage engine to use for the test table {myisam,innodb,bdb,heap,ndbcluster,federated} [innodb]
--mysql-engine-trx=STRING whether storage engine used is transactional or not {yes,no,auto} [auto]
--mysql-ssl=[on|off] use SSL connections, if available in the client library [off]
--myisam-max-rows=N max-rows parameter for MyISAM tables [1000000]
--mysql-create-options=STRING additional options passed to CREATE TABLE [] 

sysbench espera encontrar la base de datos sbtest así que asegúrate y crear la primera base de datos o definir lo que usted prefiera.
  • sysbench - test = OLTP ayuda | grep sbtest
    - OLTP-table-name = nombre de la cadena de la tabla de prueba [sbtest]
    - Mysql-user = STRING usuario MySQL [sbtest]
    - Mysql-db = cadena de nombre de base de datos MySQL [sbtest]

# Sysbench - test = OLTP - mysql-host = localhost - mysql-user = root - mysql-password = <La here> - mysql-tabla-ENGINE = InnoDB prepare

# Sysbench - test = OLTP - mysql-host = localhost - mysql-user = root - mysql-password = <La here> - mysql-tabla-ENGINE = InnoDB - num-threads = 25 run

A continuación, mantener un ojo en sus resultados, así como la base de datos como las pruebas se ejecutan.



Apache Benchmark y | |
WWW :: Mecanizar :: Firefox

La clave para llevar este caso es utilizar estas herramientas para comparar su proceso de solicitud y no sólo un factor de la arquitectura.

Por ejemplo, si usted espera tener 20.000 usuarios a la hora de llenar su formulario web, entonces usted debe comparar su aplicación para manejar eso. Puede utilizar las herramientas arriba para imitar los mensajes, por sólo un ejemplo al pasar tokens, y luego probar el código que se encuentra en el lugar de su aplicación. Una prueba como esta a continuación, pondrá a prueba la base de código y con el registro adecuado en el lugar (que también se puede activar mediante un token) que puede poner a prueba qué tan bien los desarrolladores, dba y el sistema está construido.

Muy sencillo ejemplo del concepto:

Si puede abrir la url con elinks que puedas benchmark.

elinks http://www.google.com/search?ie=ISO-8859-1\&hl=en\&source=hp\&q=mysql

# ab -n 10 -c 2 http://www.google.com/search?ie=ISO-8859-1\&hl=en\&source=hp\&q=mysql 

Por supuesto, usted desea ejecutar esto en contra de su sistema en un nivel mucho más alto para probar cómo responde su solicitud.