sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。
目前sysbench代码托管在launchpad上,项目地址:https://launchpad.net/sysbench(原来的官网 http://sysbench.sourceforge.net 已经不可用),源码采用bazaar管理。
一、 下载源码包
安装epel包后以便安装bzr客户端:
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
然后就可以开始安装bzr客户端了:
yum install bzr
之后,就可以开始用bzr客户端下载tpcc-mysql源码了。
cd /tmp bzr branch lp:sysbench
MySQL中文网便捷下载地址:
http://imysql.com/wp-content/uploads/2014/09/sysbench-0.4.12-1.1.tgz
sysbench支持以下几种测试模式:
1、CPU运算性能
2、磁盘IO性能
3、调度程序性能
4、内存分配及传输速度
5、POSIX线程性能
6、数据库性能(OLTP基准测试)
目前sysbench主要支持 mysql,drizzle,pgsql,oracle 等几种数据库。
二、编译安装
编译非常简单,可参考 README 文档,简单步骤如下:
cd /tmp/sysbench-0.4.12-1.1 ./autogen.sh ./configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make
# 如果 make 没有报错,就会在 sysbench 目录下生成二进制命令行工具 sysbench ls -l sysbench -rwxr-xr-x 1 root root 3293186 Sep 21 16:24 sysbench
三、OLTP测试前准备
初始化测试库环境(总共10个测试表,每个表 100000 条记录,填充随机生成的数据):
cd /tmp/sysbench-0.4.12-1.1/sysbench mysqladmin create sbtest ./sysbench --mysql-host=1.2.3.4 --mysql-port=3317 --mysql-user=tpcc --mysql-password=tpcc \ --test=tests/db/oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --rand-init=on prepare
关于这几个参数的解释:
--test=tests/db/oltp.lua 表示调用 tests/db/oltp.lua 脚本进行 oltp 模式测试
--oltp_tables_count=10 表示会生成 10 个测试表
--oltp-table-size=100000 表示每个测试表填充数据量为 100000
--rand-init=on 表示每个测试表都是用随机数据来填充的
如果在本机,也可以使用 –mysql-socket 指定 socket 文件来连接。加载测试数据时长视数据量而定,若过程比较久需要稍加耐心等待。
真实测试场景中,数据表建议不低于10个,单表数据量不低于500万行,当然了,要视服务器硬件配置而定。如果是配备了SSD或者PCIE SSD这种高IOPS设备的话,则建议单表数据量最少不低于1亿行。
四、进行OLTP测试
在上面初始化数据参数的基础上,再增加一些参数,即可开始进行测试了:
./sysbench --mysql-host=1.2.3.4. --mysql-port=3306 --mysql-user=tpcc \ --mysql-password=tpcc --test=tests/db/oltp.lua --oltp_tables_count=10 \ --oltp-table-size=10000000 --num-threads=8 --oltp-read-only=off \ --report-interval=10 --rand-type=uniform --max-time=3600 \ --max-requests=0 --percentile=99 run >> ./log/sysbench_oltpX_8_20140921.log
几个选项稍微解释下
--num-threads=8 表示发起 8个并发连接
--oltp-read-only=off 表示不要进行只读测试,也就是会采用读写混合模式测试
--report-interval=10 表示每10秒输出一次测试进度报告
--rand-type=uniform 表示随机类型为固定模式,其他几个可选随机模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)
--max-time=120 表示最大执行时长为 120秒
--max-requests=0 表示总请求数为 0,因为上面已经定义了总执行时长,所以总请求数可以设定为 0;也可以只设定总请求数,不设定最大执行时长
--percentile=99 表示设定采样比例,默认是 95%,即丢弃1%的长请求,在剩余的99%里取最大值
即:模拟 对10个表并发OLTP测试,每个表1000万行记录,持续压测时间为 1小时。
真实测试场景中,建议持续压测时长不小于30分钟,否则测试数据可能不具参考意义。
五、测试结果解读:
测试结果解读如下:
代码如下:
sysbench 0.5: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 8
Report intermediate results every 10 second(s)
Random number generator seed is 0 and will be ignored
Threads started!
-- 每10秒钟报告一次测试结果,tps、每秒读、每秒写、99%以上的响应时长统计
[ 10s] threads: 8, tps: 1111.51, reads/s: 15568.42, writes/s: 4446.13, response time: 9.95ms (99%)
[ 20s] threads: 8, tps: 1121.90, reads/s: 15709.62, writes/s: 4487.80, response time: 9.78ms (99%)
[ 30s] threads: 8, tps: 1120.00, reads/s: 15679.10, writes/s: 4480.20, response time: 9.84ms (99%)
[ 40s] threads: 8, tps: 1114.20, reads/s: 15599.39, writes/s: 4456.30, response time: 9.90ms (99%)
[ 50s] threads: 8, tps: 1114.00, reads/s: 15593.60, writes/s: 4456.70, response time: 9.84ms (99%)
[ 60s] threads: 8, tps: 1119.30, reads/s: 15671.60, writes/s: 4476.50, response time: 9.99ms (99%)
OLTP test statistics:
queries performed:
read: 938224 -- 读总数
write: 268064 -- 写总数
other: 134032 -- 其他操作总数(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)
total: 1340320 -- 全部总数
transactions: 67016 (1116.83 per sec.) -- 总事务数(每秒事务数)
deadlocks: 0 (0.00 per sec.) -- 发生死锁总数
read/write requests: 1206288 (20103.01 per sec.) -- 读写总数(每秒读写次数)
other operations: 134032 (2233.67 per sec.) -- 其他操作总数(每秒其他操作次数)
General statistics: -- 一些统计结果
total time: 60.0053s -- 总耗时
total number of events: 67016 -- 共发生多少事务数
total time taken by event execution: 479.8171s -- 所有事务耗时相加(不考虑并行因素)
response time: -- 响应时长统计
min: 4.27ms -- 最小耗时
avg: 7.16ms -- 平均耗时
max: 13.80ms -- 最长耗时
approx. 99 percentile: 9.88ms -- 超过99%平均耗时
Threads fairness:
events (avg/stddev): 8377.0000/44.33
execution time (avg/stddev): 59.9771/0.00

