Topik ini menyediakan panduan bagi pengguna baru untuk menguji performa instans ApsaraDB RDS for MySQL dan mengirimkan laporan pengujian. Setelah Anda mengirimkan laporan pengujian, Anda dapat memperoleh diskon tambahan untuk perpanjangan instans. Jika laporan pengujian Anda dinilai sangat baik, Anda akan mendapatkan insentif signifikan dari Alibaba Cloud.
Prasyarat
Instans ApsaraDB RDS for MySQL telah dibuat di Konsol ApsaraDB for RDS. Untuk informasi selengkapnya, lihat Buat instans ApsaraDB RDS for MySQL.
Instans ECS telah dibuat. Untuk informasi selengkapnya, lihat Buat instans dengan Custom Launch.
Informasi latar belakang
Metrik performa berikut diuji:
Transactions per second (TPS)
Jumlah transaksi yang dieksekusi oleh instans RDS per detik. Transaksi hanya dihitung setelah dikomit.
Gunakan SysBench untuk menguji performa online transactional processing (OLTP) dalam mengeksekusi transaksi baca/tulis yang terdiri dari 18 pernyataan SQL baca dan tulis.
Gunakan SysBench untuk menguji performa OLTP dalam mengeksekusi transaksi read-only yang terdiri dari 14 pernyataan SQL baca: 10 pernyataan SQL digunakan untuk mengkueri data berdasarkan primary key dan 4 pernyataan SQL digunakan untuk mengkueri data berdasarkan rentang tertentu.
Gunakan SysBench untuk menguji performa OLTP dalam mengeksekusi transaksi write-only yang terdiri dari empat pernyataan SQL tulis: dua pernyataan UPDATE, satu pernyataan DELETE, dan satu pernyataan INSERT.
Queries per second (QPS)
Jumlah pernyataan SQL yang dieksekusi oleh instans RDS per detik. Pernyataan SQL tersebut mencakup INSERT, SELECT, UPDATE, DELETE, dan COMMIT.
Parameter SysBench
Parameter | Deskripsi |
db-driver | Engine database yang dijalankan oleh instans RDS. |
mysql-host | Titik akhir yang digunakan untuk menghubungkan ke instans RDS. |
mysql-port | Port yang digunakan untuk menghubungkan ke instans RDS. |
mysql-user | Username akun yang digunakan untuk mengelola instans RDS. |
mysql-password | Password akun yang digunakan untuk mengelola instans RDS. |
mysql-db | Nama instans RDS |
table_size | Ukuran tabel yang digunakan untuk pengujian. |
tables | Jumlah tabel yang digunakan untuk pengujian. |
events | Jumlah permintaan yang dikirim untuk pengujian. |
time | Durasi pengujian. |
threads | Jumlah thread yang dipanggil untuk pengujian. |
percentile | Persentase durasi eksekusi yang ingin Anda analisis dalam pengujian untuk memperoleh durasi eksekusi rata-rata. Nilai default adalah 95%. Ini memungkinkan Anda memperoleh waktu rata-rata yang diperlukan untuk mengeksekusi permintaan pada 95% dari semua skenario. |
report-interval | Interval waktu untuk menghasilkan laporan kemajuan pengujian. Nilai 0 berarti tidak menghasilkan laporan kemajuan pengujian, melainkan hanya menghasilkan laporan pengujian akhir. |
rand-type | Tipe distribusi angka acak. Nilai default: special. Dalam pengujian ini, digunakan uniform. |
Prosedur pengujian
Masuk ke instans ECS Anda dan jalankan perintah berikut untuk menginstal SysBench:
sudo yum install gcc gcc-c++ autoconf automake make libtool mysql-devel git mysql git clone https://github.com/akopytov/sysbench.git ## Unduh paket perangkat lunak SysBench dari GitHub. cd sysbench ## Buka direktori instalasi SysBench. git checkout 1.0.18 ## Beralih ke SysBench 1.0.18. ./autogen.sh ## Jalankan skrip autogen.sh. ./configure --prefix=/usr --mandir=/usr/share/man make ## Kompilasi SysBench. make installUji performa OLTP dalam mengeksekusi transaksi baca/tulis, read-only, dan write-only.
Uji performa OLTP dalam mengeksekusi transaksi baca/tulis.
Jalankan perintah berikut untuk melakukan pengujian (untuk informasi selengkapnya, lihat Parameter SysBench):
## Siapkan data yang digunakan untuk pengujian. 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 ## Jalankan workload Anda. 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 ## Hapus data yang digunakan untuk pengujian. 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 cleanupContoh hasil pengujian:
QPS: 23.869,32
TPS: 1.193,47
Response time (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.00Uji performa OLTP dalam mengeksekusi transaksi read-only.
Jalankan perintah berikut untuk melakukan pengujian (untuk informasi selengkapnya, lihat Parameter SysBench):
CatatanKami menyarankan agar Anda membeli instans di zona yang direkomendasikan pada halaman pembelian untuk pengujian.
## Siapkan data yang digunakan untuk pengujian. 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 ## Jalankan workload Anda. 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 ## Hapus data yang digunakan untuk pengujian. 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 cleanupContoh hasil pengujian:
QPS: 26.130,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.01Uji performa OLTP dalam mengeksekusi transaksi write-only.
Jalankan perintah berikut untuk melakukan pengujian (untuk informasi selengkapnya, lihat Parameter SysBench):
## Siapkan data yang digunakan untuk pengujian. 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 ## Jalankan workload Anda. 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 ## Hapus data yang digunakan untuk pengujian. 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 cleanupContoh hasil pengujian:
TPS: 4.255,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
CatatanSysBench menyediakan beberapa model benchmark standar. Anda dapat memilih model yang sesuai berdasarkan skenario bisnis Anda.