Este tema proporciona lineamientos para que los nuevos usuarios prueben el rendimiento de una instancia de ApsaraDB RDS for MySQL y envíen un informe de pruebas. Después de enviar el informe, puede recibir descuentos adicionales para la renovación de la instancia. Si su informe obtiene una calificación excelente, Alibaba Cloud le ofrecerá incentivos sustanciales.
Requisitos previos
Se creó una instancia de ApsaraDB RDS for MySQL en la consola de ApsaraDB for RDS. Para obtener más información, consulte Create an ApsaraDB RDS for MySQL instance.
Se creó una instancia de ECS. Para obtener más información, consulte Custom Launch.
Contexto
A continuación se muestran las métricas de rendimiento que se evalúan:
-
Transacciones por segundo (TPS)
Cantidad de transacciones que ejecuta la instancia de RDS por segundo. Una transacción se ejecuta únicamente después de confirmarse.
Use SysBench para evaluar el rendimiento del procesamiento transaccional en línea (OLTP) al ejecutar una transacción de lectura y escritura compuesta por 18 sentencias SQL.
Use SysBench para evaluar el rendimiento de OLTP al ejecutar una transacción de solo lectura compuesta por 14 sentencias SQL de lectura: 10 sentencias consultan datos con base en claves primarias y 4 sentencias consultan datos según rangos específicos.
Use SysBench para evaluar el rendimiento de OLTP al ejecutar una transacción de solo escritura compuesta por cuatro sentencias SQL: dos sentencias UPDATE, una sentencia DETELE y una sentencia INSERT.
-
Consultas por segundo (QPS)
Cantidad de sentencias SQL que ejecuta la instancia de RDS por segundo. Estas sentencias incluyen INSERT, SELECT, UPDATE, DETELE y COMMIT.
Parámetros de SysBench
|
Parámetro |
Descripción |
|
db-driver |
Motor de base de datos que utiliza la instancia de RDS. |
|
mysql-host |
Endpoint que se usa para conectarse a la instancia de RDS. |
|
mysql-port |
Puerto que se usa para conectarse a la instancia de RDS. |
|
mysql-user |
Nombre de usuario de la cuenta empleada para gestionar la instancia de RDS. |
|
mysql-password |
Contraseña de la cuenta empleada para gestionar la instancia de RDS. |
|
mysql-db |
Nombre de la instancia de RDS. |
|
table_size |
Tamaño de las tablas utilizadas en la prueba. |
|
tables |
Cantidad de tablas utilizadas en la prueba. |
|
events |
Cantidad de solicitudes enviadas durante la prueba. |
|
time |
Tiempo que dura la prueba. |
|
threads |
Cantidad de subprocesos invocados para la prueba. |
|
percentile |
Porcentaje de duraciones de ejecución que desea analizar en la prueba para obtener un tiempo promedio. El valor predeterminado es 95 %. Este parámetro permite conocer el tiempo promedio necesario para ejecutar una solicitud en el 95 % de los escenarios. |
|
report-interval |
Intervalo de tiempo con el que se genera un informe de progreso de la prueba. El valor 0 indica que no se generarán informes de progreso, sino únicamente un informe final. |
|
rand-type |
Tipo de distribución de números aleatorios. Valor predeterminado: special. En esta prueba se utiliza uniform. |
Procedimiento de prueba
-
Log on to your ECS instance y ejecute los siguientes comandos para instalar SysBench:
sudo yum install gcc gcc-c++ autoconf automake make libtool mysql-devel git mysql git clone https://github.com/akopytov/sysbench.git ## Download the SysBench software package from GitHub. cd sysbench ## Open the SysBench installation directory. git checkout 1.0.18 ## Switch to SysBench 1.0.18. ./autogen.sh ## Execute the autogen.sh script. ./configure --prefix=/usr --mandir=/usr/share/man make ## Compile SysBench. make install -
Evalúe el rendimiento de OLTP al ejecutar transacciones de lectura y escritura, de solo lectura y de solo escritura.
-
Evalúe el rendimiento de OLTP al ejecutar transacciones de lectura y escritura.
Ejecute los siguientes comandos para realizar la prueba (para obtener más información, consulte SysBench parameters):
##Prepare the data used for the test. sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX oltp_read_write prepare ##Run your workload. sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 --rand-type="uniform" --report-interval=1 oltp_read_write run ##Delete the data used for the test. sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 oltp_read_write cleanupResultados de ejemplo de la prueba:
QPS: 23869.32
TPS: 1193.47
Tiempo de respuesta (RT): 36.89 ms
[ 55s ] thds: 16 tps: 1238.00 qps: 24720.98 (r/w/o: 17294.99/4951.00/2475.00) lat (ms,95%): 35.59 err/s: 0.00 reconn/s: 0.00 [ 56s ] thds: 16 tps: 1195.00 qps: 23924.02 (r/w/o: 16752.01/4782.00/2390.00) lat (ms,95%): 36.24 err/s: 0.00 reconn/s: 0.00 [ 57s ] thds: 16 tps: 1235.00 qps: 24714.10 (r/w/o: 17308.07/4935.02/2471.01) lat (ms,95%): 36.24 err/s: 0.00 reconn/s: 0.00 [ 58s ] thds: 16 tps: 1230.99 qps: 24594.83 (r/w/o: 17205.88/4926.97/2461.98) lat (ms,95%): 36.24 err/s: 0.00 reconn/s: 0.00 [ 59s ] thds: 16 tps: 1187.00 qps: 23786.05 (r/w/o: 16655.03/4757.01/2374.00) lat (ms,95%): 36.89 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 16 tps: 1212.00 qps: 24252.93 (r/w/o: 16964.95/4863.99/2423.99) lat (ms,95%): 36.24 err/s: 0.00 reconn/s: 0.00 SQL statistics: queries performed: read: 1003268 write: 286648 other: 143324 total: 1433240 transactions: 71662 (1193.47 per sec.) queries: 1433240 (23869.32 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 60.0439s total number of events: 71662 Latency (ms): min: 4.48 avg: 13.40 max: 142.82 95th percentile: 36.89 sum: 960169.64 Threads fairness: events (avg/stddev): 4478.8750/88.00 execution time (avg/stddev): 60.0106/0.00 -
Evalúe el rendimiento de OLTP al ejecutar transacciones de solo lectura.
Ejecute los siguientes comandos para realizar la prueba (para obtener más información, consulte SysBench parameters):
NotaSe recomienda adquirir instancias en la zona sugerida dentro de la página de compra para realizar las pruebas.
##Prepare the data used for the test. sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX oltp_read_only prepare ##Run your workload. sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 --rand-type="uniform" --report-interval=1 oltp_read_only run ##Delete the data used for the test. sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 oltp_read_only cleanupResultados de ejemplo de la prueba:
QPS: 26130.73
RT: 33.72 ms
[ 55s ] thds: 16 tps: 1881.00 qps: 26417.97 (r/w/o: 26417.97/0.00/0.00) lat (ms,95%): 33.72 err/s: 0.00 reconn/s: 0.00 [ 56s ] thds: 16 tps: 1831.01 qps: 25564.09 (r/w/o: 25564.09/0.00/0.00) lat (ms,95%): 34.33 err/s: 0.00 reconn/s: 0.00 [ 57s ] thds: 16 tps: 1914.99 qps: 26829.90 (r/w/o: 26829.90/0.00/0.00) lat (ms,95%): 33.12 err/s: 0.00 reconn/s: 0.00 [ 58s ] thds: 16 tps: 1930.00 qps: 27013.02 (r/w/o: 27013.02/0.00/0.00) lat (ms,95%): 33.12 err/s: 0.00 reconn/s: 0.00 [ 59s ] thds: 16 tps: 1901.00 qps: 26569.06 (r/w/o: 26569.06/0.00/0.00) lat (ms,95%): 33.72 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 16 tps: 1933.99 qps: 27157.92 (r/w/o: 27157.92/0.00/0.00) lat (ms,95%): 33.12 err/s: 0.00 reconn/s: 0.00 SQL statistics: queries performed: read: 1568952 write: 0 other: 0 total: 1568952 transactions: 112068 (1866.48 per sec.) queries: 1568952 (26130.73 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 60.0410s total number of events: 112068 Latency (ms): min: 3.03 avg: 8.57 max: 84.14 95th percentile: 33.72 sum: 960237.13 Threads fairness: events (avg/stddev): 7004.2500/96.69 execution time (avg/stddev): 60.0148/0.01 -
Evalúe el rendimiento de OLTP al ejecutar transacciones de solo escritura.
Ejecute los siguientes comandos para realizar la prueba (para obtener más información, consulte SysBench parameters):
##Prepare the data used for the test. sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX oltp_write_only prepare ##Run your workload. sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 --rand-type="uniform" --report-interval=1 oltp_write_only run ##Delete the data used for the test. sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 oltp_write_only cleanupResultados de ejemplo de la prueba:
TPS: 4255.01
RT: 16.71 ms
[ 56s ] thds: 16 tps: 4458.17 qps: 26789.02 (r/w/o: 0.00/17871.68/8917.34) lat (ms,95%): 14.21 err/s: 0.00 reconn/s: 0.00 [ 57s ] thds: 16 tps: 4416.02 qps: 26472.15 (r/w/o: 0.00/17640.10/8832.05) lat (ms,95%): 16.41 err/s: 0.00 reconn/s: 0.00 [ 58s ] thds: 16 tps: 3919.11 qps: 23508.64 (r/w/o: 0.00/15670.43/7838.21) lat (ms,95%): 17.63 err/s: 0.00 reconn/s: 0.00 [ 59s ] thds: 16 tps: 4089.00 qps: 24559.02 (r/w/o: 0.00/16381.01/8178.01) lat (ms,95%): 18.28 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 16 tps: 4353.28 qps: 26100.68 (r/w/o: 0.00/17394.12/8706.56) lat (ms,95%): 19.65 err/s: 0.00 reconn/s: 0.00 SQL statistics: queries performed: read: 0 write: 1021552 other: 510776 total: 1532328 transactions: 255388 (4255.01 per sec.) queries: 1532328 (25530.04 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 60.0192s total number of events: 255388 Latency (ms): min: 1.28 avg: 3.76 max: 182.50 95th percentile: 16.71 sum: 959762.69 Threads fairness: events (avg/stddev): 15961.7500/525.08 execution time (avg/stddev): 59.9852/0.00
NotaSysBench ofrece varios modelos de referencia estándar. Seleccione el modelo adecuado según sus escenarios de negocio.
-