Ini ialah arahan sysbench yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
sysbench - Alat penanda aras modular, merentas platform dan berbilang benang.
SINOPSIS
sysbench [pilihan biasa] --test=nama [pilihan ujian] arahan
sysbench [{-h | - membantu} | {-v | --versi}]
DESCRIPTION
SysBench ialah alat penanda aras modular, merentas platform dan berbilang benang untuk menilai OS
parameter yang penting untuk sistem yang menjalankan pangkalan data di bawah beban intensif.
Idea suite penanda aras ini adalah untuk mendapatkan tanggapan dengan cepat tentang prestasi sistem
tanpa menyediakan penanda aras pangkalan data yang kompleks atau bahkan tanpa memasang pangkalan data di
semua.
Ciri semasa membolehkan untuk menguji parameter sistem berikut:
· prestasi I/O fail
· prestasi penjadual
· peruntukan memori dan kelajuan pemindahan
· Prestasi pelaksanaan benang POSIX
· prestasi pelayan pangkalan data
Reka bentuknya sangat mudah. SysBench menjalankan bilangan utas tertentu dan semuanya
melaksanakan permintaan secara selari. Beban kerja sebenar yang dihasilkan oleh permintaan bergantung pada
mod ujian yang ditentukan. Anda boleh mengehadkan sama ada jumlah permintaan atau jumlah masa
untuk penanda aras, atau kedua-duanya.
Mod ujian yang tersedia dilaksanakan oleh modul yang disusun dalam, dan SysBench direka untuk
jadikan penambahan mod ujian baharu sebagai tugas yang mudah. Setiap mod ujian mungkin mempunyai tambahan (atau
pilihan khusus beban kerja.
PILIHAN
--num-benang
Jumlah bilangan urutan pekerja untuk dibuat (lalai: 1)
--maks-permintaan
Had untuk jumlah permintaan. 0 bermakna tidak terhad (lalai: 10000)
--masa-maks
Had untuk jumlah masa pelaksanaan dalam beberapa saat. 0 (lalai: 0)
--saiz tindanan-benang
Saiz tindanan untuk setiap utas (lalai: 32K)
--init-rnd
Menentukan jika penjana nombor rawak harus dimulakan dari pemasa sebelum ujian
mulakan (lalai: mati)
--ujian
Nama mod ujian untuk dijalankan diperlukan
--nyahpepijat
Cetak lebih banyak maklumat nyahpepijat (lalai: mati)
--sahkan
Lakukan pengesahan keputusan ujian jika boleh (lalai: mati)
- membantu
Cetak bantuan pada sintaks umum atau pada mod ujian yang ditentukan dengan --test, dan keluar
--versi
Tunjukkan versi program.
--persentil
SysBench mengukur masa pelaksanaan untuk semua permintaan yang diproses untuk memaparkan statistik
maklumat seperti masa pelaksanaan minimum, purata dan maksimum. Bagi kebanyakan penanda aras ia
juga berguna untuk mengetahui nilai masa pelaksanaan permintaan yang sepadan dengan beberapa persentil (cth
95% persentil bermakna kita harus menggugurkan 5% daripada permintaan yang paling lama dan memilih
nilai maksimum daripada yang selebihnya).
Pilihan ini membolehkan untuk menentukan kedudukan persentil masa pelaksanaan pertanyaan untuk dikira
(lalai: 95)
--batch
Buang hasil semasa secara berkala (lalai: mati - lihat juga bahagian yang dipanggil "Batch
mod")
--penangguhan kelompok
Kelewatan antara pembuangan kelompok dalam detik (lalai: 300 - lihat juga bahagian yang dipanggil "Batch
mod")
Ambil perhatian bahawa nilai berangka untuk semua saiz pilihan (seperti --saiz tindanan-benang dalam jadual ini)
boleh ditentukan dengan menambahkan akhiran darab yang sepadan (K untuk kilobait, M
untuk megabait, G untuk gigabait dan T untuk terabait).
Batch mod
Dalam sesetengah kes adalah berguna untuk mempunyai bukan sahaja statistik penanda aras akhir, tetapi juga
longgokan statistik semasa secara berkala untuk melihat cara ia berubah sepanjang ujian dijalankan. Untuk ini
tujuan SysBench mempunyai mod pelaksanaan kelompok yang dihidupkan oleh --batch pilihan. awak
boleh menentukan kelewatan dalam beberapa saat antara pembuangan akibat dengan --penangguhan kelompok
pilihan.
Contoh:
sysbench --batch --batch-delay=5 --test=benang berjalan
Ini akan menjalankan SysBench dalam mod ujian benang, dengan nilai semasa minimum,
purata, maksimum dan persentil untuk masa pelaksanaan permintaan dicetak setiap 5 saat.
ujian mod
Bahagian ini memberikan penerangan terperinci untuk setiap mod ujian yang tersedia dalam SysBench.
cpu
. cpu ialah salah satu penanda aras paling mudah dalam SysBench. Dalam mod ini setiap permintaan
terdiri dalam pengiraan nombor perdana sehingga nilai yang ditentukan oleh
--cpu-max-primes pilihan. Semua pengiraan dilakukan menggunakan integer 64-bit.
Setiap urutan melaksanakan permintaan secara serentak sehingga sama ada jumlah bilangan
permintaan atau jumlah masa pelaksanaan melebihi had yang ditentukan dengan yang biasa
pilihan baris arahan.
Contoh:
sysbench --test=cpu --cpu-max-prime=20000 run
benang
Mod ujian ini ditulis untuk menanda aras prestasi penjadual, lebih khusus lagi
kes apabila penjadual mempunyai sejumlah besar utas yang bersaing untuk beberapa set
mutexes.
SysBench mencipta bilangan utas tertentu dan bilangan mutex tertentu. Kemudian
setiap benang mula menjalankan permintaan yang terdiri daripada mengunci mutex, menghasilkan
CPU, jadi benang diletakkan dalam baris gilir larian oleh penjadual, kemudian membuka kunci
mutex apabila benang dijadualkan semula untuk dilaksanakan. Untuk setiap permintaan, perkara di atas
tindakan dijalankan beberapa kali dalam gelung, jadi lebih banyak lelaran dilakukan, lebih banyak
concurrency diletakkan pada setiap mutex.
Pilihan berikut tersedia dalam mod ujian ini:
--benang-hasil
Bilangan kunci/hasil/buka kunci gelung untuk melaksanakan setiap permintaan (lalai: 1000)
--benang-kunci
Bilangan mutex untuk dibuat (lalai: 8)
Contoh:
sysbench --num-threads=64 --test=threads --thread-yields=100 --thread-locks=2 run
bisu
Mod ujian ini ditulis untuk meniru situasi apabila semua utas berjalan serentak
selalunya, memperoleh kunci mutex hanya untuk jangka masa yang singkat
(menambah pembolehubah global). Jadi tujuan penanda aras ini adalah untuk mengkaji
prestasi pelaksanaan mutex.
Pilihan berikut tersedia dalam mod ujian ini:
--mutex-num
Bilangan mutex. Muteks sebenar untuk dikunci dipilih secara rawak sebelum setiap kunci
(lalai: 4096)
--skop ingatan
Nilai yang mungkin: global, tempatan. Menentukan sama ada setiap urutan akan menggunakan secara global
blok memori yang diperuntukkan, atau yang setempat. (lalai: global)
--saiz-jumlah-memori
Jumlah saiz data untuk dipindahkan (lalai: 100G)
--memori-oper
Jenis operasi ingatan. Nilai yang mungkin: membaca, menulis
fileio
Mod ujian ini boleh digunakan untuk menghasilkan pelbagai jenis beban kerja I/O fail. Dekat
menyediakan stage SysBench mencipta bilangan fail tertentu dengan jumlah tertentu
saiz, kemudian pada menjalankan peringkat, setiap utas melakukan operasi I/O yang ditentukan pada set ini
daripada fail.
Apabila global --sahkan pilihan digunakan dengan fileio mod ujian, SysBench melakukan
pengesahan checksum pada semua data yang dibaca daripada cakera. Pada setiap operasi tulis blok
diisi dengan nilai rawak, kemudian checksum dikira dan disimpan dalam blok
bersama-sama dengan offset blok ini dalam fail. Pada setiap operasi baca blok adalah
disahkan dengan membandingkan offset yang disimpan dengan offset sebenar, dan checksum yang disimpan
dengan checksum terkira sebenar.
Operasi I/O berikut disokong:
seqwr
menulis berurutan
seqrewr
penulisan semula berurutan
seqrd
bacaan berurutan
rndrd
dibaca secara rawak
rndwr
tulis rawak
rndrw
gabungan baca/tulis rawak
Juga, mod capaian fail berikut boleh ditentukan, jika platform asas
menyokong mereka:
Mod I/O tak segerak
Pada masa ini hanya pelaksanaan AIO Linux disokong. Apabila berlari masuk
mod tak segerak, SysBench membuat baris gilir beberapa permintaan I/O tertentu menggunakan Linux
AIO API, kemudian menunggu sekurang-kurangnya satu daripada permintaan yang diserahkan untuk diselesaikan. Selepas itu
satu siri permintaan I/O baharu diserahkan.
Memperlahankan mmap() mod
Dalam mod ini SysBench akan gunakan mmapI/O. Walau bagaimanapun, yang berasingan mmap akan digunakan
untuk setiap permintaan I/O kerana batasan seni bina 32-bit (kami tidak boleh
mmap() keseluruhan fail, kerana saiz saiznya mungkin melebihi maksimum 2 GB
ruang alamat proses).
Cepat mmap() mod
Pada seni bina 64-bit adalah mungkin untuk mmap() keseluruhan fail ke dalam proses
ruang alamat, mengelakkan pengehadan 2 GB pada platform 32-bit.
Menggunakan fdatasync() bukan fsync()
Siram hanya penimbal data, tetapi bukan metadata.
Bendera tambahan kepada membuka(2)
SysBench boleh menggunakan bendera tambahan untuk membuka(2), Seperti O_SYNC, O_DSYNC and
O_DIRECT.
Di bawah ialah senarai pilihan khusus ujian untuk fileio mod:
--file-num
Bilangan fail untuk dibuat (lalai: 128)
--saiz-blok-fail
Saiz blok untuk digunakan dalam semua operasi I/O (lalai: 16K)
--saiz-jumlah-fail
Jumlah saiz fail (lalai: 2G)
--mod-ujian-fail
Jenis beban kerja untuk dihasilkan. Nilai yang mungkin: seqwr, seqrewr, seqrd, rndrd, rndwr,
rndwr (lihat di atas) dikehendaki
--fail-io-mod
Mod I/O. Nilai yang mungkin: menyegerakkan, async, fastmmap, slowmmap (hanya jika disokong oleh
platform, lihat di atas). (lalai: segerak)
--file-async-backlog
Bilangan operasi tak segerak untuk beratur setiap utas (hanya untuk
--file-io-mode=async, lihat di atas) (lalai: 128)
--file-extra-flags
Bendera tambahan untuk digunakan membuka(2)
--file-fsync-freq
Do fsync() selepas bilangan permintaan ini (lalai: 0 - jangan gunakan fsync())
--file-fsync-semua
Do fsync() selepas setiap operasi tulis (lalai: tidak)
--file-fsync-end
Do fsync() pada akhir ujian (lalai: ya)
--file-fsync-mod
Kaedah mana yang hendak digunakan untuk penyegerakan. Nilai yang mungkin: fsync, fdatasync
(lalai: fsync)
--fail-gabung-permintaan
Gabungkan paling banyak bilangan permintaan I/O ini jika boleh (lalai: 0 - jangan gabung)
--fail-rw-nisbah
catuan membaca/menulis untuk ujian baca/tulis rawak gabungan (lalai: 1.5)
Contoh penggunaan:
$ sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=rndrw sediakan
$ sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=rndrw run
$ sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=rndrw pembersihan
Dalam contoh di atas arahan pertama mencipta 128 fail dengan jumlah saiz 3 GB
dalam direktori semasa, arahan kedua menjalankan penanda aras dan paparan sebenar
keputusan setelah selesai, dan yang ketiga mengalih keluar fail yang digunakan untuk ujian.
oltp
Mod ujian ini ditulis untuk menanda aras prestasi pangkalan data sebenar. Dekat menyediakan
peringkat jadual berikut dibuat dalam pangkalan data yang ditentukan (sbtest secara lalai):
CIPTA JADUAL `sbtest` (
"id" int(10) tidak ditandatangani BUKAN NULL auto_increment,
`k` int(10) tidak ditandatangani BUKAN NULL lalai '0',
`c` tangki(120) BUKAN NULL lalai '',
`pad` tangki(60) BUKAN NULL lalai '',
KUNCI UTAMA (`id`),
KUNCI `k` (`k`);
Kemudian jadual ini diisi dengan bilangan baris yang ditentukan.
Mod pelaksanaan berikut tersedia di menjalankan pentas:
Mudah
Dalam mod ini setiap utas menjalankan pertanyaan mudah dalam bentuk berikut:
PILIH c DARI sbtest WHERE id=N
di mana N mengambil nilai rawak dalam julat 1..<meja saiz>
Transaksi lanjutan
Setiap urutan melakukan transaksi pada jadual ujian. Jika jadual ujian dan
transaksi sokongan pangkalan data (cth enjin InnoDB dalam MySQL), kemudian BEGIN/KOMITMEN
penyata akan digunakan untuk memulakan/menghentikan transaksi. Jika tidak, SysBench akan menggunakan
LOCK JADUAL/UNLOCK JADUAL pernyataan (cth untuk enjin MyISAM dalam MySQL). Jika ada
baris dipadamkan dalam transaksi, baris yang sama akan disisipkan dalam yang sama
transaksi, jadi mod ujian ini tidak memusnahkan sebarang data dalam jadual ujian dan
boleh dijalankan beberapa kali di atas meja yang sama.
Bergantung pada pilihan baris arahan, setiap transaksi mungkin mengandungi perkara berikut
pernyataan:
· Pertanyaan mata:
PILIH c DARI sbtest WHERE id=N
· Pelbagai pertanyaan:
PILIH c DARI sbtest WHERE id ANTARA N DAN M
· Julat SUM() pertanyaan:
PILIH JUMLAH(K) DARI sbtest WHERE id ANTARA N and M
· Julat PESANAN MENGIKUT pertanyaan:
PILIH c DARI sbtest WHERE id antara N and M PESANAN OLEH c
· Julat pertanyaan DISTINCT:
PILIH BERBEZA c DARI sbtest DI MANA id ANTARA N and M PESANAN OLEH c
· KEMASKINI pada lajur indeks:
KEMASKINI SET sbtest k=k+1 WHERE id=N
· KEMASKINI pada lajur bukan indeks:
KEMASKINI SET sbtest c=N WHERE id=M
· PADAM pertanyaan:
PADAM DARI sbtest WHERE id=N
· INSERT pertanyaan:
MASUKKAN KE DALAM NILAI sbtest (...)
Bukan transaksional
Mod ini serupa dengan Mudah, tetapi anda juga boleh memilih pertanyaan untuk dijalankan. Catatan
yang tidak seperti Maju urus niaga mod, yang ini tidak mengekalkan ujian
jadual antara permintaan, jadi anda harus menciptanya semula dengan yang sesuai
pembersihan/menyediakan arahan antara tanda aras berturut-turut.
Di bawah ialah senarai pertanyaan yang mungkin:
· Pertanyaan mata:
PILIH pad DARI sbtest WHERE id=N
· KEMASKINI pada lajur indeks:
KEMASKINI SET sbtest k=k+1 WHERE id=N
· KEMASKINI pada lajur bukan indeks:
KEMASKINI SET sbtest c=N WHERE id=M
· PADAM pertanyaan:
PADAM DARI sbtest WHERE id=N
ID baris yang dijana adalah unik sepanjang setiap ujian dijalankan, jadi tiada baris dipadamkan
dua kali.
· INSERT pertanyaan:
INSERT IN TO sbtest (k, c, pad) NILAI(N, M, S)
--oltp-test-mod
Mod pelaksanaan (lihat di atas). Nilai yang mungkin: simpe (mudah), kompleks (maju
transaksional) dan nontrx (bukan transaksi) (lalai: kompleks)
--oltp-baca-sahaja
Mod baca sahaja. Tidak UPDATE, DELETE or INSERT pertanyaan akan dilakukan. (lalai:
mati)
--oltp-julat-saiz
Saiz julat untuk pertanyaan julat (lalai: 100)
--oltp-point-selects
Bilangan pertanyaan pilih titik dalam satu transaksi (lalai: 10)
--oltp-simple-julat
Bilangan pertanyaan julat mudah dalam satu transaksi (lalai: 1)
--oltp-sum-julat
Bilangan pertanyaan julat SUM dalam satu transaksi (lalai: 1)
--oltp-order-ranges
Bilangan pertanyaan julat ORDER dalam satu transaksi (lalai: 1)
--oltp-distinct-julat
Bilangan pertanyaan julat DISTINCT dalam satu transaksi (lalai: 1)
--oltp-index-updates
Bilangan pertanyaan KEMASKINI indeks dalam satu transaksi (lalai: 1)
--oltp-non-index-updates
Bilangan pertanyaan KEMASKINI bukan indeks dalam satu transaksi (lalai: 1)
--oltp-nontrx-mode
Jenis pertanyaan untuk mod pelaksanaan bukan transaksi (lihat di atas). Nilai yang mungkin:
pilih, kunci_kemas kini, kemas kini_nokey, memasukkan, memadam. (lalai: pilih)
--oltp-connect-delay
Masa dalam mikrosaat untuk tidur selepas setiap sambungan ke pangkalan data (lalai: 10000)
--oltp-user-delay-min
Masa minimum dalam mikrosaat untuk tidur selepas setiap permintaan (lalai: 0)
--oltp-user-delay-maks
Masa maksimum dalam mikrosaat untuk tidur selepas setiap permintaan (lalai: 0)
--oltp-table-name
Nama jadual ujian (lalai: sbtest)
--oltp-saiz-meja
Bilangan baris dalam jadual ujian (lalai: 10000)
--oltp-dist-type
Taburan nombor rawak. Nilai yang mungkin: pakaian seragam (agihan seragam),
gaussian (taburan gaussian) dan khas. (lalai: istimewa)
Dengan pengedaran khas peratus nombor tertentu dijana dalam a
peratus kes tertentu (lihat pilihan di bawah).
--oltp-dist-pct
Peratusan nilai untuk dianggap sebagai 'khas' (untuk pengedaran khas)
(lalai: 1)
--oltp-dist-res
Peratusan kes apabila nilai 'istimewa' dijana (untuk pengedaran khas)
(lalai: 75)
--db-ps-mod
Jika pemacu pangkalan data menyokong API Penyata Disediakan, SysBench akan menggunakan
penyataan yang disediakan di sebelah pelayan untuk semua pertanyaan jika boleh. Jika tidak,
kenyataan yang disediakan oleh pihak klien (atau dicontohi) akan digunakan. Pilihan ini membolehkan
memaksa menggunakan emulasi walaupun PS API tersedia. Nilai yang mungkin: melumpuhkan,
auto. (lalai: auto)
Selain itu, setiap pemacu pangkalan data boleh menyediakan pilihannya sendiri. Pada masa ini hanya pemacu MySQL sahaja
tersedia. Di bawah ialah senarai pilihan khusus MySQL:
--mysql-host
hos pelayan MySQL. (lalai: localhost)
Bermula dari versi 0.4.5 anda boleh menentukan senarai hos yang dipisahkan dengan koma.
Dalam kes ini SysBench akan mengedarkan sambungan antara hos MySQL yang ditentukan pada
secara round-robin. Ambil perhatian bahawa semua port sambungan dan kata laluan mestilah sama
pada semua hos. Juga, pangkalan data dan jadual mesti disediakan dengan jelas pada setiap hos
sebelum melaksanakan penanda aras.
--mysql-port
Port pelayan MySQL (sekiranya sambungan TCP/IP harus digunakan) (lalai: 3306)
--mysql-soket
Fail soket Unix untuk berkomunikasi dengan pelayan MySQL
--mysql-user
Pengguna MySQL (lalai: pengguna)
--mysql-kata laluan
kata laluan MySQL
--mysql-db
nama pangkalan data MySQL. Nota SysBench tidak akan mencipta pangkalan data ini secara automatik.
Anda harus menciptanya secara manual dan memberikan keistimewaan yang sesuai kepada pengguna yang
akan digunakan untuk mengakses jadual ujian. (lalai: sbtest)
--mysql-table-enjin
Jenis jadual ujian. Nilai yang mungkin: myisam, innodb, timbunan, ndbcluster, bdb,
Mary, helang, pbxt (lalai: innodb)
--mysql-ssl
Gunakan sambungan SSL. (lalai: tidak)
--myisam-max-rows
Pilihan MAX_ROWS untuk jadual MyISAM (diperlukan untuk jadual besar) (lalai: 1000000)
--mysql-create-options
Pilihan tambahan diluluskan kepada CREATE TABLE.
Contoh penggunaan:
$ sysbench --test=oltp --mysql-table-type=myisam --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock sediakan
$ sysbench --num-threads=16 --max-requests=100000 --test=oltp --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --oltp-read-only run
Perintah pertama akan mencipta jadual MyISAM 'sbtest' dalam pangkalan data 'sbtest' pada a
Pelayan MySQL menggunakan /tmp/mysql.sock soket, kemudian isi jadual ini dengan rekod 1M. The
arahan kedua akan menjalankan penanda aras sebenar dengan 16 benang klien, mengehadkan
jumlah permintaan sebanyak 100,000.
Gunakan sysbench dalam talian menggunakan perkhidmatan onworks.net