GNU/Linux >> Belajar Linux >  >> Linux

Cara Membandingkan Sistem Anda (CPU, File IO, MySQL) dengan Sysbench

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 pembersihan

4 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-utas
Tidak 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 cleanup
  • sysbench:http://sysbench.sourceforge.net/

Linux
  1. Tingkatkan kinerja sistem Linux dengan noatime

  2. Cara Mengedit File Host Anda di Windows 10

  3. Cara membandingkan server Ubuntu Linux Anda dengan Phoronix Test Suite

  1. Cara membuat dan memasang sistem file Btrfs (dijelaskan dengan contoh)

  2. Cara Mengkonfigurasi Beberapa Server MySQL Pada Satu Sistem Menggunakan mysqld_multi

  3. Bagaimana cara menulis file dengan C di Linux?

  1. Pantau sistem Linux Anda di terminal Anda dengan procps-ng

  2. Cara Membuat Database di MySQL dengan MySQL Workbench

  3. Bagaimana cara mengisi file dengan FF menggunakan dd?