zoukankan      html  css  js  c++  java
  • 压力测试工具supersmack

    压力测试工具super-smack

    Super-smack 是一个强大的广受赞誉的压力测试工具,支持MySQLPostgreSQL。这个工具程序现在由 Tony Bourke 维护。

     

    安装

    Super-smack 现在是1.3版,源码下载地址如下:

    http://vegan.net/tony/supersmack/super-smack-1.3.tar.gz

     

    tar xzvf super-smack-1.3.tar.gz

    cd super-smack-1.3

    ./configur --with-mysql --with-pgsql

    根据需要,可以只保留 MySQL PostgreSQL 中的一个。如果你的 client library 安装在其他目录,你要指明它,例如:

    ./configure --with-mysql-lib=/usr/local/mysql/lib/mysql \

    --with-mysql-include=/usr/local/mysql/include/mysql

    然后

    make

    make install

     

    安装过程中遇到问题

    Make的时候出现如下错误:

    query.cc:200: error: cast from ‘char*’ to ‘unsigned int’ loses precision

    query.cc:200: error: cast from ‘char*’ to ‘unsigned int’ loses precision

    query.cc:219: error: cast from ‘char*’ to ‘unsigned int’ loses precision

    query.cc:219: error: cast from ‘char*’ to ‘unsigned int’ loses precision

    解决办法:

    更改query.cc文件的对应行

    unsigned --> long

     

    使用之前先要对.smack文件进行相应的更改,select文件和update文件,其实就是代表测试的不同类 ,select还是update,可以选择你要的操作使用相应的文件,这里我们使用select-key.smack.

    cp /usr/share/smacks/select-key.smack select-key-mysql.smack


    将两处mysql socket修改成实际的mysql socket所在位置。
    将两处处words.dat改成http_auth.dat
    将一处gen_data_file “gen-data -n 90000 -f %12-12s%n,%25-25s,%n,%d”; 修改成 gen_data_file “./gen-data -n 90000 -f %12-12s%n %25-25s %n %d”;注意是将逗号改为TAB空格.

     

     

    下面来体验下吧:

    [root@server4 ~]# super-smack  --db-type=mysql select-key-mysql.smack 10 1000

    Query Barrel Report for client smacker1

    connect: max=764ms  min=0ms avg= 91ms from 10 clients

    Query_type      num_queries     max_time        min_time        q_per_s

    select_index    20000   0       0       13128.83

     

    这表示 super-smack 运行了10个客户,客户连接最长时间为764毫秒,最短的则没有延迟,平均时间为91毫秒。Super-smack 总共执行了20000此查询,每个查询所花时间都小于1毫秒。整个测试期间,服务端平均每秒执行了13128.83 select_index 型查询。

    maxminavg为客户端最大、最小、平均连接时间,num_queriesmax_timemin_time为总请求次数,最大、最小查询时间(以毫秒为单位),q_per_s为每秒处理的请求数。

  • 相关阅读:
    vue获取下拉框值
    vue子父组件通信
    内存堆栈问题
    Object.defineProperty()--数据劫持原理
    call和apply和bind的区别
    Object.create()和new object()和{}的区别
    Object.keys()/Object.values()的简单理解
    object.assign
    泛型的定义、使用
    ts 泛型
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7170313.html
Copyright © 2011-2022 走看看