zoukankan      html  css  js  c++  java
  • 使用Apache,压力测试redisson的一般高并发

    安装

    Linux

    linux直接yum -y install httpd-tools,然后ab -V测试

    Windows

    1查看80端口有没有被占用,netstat -ano | findstr "80"

    2下载地址https://www.apachehaus.com/cgi-bin/download.plx

     

     

    3解压后,找到安装目录下的httpd.conf,修改为自己的安装目录

     

     

    4 启动服务

    5 命令示例(并发200,一共1000个请求)

    D:apache24in>ab -c 200 -n 1000 http:nginx负载均衡/压力方法

    6 测试结果

    研究redisson的分布式锁在并发下的效果

    Ab命令参数

    -nrequests,用于指定压力测试总共的执行次数。

    -cconcurrency用于指定压力测试的并发数。

    -t即timelimit,等待响应的最大时间(单位:秒)。

    -b即windowsize,TCP发送/接收的缓冲大小(单位:字节)。

    -p即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。

    -u即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。

    -T即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。

    -v即verbosity,指定打印帮助信息的冗余级别。

    -w以HTML表格形式打印结果。

    -i使用HEAD请求代替GET请求。

    -x插入字符串作为table标签的属性。

    -y插入字符串作为tr标签的属性。

    -z插入字符串作为td标签的属性。

    -C添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。

    -H添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。

    -A添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。

    -P添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。

    -X指定使用的代理服务器和端口号,例如:"126.10.10.3:88"。

    -V打印版本号并退出。

    -k使用HTTP的KeepAlive特性。

    -d不显示百分比。

    -S不显示预估和警告信息。

    -g输出结果信息到gnuplot格式的文件中。

    -e输出结果信息到CSV格式的文件中。

    -r指定接收到错误信息时不退出程序。

    -h显示用法信息,其实就是ab -help。

    测试

    测试代码

    1 新建一个测试redisson控制层,加入测试代码

    @RequestMapping("lockTest")
    @ResponseBody
    public String lockTest(){
        Jedis jedis = redisUtil.getJedis();// redis链接
        RLock lock = redissonClient.getLock("redis-lock");//分布锁
        //加锁
       
    lock.lock();
       
    try {
            String v = jedis.get("k");//获取value
            System.err.print("==>"+v);//打印value
            if(StringUtil.isBlank(v)){
                v = "1";
            }
            int inum = Integer.parseInt(v);//获得value的值
            jedis.set("k", inum+1+"");//value增加1
            jedis.close();
        } finally {
            lock.unlock();
        }
        return "success";
    }

     

    2 启动n个测试redisson控制层的微服务

     

    3 配置nginx的负载均衡到测试redisson控制层的微服务

    A配置nginxupstream

             upstream redisTest {

                      server   127.0.0.1:8071 weight=3;

                      server   127.0.0.1:8072  weight=3;

                      server   127.0.0.1:8073  weight=3;

             }

    B配置nginx的默认代理地址

            location / {

                 #root D:/software/upload;  

                               proxy_pass http://redisTest;

                 index  index.html index.htm;

            }

     

    4 apacheab压力测试命令访问nginx来压测分布式的redisson控制层的微服务

    同时观察redis的被并发的k的增长情况

     

  • 相关阅读:
    MySQL学习-- UNION与UNION ALL
    图解MySQL 内连接、外连接、左连接、右连接、全连接……太多了
    mysql的三种连接方式
    Spring Boot MyBatis配置多种数据库
    @Value注解分类解析
    SpringBoot启动报错Failed to determine a suitable driver class
    idea启动报错:Access denied for user 'root '@'192.168.100.XXX' (using password: YES)
    QStandardItemModel的data线程安全(在插入数据时,临时禁止sizeHint去读model中的data)
    ubuntu 交叉编译qt 5.7 程序到 arm 开发板
    继承QWidget的派生类控件不能设置QSS问题解决(使用style()->drawPrimitive(QStyle::PE_Widget,也就是画一个最简单最原始的QWidget,不要牵扯其它这么多东西)
  • 原文地址:https://www.cnblogs.com/HYV587/p/11921925.html
Copyright © 2011-2022 走看看