Operasi asas MySQL termasuk membuat pangkalan data, jadual, dan menggunakan SQL untuk melakukan operasi CRUD pada data. 1. Buat pangkalan data: createdatabasemy_first_db; 2. Buat Jadual: CreateTableBooks (Idintauto_IncrementPrimaryKey, Titlevarchar (100) NotNull, Authorvarchar (100) NotNull, Published_yearint); 3. Masukkan Data: InsertIntoBooks (Tajuk, Pengarang, Published_year) VA

Peranan utama MySQL dalam aplikasi web adalah untuk menyimpan dan mengurus data. 1.MYSQL dengan cekap memproses maklumat pengguna, katalog produk, rekod urus niaga dan data lain. 2. Melalui pertanyaan SQL, pemaju boleh mengekstrak maklumat dari pangkalan data untuk menghasilkan kandungan dinamik. 3.MYSQL berfungsi berdasarkan model klien-pelayan untuk memastikan kelajuan pertanyaan yang boleh diterima.

Langkah -langkah untuk membina pangkalan data MySQL termasuk: 1. Buat pangkalan data dan jadual, 2. Masukkan data, dan 3. Pertama, gunakan pernyataan CreatedataBase dan createtable untuk membuat pangkalan data dan jadual, kemudian gunakan pernyataan InsertInto untuk memasukkan data, dan akhirnya gunakan pernyataan PILIH untuk menanyakan data.

MySQL sesuai untuk pemula kerana mudah digunakan dan berkuasa. 1.MYSQL adalah pangkalan data relasi, dan menggunakan SQL untuk operasi CRUD. 2. Ia mudah dipasang dan memerlukan kata laluan pengguna root untuk dikonfigurasi. 3. Gunakan Masukkan, Kemas kini, Padam, dan Pilih untuk Melaksanakan Operasi Data. 4. Orderby, di mana dan menyertai boleh digunakan untuk pertanyaan yang kompleks. 5. Debugging memerlukan memeriksa sintaks dan gunakan Jelaskan untuk menganalisis pertanyaan. 6. Cadangan pengoptimuman termasuk menggunakan indeks, memilih jenis data yang betul dan tabiat pengaturcaraan yang baik.

MySQL sesuai untuk pemula kerana: 1) mudah dipasang dan mengkonfigurasi, 2) sumber pembelajaran yang kaya, 3) sintaks SQL intuitif, 4) sokongan alat yang kuat. Walau bagaimanapun, pemula perlu mengatasi cabaran seperti reka bentuk pangkalan data, pengoptimuman pertanyaan, pengurusan keselamatan, dan sandaran data.

Ya, sqlisaprogramminglanguagespecializedfordatamanagement.1) it'sdeclarative, focusingonwhathattoachieverthanhan.2) sqlisesessentialforquerying, memasukkan, mengemas kini, dandeleletingdatainrelationaldatabases.3)

Atribut asid termasuk atom, konsistensi, pengasingan dan ketahanan, dan merupakan asas reka bentuk pangkalan data. 1. Atomicity memastikan bahawa urus niaga sama ada berjaya atau gagal sepenuhnya. 2. Konsistensi memastikan pangkalan data tetap konsisten sebelum dan selepas transaksi. 3. Pengasingan memastikan bahawa urus niaga tidak mengganggu satu sama lain. 4. Kegigihan memastikan data disimpan secara kekal selepas penyerahan transaksi.

MySQL bukan sahaja sistem pengurusan pangkalan data (DBMS) tetapi juga berkait rapat dengan bahasa pengaturcaraan. 1) Sebagai DBMS, MySQL digunakan untuk menyimpan, menyusun dan mengambil data, dan mengoptimumkan indeks dapat meningkatkan prestasi pertanyaan. 2) Menggabungkan SQL dengan bahasa pengaturcaraan, tertanam dalam Python, menggunakan alat ORM seperti SQLalChemy dapat memudahkan operasi. 3) Pengoptimuman prestasi termasuk pengindeksan, pertanyaan, caching, perpustakaan dan bahagian meja dan pengurusan transaksi.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Dreamweaver CS6
Alat pembangunan web visual