Este es el comando sysbench que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
sysbench: una herramienta de referencia modular, multiplataforma y multiproceso.
SINOPSIS
banco de sistema [opciones-comunes] --test = nombre [opciones de prueba] comando
banco de sistema [{-h | --ayuda} | {-v | --versión}]
DESCRIPCIÓN
SysBench es una herramienta de referencia modular, multiplataforma y multiproceso para evaluar el sistema operativo
parámetros que son importantes para un sistema que ejecuta una base de datos bajo carga intensiva.
La idea de esta suite de referencia es obtener rápidamente una impresión sobre el rendimiento del sistema.
sin configurar comparativas de base de datos complejas o incluso sin instalar una base de datos en
todas.
Las características actuales permiten probar los siguientes parámetros del sistema:
· Rendimiento de E / S de archivos
· Rendimiento del programador
· Asignación de memoria y velocidad de transferencia
· Rendimiento de implementación de subprocesos POSIX
· Rendimiento del servidor de base de datos
El diseño es muy simple. SysBench ejecuta un número específico de subprocesos y todos
ejecutar solicitudes en paralelo. La carga de trabajo real producida por las solicitudes depende de la
modo de prueba especificado. Puede limitar el número total de solicitudes o el tiempo total
para el índice de referencia, o ambos.
Los modos de prueba disponibles se implementan mediante módulos compilados, y SysBench fue diseñado para
Haga que agregar nuevos modos de prueba sea una tarea fácil. Cada modo de prueba puede tener adicionales (o
opciones específicas de la carga de trabajo).
OPCIONES
--num-hilos
El número total de subprocesos de trabajo para crear (predeterminado: 1)
--max-solicitudes
Límite para el número total de solicitudes. 0 significa ilimitado (predeterminado: 10000)
--máx-tiempo
Límite del tiempo total de ejecución en segundos. 0 (predeterminado: 0)
- tamaño de pila de hilo
Tamaño de la pila para cada hilo (predeterminado: 32 K)
--init-rnd
Especifica si el generador de números aleatorios debe inicializarse desde el temporizador antes de la prueba
inicio (predeterminado: apagado)
--prueba
Nombre del modo de prueba a ejecutar Requerido
--depurar
Imprime más información de depuración (predeterminado: desactivado)
--validar
Realice la validación de los resultados de la prueba siempre que sea posible (predeterminado: desactivado)
--ayuda
Imprima ayuda sobre la sintaxis general o en un modo de prueba especificado con --test y salga
--versión
Muestra la versión del programa.
- percentil
SysBench mide los tiempos de ejecución de todas las solicitudes procesadas para mostrar estadísticas
información como tiempo de ejecución mínimo, medio y máximo. Para la mayoría de los puntos de referencia
también es útil para conocer un valor de tiempo de ejecución de la solicitud que coincida con algún percentil (p. ej.
El percentil del 95% significa que debemos eliminar el 5% de las solicitudes más largas y elegir el
valor máximo de los restantes).
Esta opción permite especificar un rango percentil de los tiempos de ejecución de la consulta para contar
(predeterminado: 95)
--lote
Volcar los resultados actuales periódicamente (predeterminado: desactivado; consulte también la sección denominada "Lote
modo")
- retardo de lote
Retraso entre volcados de lotes en segundos (predeterminado: 300; consulte también la sección denominada "Batch
modo")
Tenga en cuenta que los valores numéricos para todos tamaño opciones (como - tamaño de pila de hilo en esta tabla)
puede especificarse agregando el sufijo multiplicativo correspondiente (K para kilobytes, M
para megabytes, G para gigabytes y T para terabytes).
Lote modo
En algunos casos, es útil tener no solo las estadísticas finales de los puntos de referencia, sino también
volcados periódicos de las estadísticas actuales para ver cómo cambian durante la ejecución de la prueba. Para esto
propósito SysBench tiene un modo de ejecución por lotes que es activado por el --lote opción. Ustedes
puede especificar la demora en segundos entre los volcados consecuentes con el - retardo de lote
.
Ejemplo:
sysbench --batch --batch-delay = 5 --test = ejecución de subprocesos
Esto ejecutará SysBench en un modo de prueba de subprocesos, con los valores actuales de mínimo,
promedio, máximo y percentil para tiempos de ejecución de solicitudes impresos cada 5 segundos.
Prueba los modos
Esta sección ofrece una descripción detallada de cada modo de prueba disponible en SysBench.
cpu
La pestaña cpu es uno de los puntos de referencia más simples de SysBench. En este modo cada solicitud
Consiste en el cálculo de números primos hasta un valor especificado por el
--cpu-max-primeros opción. Todos los cálculos se realizan con números enteros de 64 bits.
Cada hilo ejecuta las solicitudes al mismo tiempo hasta que el número total de
solicitudes o el tiempo total de ejecución exceden los límites especificados con el común
opciones de la línea de comandos.
Ejemplo:
sysbench --test = cpu --cpu-max-prime = 20000 ejecutar
threads
Este modo de prueba se escribió para evaluar el rendimiento del programador, más específicamente el
casos en los que un planificador tiene una gran cantidad de subprocesos que compiten por algún conjunto de
mutex.
SysBench crea un número específico de subprocesos y un número específico de exclusiones mutuas. Entonces
cada hilo comienza a ejecutar las solicitudes que consisten en bloquear el mutex, produciendo el
CPU, por lo que el programador coloca el subproceso en la cola de ejecución y luego desbloquea el
mutex cuando el subproceso se reprograma para volver a ejecutarse. Para cada solicitud, lo anterior
las acciones se ejecutan varias veces en un bucle, por lo que cuantas más iteraciones se realizan, más
la concurrencia se coloca en cada mutex.
Las siguientes opciones están disponibles en este modo de prueba:
- rendimientos de hilo
Número de bloquear / ceder / desbloquear bucles para ejecutar por cada solicitud (predeterminado: 1000)
- cerraduras de hilo
Número de mutex para crear (predeterminado: 8)
Ejemplo:
sysbench --num-threads = 64 --test = threads --thread-yields = 100 --thread-locks = 2 ejecutar
exclusión mutua
Este modo de prueba se escribió para emular una situación en la que todos los subprocesos se ejecutan al mismo tiempo.
la mayor parte del tiempo, adquiriendo el bloqueo mutex solo por un corto período de tiempo
(incrementando una variable global). Por tanto, el propósito de estos puntos de referencia es examinar el
rendimiento de la implementación de mutex.
Las siguientes opciones están disponibles en este modo de prueba:
--mutex-num
Número de mutex. El mutex real para bloquear se elige aleatoriamente antes de cada bloqueo
(predeterminado: 4096)
- alcance de la memoria
Valores posibles: global, local. Especifica si cada hilo utilizará un globalmente
bloque de memoria asignado, o uno local. (predeterminado: global)
--memoria-tamaño-total
Tamaño total de los datos para transferir (predeterminado: 100G)
--memoria-oper
Tipo de operaciones de memoria. Valores posibles: read, escribir
fileio
Este modo de prueba se puede utilizar para producir varios tipos de cargas de trabajo de E / S de archivos. En el
revisar stage SysBench crea un número específico de archivos con un total específico
tamaño, luego en el puedes seguir etapa, cada subproceso realiza operaciones de E / S especificadas en este conjunto
de archivos.
Cuando el global --validar La opción se usa con la fileio modo de prueba, SysBench realiza
validación de sumas de comprobación en todos los datos leídos del disco. En cada operación de escritura, el bloque
se llena con valores aleatorios, luego la suma de control se calcula y se almacena en el bloque
junto con el desplazamiento de este bloque dentro de un archivo. En cada operación de lectura, el bloque se
validado comparando el desplazamiento almacenado con el desplazamiento real, y la suma de comprobación almacenada
con la suma de comprobación calculada real.
Se admiten las siguientes operaciones de E / S:
seqwr
escritura secuencial
segundo
reescritura secuencial
segundo
lectura secuencial
rndrd
lectura aleatoria
rndwr
escritura aleatoria
rndrw
lectura / escritura aleatoria combinada
Además, se pueden especificar los siguientes modos de acceso a archivos, si la plataforma subyacente
los apoya:
Modo de E / S asincrónico
Por el momento, solo se admite la implementación de Linux AIO. Al correr en
modo asíncrono, SysBench pone en cola un número específico de solicitudes de E / S utilizando Linux
AIO API, luego espera a que se complete al menos una de las solicitudes enviadas. Después
se envía una nueva serie de solicitudes de E / S.
Lenta mmap () modo
En este modo, SysBench utilizará mmap'ed I / O. Sin embargo, un mmap se utilizará
para cada solicitud de E / S debido a la limitación de las arquitecturas de 32 bits (no podemos
mmap () todo el archivo, ya que su tamaño puede superar el máximo de 2 GB de
el espacio de direcciones del proceso).
Rápida mmap () modo
En arquitecturas de 64 bits es posible mmap () todo el archivo en el proceso
espacio de direcciones, evitando la limitación de 2 GB en plataformas de 32 bits.
Usando fdatasync () en lugar de fsync ()
Vacíe solo los búferes de datos, pero no los metadatos.
Banderas adicionales para abierto(2)
SysBench puede usar indicadores adicionales para abierto(2), Tales como O_SYNC, O_DSYNC y
O_DIRECTO.
A continuación se muestra una lista de opciones específicas de prueba para el fileio modo:
--número-archivo
Número de archivos para crear (predeterminado: 128)
--tamaño-bloque-archivo
Tamaño de bloque para usar en todas las operaciones de E / S (predeterminado: 16K)
--archivo-tamaño-total
Tamaño total de archivos (predeterminado: 2G)
- modo de prueba de archivo
Tipo de carga de trabajo a producir. Valores posibles: seqwr, segundo, segundo, rndrd, rndwr,
rndwr (véase más arriba) requerida
--archivo-io-modo
Modo de E / S. Valores posibles: sincronizar, async, mapa rápido, mapa lento (solo si es apoyado por
la plataforma, ver arriba). (predeterminado: sincronización)
--archivo-async-backlog
Número de operaciones asincrónicas para poner en cola por subproceso (solo para
--file-io-mode = async, ver arriba) (predeterminado: 128)
--file-extra-flags
Banderas adicionales para usar con abierto(2)
--file-fsync-frecuencia
Do fsync () después de este número de solicitudes (predeterminado: 0 - no usar fsync ())
--archivo-fsync-all
Do fsync () después de cada operación de escriturai (predeterminado: no)
--file-fsync-fin
Do fsync () al final de la prueba (predeterminado: sí)
--file-fsync-modo
Qué método utilizar para la sincronización. Valores posibles: fsync, sincronización de datos
(predeterminado: fsync)
--archivo-solicitudes-fusionadas
Fusionar como máximo este número de solicitudes de E / S si es posible (predeterminado: 0 - no fusionar)
--archivo-rw-ratio
Ración de lectura / escritura para la prueba combinada de lectura / escritura aleatoria (predeterminado: 1.5)
Ejemplo de uso:
$ sysbench --num-threads = 16 --test = fileio --file-total-size = 3G --file-test-mode = rndrw prepare
$ sysbench --num-threads = 16 --test = fileio --file-total-size = 3G --file-test-mode = rndrw run
$ sysbench --num-threads = 16 --test = fileio --file-total-size = 3G --file-test-mode = rndrw cleanup
En el ejemplo anterior, el primer comando crea 128 archivos con un tamaño total de 3 GB
en el directorio actual, el segundo comando ejecuta el punto de referencia real y muestra
los resultados una vez finalizados, y el tercero elimina los archivos utilizados para la prueba.
oltp
Este modo de prueba se escribió para comparar el rendimiento de una base de datos real. En el revisar
etapa, la siguiente tabla se crea en la base de datos especificada (prueba por defecto):
CREAR TABLA `sbtest` (
`Id` int(10) auto_increment sin firmar NOT NULL,
`k` int(10) sin firmar NO NULO predeterminado '0',
`C` tanque(120) NOT NULL predeterminado '',
`almohadilla` tanque(60) NOT NULL predeterminado '',
CLAVE PRIMARIA (`id`),
CLAVE `k` (` k`);
Entonces esta tabla se llena con un número específico de filas.
Los siguientes modos de ejecución están disponibles en el puedes seguir escenario:
Fácil
En este modo, cada hilo ejecuta consultas simples de la siguiente forma:
SELECCIONE c DE sbtest DONDE id =N
dónde N toma un valor aleatorio en el rango 1 ..<tabla tamaño>
Transaccional avanzado
Cada hilo realiza transacciones en la mesa de prueba. Si la mesa de prueba y
transacciones de soporte de base de datos (por ejemplo, motor InnoDB en MySQL), luego EMPEZAR/COMETER
Las declaraciones se utilizarán para iniciar / detener una transacción. De lo contrario, SysBench utilizará
CANDADO (SEGURO) TABLAS/DESBLOQUEAR TABLAS declaraciones (por ejemplo, para el motor MyISAM en MySQL). Si algun
las filas se eliminan en una transacción, las mismas filas se insertarán dentro de la misma
transacción, por lo que este modo de prueba no destruye ningún dato en la tabla de prueba y
se puede ejecutar varias veces en la misma mesa.
Dependiendo de las opciones de la línea de comando, cada transacción puede contener lo siguiente
declaraciones:
· Consultas de puntos:
SELECCIONE c DE sbtest DONDE id =N
· Consultas de rango:
SELECCIONE c DE sbtest DONDE ID ENTRE N Y M
· Consultas de rango SUM ():
SELECCIONE SUM (K) DE sbtest DONDE ID ENTRE N y M
· Intervalo de consultas ORDER BY:
SELECCIONE c DE sbtest DONDE id entre N y M ORDENAR POR c
· Rango de consultas DISTINCT:
SELECCIONE C DISTINTO DE sbtest DONDE ID ENTRE N y M ORDENAR POR c
· ACTUALIZACIONES en la columna de índice:
ACTUALIZAR sbtest SET k = k + 1 DONDE id =N
· ACTUALIZACIONES en columnas sin índice:
ACTUALIZAR sbtest SET c =N DONDE id =M
· BORRAR consultas:
BORRAR DE sbtest DONDE id =N
· INSERTAR consultas:
INSERTAR EN LOS VALORES DE Sbtest (...)
No transaccional
Este modo es similar a Fácil, pero también puede elegir la consulta que se ejecutará. Nota
que a diferencia del Avanzada transaccional modo, éste no conserva la prueba
tabla entre solicitudes, por lo que debe volver a crearla con el apropiado
limpieza/revisar comandos entre puntos de referencia consecutivos.
A continuación se muestra una lista de posibles consultas:
· Consultas de puntos:
SELECCIONE el pad DE sbtest DONDE id =N
· ACTUALIZACIONES en la columna de índice:
ACTUALIZAR sbtest SET k = k + 1 DONDE id =N
· ACTUALIZACIONES en columnas sin índice:
ACTUALIZAR sbtest SET c =N DONDE id =M
· BORRAR consultas:
BORRAR DE sbtest DONDE id =N
Los ID de fila generados son únicos en cada ejecución de prueba, por lo que no se elimina ninguna fila
dos veces.
· INSERTAR consultas:
INSERT INTO sbtest (k, c, pad) VALUES (N, M, S)
--oltp-modo-de-prueba
Modo de ejecución (ver arriba). Valores posibles: Simpe (sencillo), integraciones (avanzado
transaccional) y notrx (no transaccional) (predeterminado: complejo)
--oltp-solo lectura
Modo de solo lectura. No ACTUALIZAR, BORRAR or INSERT Se realizarán consultas. (defecto:
apagado)
--oltp-rango-tamaño
Tamaño de rango para consultas de rango (predeterminado: 100)
--oltp-punto-selecciona
Número de consultas de selección de puntos en una sola transacción (predeterminado: 10)
--oltp-simple-rangos
Número de consultas de rango simple en una sola transacción (predeterminado: 1)
--oltp-sum-rangos
Número de consultas de rango SUM en una sola transacción (predeterminado: 1)
- rangos-de-orden-oltp
Número de consultas de rango de ORDEN en una sola transacción (predeterminado: 1)
--oltp-distintos-rangos
Número de consultas de rango DISTINCT en una sola transacción (predeterminado: 1)
--oltp-índice-actualizaciones
Número de consultas de ACTUALIZACIÓN de índice en una sola transacción (predeterminado: 1)
--oltp-no-índice-actualizaciones
Número de consultas UPDATE sin índice en una sola transacción (predeterminado: 1)
--oltp-nontrx-modo
Tipo de consultas para el modo de ejecución no transaccional (ver arriba). Valores posibles:
selecciona, actualizar_clave, actualización_nokey, insertar, elimínelo . (predeterminado: seleccionar)
--oltp-conexión-retraso
Tiempo en microsegundos para dormir después de cada conexión a la base de datos (predeterminado: 10000)
--oltp-usuario-retraso-min
Tiempo mínimo en microsegundos para dormir después de cada solicitud (predeterminado: 0)
--oltp-usuario-retraso-máximo
Tiempo máximo en microsegundos para dormir después de cada solicitud (predeterminado: 0)
--oltp-nombre-tabla
Nombre de la tabla de prueba (predeterminado: sbtest)
--oltp-tamaño-tabla
Número de filas en la tabla de prueba (predeterminado: 10000)
--oltp-dist-tipo
Distribución de números aleatorios. Valores posibles: uniforme (distribución uniforme),
gauss (distribución gaussiana) y especial. (predeterminado: especial)
Con una distribución especial, se genera un porcentaje específico de números en un
porcentaje especificado de casos (consulte las opciones a continuación).
--oltp-dist-pct
Porcentaje de valores que se tratarán como 'especiales' (para distribución especial)
(predeterminado: 1)
--oltp-dist-res
Porcentaje de casos en los que se generan valores 'especiales' (para distribución especial)
(predeterminado: 75)
--db-ps-modo
Si el controlador de la base de datos admite la API Prepared Statements, SysBench utilizará
declaraciones preparadas del lado del servidor para todas las consultas cuando sea posible. De lo contrario,
Se utilizarán declaraciones preparadas del lado del cliente (o emuladas). Esta opción permite
forzar el uso de la emulación incluso cuando la API de PS esté disponible. Valores posibles: inhabilitar,
auto. (predeterminado: auto)
Además, cada controlador de base de datos puede proporcionar sus propias opciones. Actualmente, solo el controlador MySQL es
disponible. A continuación se muestra una lista de opciones específicas de MySQL:
--mysql-host
Host del servidor MySQL. (predeterminado: localhost)
A partir de la versión 0.4.5, puede especificar una lista de hosts separados por comas.
En este caso, SysBench distribuirá conexiones entre hosts MySQL especificados en
una base por turnos. Tenga en cuenta que todos los puertos de conexión y contraseñas deben ser iguales
en todos los hosts. Además, las bases de datos y las tablas deben prepararse explícitamente en cada host.
antes de ejecutar el benchmark.
--mysql-puerto
Puerto del servidor MySQL (en caso de que se deba utilizar una conexión TCP / IP) (predeterminado: 3306)
--mysql-socket
Archivo de socket Unix para comunicarse con el servidor MySQL
--mysql-usuario
Usuario de MySQL (predeterminado: usuario)
--mysql-contraseña
Contraseña de MySQL
--mysql-db
Nombre de la base de datos MySQL. Nota SysBench no creará automáticamente esta base de datos.
Debe crearlo manualmente y otorgar los privilegios adecuados a un usuario que
se utilizará para acceder a la tabla de prueba. (predeterminado: sbtest)
--motor-de-tabla-mysql
Tipo de mesa de prueba. Valores posibles: miisam, innodb, montón, ndbcluster, bdb,
maria, halcón, pbxt (predeterminado: innodb)
--mysql-ssl
Utilice conexiones SSL. (predeterminado: no)
--myisam-max-filas
Opción MAX_ROWS para tablas MyISAM (requerida para tablas grandes) (predeterminado: 1000000)
--mysql-crear-opciones
Opciones adicionales pasadas a CREATE TABLE.
Ejemplo de uso:
$ sysbench --test = oltp --mysql-table-type = myisam --oltp-table-size = 1000000 --mysql-socket = / tmp / mysql.sock prepare
$ sysbench --num-threads = 16 --max-orders = 100000 --test = oltp --oltp-table-size = 1000000 --mysql-socket = / tmp / mysql.sock --oltp-read-only run
El primer comando creará una tabla MyISAM 'sbtest' en una base de datos 'sbtest' en una
Servidor MySQL usando /tmp/mysql.calcetín socket, luego llene esta tabla con 1M registros. El
El segundo comando ejecutará el punto de referencia real con 16 subprocesos de cliente, limitando el
número total de solicitudes por 100,000.
Use sysbench en línea usando los servicios de onworks.net