Este tópico apresenta diretrizes para que novos usuários testem o desempenho de uma instância do ApsaraDB RDS for MySQL e enviem um relatório de teste. Após o envio do relatório, você pode obter descontos adicionais na renovação da instância. Caso seu relatório receba a classificação de excelente, a Alibaba Cloud concede incentivos substanciais.
Pré-requisitos
Você criou uma instância do ApsaraDB RDS for MySQL no console do ApsaraDB for RDS. Para mais informações, consulte Create an ApsaraDB RDS for MySQL instance.
Você criou uma instância do ECS. Para mais informações, consulte Custom Launch.
Informações de contexto
Este teste avalia as seguintes métricas de desempenho:
-
Transações por segundo (TPS)
O número de transações que a instância do RDS executa por segundo. Uma transação só é considerada executada após a confirmação (commit).
Utilize o SysBench para testar o desempenho do processamento transacional online (OLTP) ao executar uma transação de leitura e gravação composta por 18 instruções SQL de leitura e gravação.
Utilize o SysBench para testar o desempenho do OLTP na execução de uma transação somente leitura composta por 14 instruções SQL de leitura: 10 instruções consultam dados com base em chaves primárias e 4 instruções consultam dados com base em intervalos especificados.
Utilize o SysBench para testar o desempenho do OLTP na execução de uma transação somente gravação composta por quatro instruções SQL de gravação: duas instruções UPDATE, uma instrução DELETE e uma instrução INSERT.
-
Consultas por segundo (QPS)
O número de instruções SQL que a instância do RDS executa por segundo. Essas instruções incluem INSERT, SELECT, UPDATE, DELETE e COMMIT.
Parâmetros do SysBench
|
Parâmetro |
Descrição |
|
db-driver |
O mecanismo de banco de dados executado pela instância do RDS. |
|
mysql-host |
O endpoint usado para conectar à instância do RDS. |
|
mysql-port |
A porta usada para conectar à instância do RDS. |
|
mysql-user |
O nome de usuário da conta usada para gerenciar a instância do RDS. |
|
mysql-password |
A senha da conta usada para gerenciar a instância do RDS. |
|
mysql-db |
O nome da instância do RDS |
|
table_size |
O tamanho das tabelas usadas no teste. |
|
tables |
A quantidade de tabelas usadas no teste. |
|
events |
O número de requisições enviadas para o teste. |
|
time |
A duração do teste. |
|
threads |
A quantidade de threads invocadas para o teste. |
|
percentile |
A porcentagem de durações de execução que você deseja analisar no teste para obter uma duração média de execução. O valor padrão é 95%. Isso permite obter o tempo médio necessário para executar uma requisição em 95% de todos os cenários. |
|
report-interval |
O intervalo de tempo para geração de um relatório de progresso do teste. O valor 0 indica que relatórios de progresso não serão gerados, produzindo apenas o relatório final do teste. |
|
rand-type |
O tipo de distribuição de números aleatórios. Valor padrão: special. Neste teste, utiliza-se o uniform. |
Procedimento de teste
-
Log on to your ECS instance e execute os seguintes comandos. Depois, instale o 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 -
Teste o desempenho do OLTP na execução de transações de leitura e gravação, somente leitura e somente gravação.
-
Teste o desempenho do OLTP na execução de transações de leitura e gravação.
Execute os comandos a seguir para o teste (para mais informações, 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 cleanupExemplo de resultados do teste:
QPS: 23869.32
TPS: 1193.47
Tempo de resposta (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 -
Teste o desempenho do OLTP na execução de transações somente leitura.
Execute os comandos a seguir para o teste (para mais informações, consulte SysBench parameters):
NotaRecomendamos a compra de instâncias na zona recomendada, disponível na página de compra, para os testes.
##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 cleanupExemplo de resultados do teste:
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 -
Teste o desempenho do OLTP na execução de transações somente gravação.
Execute os comandos a seguir para o teste (para mais informações, 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 cleanupExemplo de resultados do teste:
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
NotaO SysBench oferece diversos modelos de benchmark padrão. Selecione o modelo mais adequado com base nos seus cenários de negócios.
-