sysbench adalah suite benchmark yang memungkinkan Anda untuk dengan cepat mendapatkan kesan kinerja sistem yang penting jika Anda berencana untuk menjalankan database di bawah beban intensif. Artikel ini menjelaskan cara membandingkan kinerja CPU, file IO, dan MySQL Anda dengan sysbench.
1 Menginstal sysbench
Di Debian/Ubuntu, sysbench dapat diinstal sebagai berikut:
sudo apt-get install sysbench
Di CentOS dan Fedora, ini dapat diinstal dari repositori EPEL.
Tambahkan Repositori EPEL:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release
yum -y update
Kemudian instal sysbench dengan yum:
yum install sysbench
Dapatkan ikhtisar opsi sysbench
Lihat di
man sysbench
untuk mempelajari lebih lanjut tentang parameternya.
Sekarang saya akan melakukan tiga tes dasar sederhana yang memberi tahu Anda lebih banyak tentang kinerja CPU Anda, kinerja file IO, dan kinerja MySQL.
2 Benchmark CPU
Anda dapat membandingkan kinerja CPU Anda sebagai berikut:
sysbench --test=cpu --cpu-max-prime=20000 run
[email protected]:~# sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.12: benchmark evaluasi sistem multi-utas
Berjalan pengujian dengan opsi berikut:
Jumlah utas: 1
Melakukan tolok ukur kinerja CPU
Utas dimulai!
Selesai.
Angka prima maksimum yang diperiksa dalam pengujian CPU: 20000
Ringkasan pengujian:
waktu total: 23,8724
Total waktu yang diambil oleh eksekusi peristiwa:23.8716
Statistik per-permintaan:
Min:2.31ms
AVG:2.39ms
Maks:6.39ms
Approx. 95 persentil: 2,44 md
Kewajaran utas:
acara (avg/stddev): 1000.0000/0,00
waktu eksekusi (avg/stddev): 23dev. br />[dilindungi email]:~#
Anda melihat banyak angka, yang terpenting adalah total waktu:
total waktu: 23,8724 detik
Tentu saja, Anda harus membandingkan tolok ukur di berbagai sistem untuk mengetahui nilai angka-angka ini.
3 Benchmark IO File
Untuk mengukur kinerja file IO, pertama-tama kita perlu membuat file uji yang jauh lebih besar dari RAM Anda (karena jika tidak, sistem akan menggunakan RAM untuk caching yang merusak hasil benchmark) - 150GB adalah nilai yang bagus:
sysbench --test=fileio --file-total-size=150G mempersiapkan
Setelah itu, kita dapat menjalankan benchmark:
sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run[email protected]:~# sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 -- max-requests=0 run
sysbench: /usr/lib/libmysqlclient.so.18: tidak ada informasi versi tersedia (diperlukan oleh sysbench)
sysbench 0.4.12: benchmark evaluasi sistem multi-utas
Menjalankan pengujian dengan opsi berikut:
Jumlah utas: 1
Menginisialisasi penghasil angka acak dari pengatur waktu.
Flag file terbuka ekstra: 0
128 file, 1,1719Gb masing-masing
total ukuran file 150Gb
Ukuran blok 16Kb
Jumlah permintaan acak untuk IO acak: 0
rasio Baca/Tulis untuk kombinasi IO acak pengujian: 1,50
FSYNC berkala diaktifkan, memanggil fsync() setiap 100 permintaan.
Memanggil fsync() di akhir pengujian, Diaktifkan.
Menggunakan mode I/O sinkron
Melakukan uji r/w acak
Utas dimulai!
Batas waktu melebihi, keluar...
Selesai.
Operasi yang dilakukan: 600 Baca, 400 Tulis, 1186 Lainnya =2186 Total
Dibaca 9.375Mb Tertulis 6.25Mb Total yang ditransfer 15.625Mb (53.316Kb/dtk)
3.33 Permintaan/dtk dijalankan
Ringkasan eksekusi pengujian:
waktu:Total Jumlah Acara:1000
Total waktu yang diambil oleh Execution Execution:158.7611
Statistik Per-Permintaan:
Min:0,01ms
AVG:158.76MS
Maks:2596.96 ms
kira-kira. 95 persentil: 482,29 md
Kewajaran utas:
acara (avg/stddev): 1000.0000/0,00
waktu eksekusi (> /stddev.7611 /stddev.7611 /stddev. br />[dilindungi email]:~#Angka yang penting adalah nilai Kb/sec:
Baca 9.375Mb Tertulis 6.25Mb Total yang ditransfer 15.625Mb (53.316Kb/dtk)
Setelah benchmark, Anda dapat menghapus file uji 150GB dari sistem:
sysbench --test=fileio --file-total-size=150G pembersihan4 Benchmark MySQL
Untuk mengukur kinerja MySQL, pertama-tama kita membuat tabel pengujian dalam pengujian database dengan 1.000.000 baris data:
sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword mempersiapkan[dilindungi email]:~# sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql- password=yourrootsqlpassword mempersiapkan
sysbench 0.4.12:tolok ukur evaluasi sistem multi-utasTidak ada driver DB yang ditentukan, menggunakan mysql
Membuat tabel 'sbtest'...
Membuat 1000000 catatan dalam tabel 'sbtest'...
[email protected]:~#Ganti kata yourrootsqlpassword dengan kata sandi root MySQL Anda pada perintah di atas. Lakukan hal yang sama pada perintah berikutnya.
Setelah itu, Anda dapat menjalankan benchmark MySQL sebagai berikut:
sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword --max- time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run[dilindungi email]:~# sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql- password=yourrootsqlpassword --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
sysbench 0.4.12: evaluasi sistem benchmark multi-utas
Tidak ada driver DB yang ditentukan, menggunakan mysql
Menjalankan pengujian dengan opsi berikut:
Jumlah utas: 8
Melakukan pengujian OLTP.
Menjalankan pengujian OLTP campuran
Melakukan pengujian hanya-baca
Menggunakan distribusi khusus (12 iterasi, 1 persen nilai dikembalikan dalam 75 kasus persen)
Menggunakan "BEGIN" untuk memulai transaksi
Menggunakan auto_inc pada kolom id
Utas dimulai!
Batas waktu melebihi, keluar...
(pesan terakhir diulang 7 kali)
Selesai.
Statistik uji OLTP:
Pertanyaan yang dilakukan:
Baca:2253860
Tulis:0
Lainnya:32 1980
Total:2575840
Transaksi:160990 (2683.06 per detik.)
Kebuntuan:0 (0,00 per detik)
Permintaan Baca /Tulis:2253860 (37562.81 per detik.)
Operasi Lain:321980 (5366.12 per detik.)
Ringkasan Eksekusi Tes:
Total Waktu:60.0024S
Total Jumlah Peristiwa:160990
Total Waktu yang diambil oleh EXECUSI ACARA:479.3419
Statistik Permestikan:
Min:0.81ms
AVG:2.98MS
Maks:3283.40ms
Approx. 95 persentil: 4.62 md
Kewajaran utas:
acara (avg/stddev): 20123.7500/63.52
waktu eksekusi
><0,00/st br />[dilindungi email]:~#Angka penting adalah nilai transaksi per detik:
transaksi: 160990 (2683,06 per dtk.)
Untuk membersihkan sistem setelahnya (yaitu, menghapus tabel pengujian), jalankan:
sysbench --test=oltp --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword cleanup5 Tautan
- sysbench:http://sysbench.sourceforge.net/