sysbench压测msyql

安装sysbench

(1)快速安装说明

yum -y install sysbench sysbench –version    #sysbench 1.0.9

(2)从源代码构建和安装

我们还可以在Github(https://github.com/akopytov/sysbench)上下载sysbench软件包,其中的  README.md显示了如何安装和使用它

文件IO基准测试

(1)创建文件

为了避免RAM破坏基准测试结果,我们应该创建大于RAM大小的文件。因此,我在数据目录中创建了150GB的文件:

cd /data1 sysbench –test=fileio –file-total-size=500G prepare

此命令将创建总共500GB的文件(默认值:128个文件)

为了避免RAM缓存的影响,我们需要将“ –file-total-size ”设置为大于RAM。

(2)IO基准

sysbench –test=fileio –file-total-size=500G –file-test-mode=rndrw –init-rng=on –max-time=300 –max-requests=0 run

结果:

    reads/s:                      16121.01
    writes/s:                    10747.29
    fsyncs/s:                    34390.58

Throughput:

    read, MiB/s:                  251.89
    written, MiB/s:              167.93

General statistics:

    total time:                          300.0049s
    total number of events:              18378137

Latency (ms):

        min:                                  0.00
        avg:                                  1.04
        max:                                22.06
        95th percentile:                      4.10
        sum:                            19163038.42

Threads fairness:

    events (avg/stddev):          287158.3906/763.93
    execution time (avg/stddev):  299.4225/0.01

结果显示,每秒读取16121.01个,每秒10747.29个写入和251.89 MiB / s,写入167.93。

4. MySQL OLTP(在线事务处理)基准

(1)准备表和行

sysbench /usr/share/sysbench/oltp_read_write.lua —mysql-host=10.1.0.20 –mysql-port=5701 –mysql-user=sbtest –mysql-password=’sbtestpwd’ –mysql-db=sbtest –db-driver=mysql –tables=3 –table-size=10000000  prepare

此命令意味着创建3个表,每个表包含1000万行。

可以select count(*) from sbtest1; 确认行数。

(2)运行基准

/ usr / share / sysbench  目录中有很多LUA脚本,您可以选择一个合适的脚本来获得基准。

脚本有:

bulk_insert.lua 
oltp_delete.lua 
oltp_insert.lua 
oltp_read_only.lua 
oltp_read_write.lua 
oltp_point_select.lua 
oltp_update_index.lua 
oltp_update_non_index.lua 
oltp_write_only.lua
select_random_points.lua 
select_random_ranges.lua
sysbench /usr/share/sysbench/oltp_read_write.lua –mysql-host=10.1.0.20 –mysql-port=5701 –mysql-user=sbtest –mysql-password=’sbtestpwd’ –mysql-db=sbtest –db-driver=mysql –tables=3 –table-size=10000000 –report-interval=10 –threads=128 –time=600 run 2>&1

线程数:128

每10秒报告一次中间结果

运行时间:600秒

在运行sysbench时,我们可以检查一些状态。看看顶级状态,mysqld进程使用了​​将近48个CPU内核和14%的内存(约18 GB)。

top status

内存使用情况我们可以得到如下报告信息(–report-interval = 10:定期以指定的时间间隔(以秒为单位报告中间统计信息):

您可以获取TPS(18183.90)/ QPS(363684.99),事务总数,查询总数(包括读写),报告中发生了多少错误。您还可以找到延迟指标(95%:10.65 ms)和查询分布。

如果编写很多,则可以根据使用情况增加每个事务的INSERT / UPDATE / DELDETE查询,然后为每个事务设置不同的查询数。例如,

sysbench /usr/share/sysbench/oltp_read_write.lua –mysql-host=10.1.0.20 –mysql-port=5701 –mysql-user=sbtest –mysql-password=’sbtestpwd’ –mysql-db=sbtest –db-driver=mysql –tables=3 –table-size=10000000 –delete_inserts=10 –index_updates=10 –non_index_updates=10 –report-interval=10 –threads=128 –time=600 run

该报告显示,每个事务有更多写入。

通过以下方式获取更多信息:

sysbench /usr/share/sysbench/oltp_read_write.lua help

然后,我们可以粗略估计该系统和MySQL实例是否足以满足我们的使用需求,它必须比我们的需求好得多,因为在生产环境中查询更加复杂,并且这些查询需要更多的系统资源来执行。

赞(2) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » sysbench压测msyql

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