搭建go-stress-testing压力测试
参考地址:https://github.com/link1st/go-stress-testing
安装golang环境
yum install -y golang
下载软件包
wget -q https://codeload.github.com/link1st/go-stress-testing/zip/master
unzip go-stress-testing-master.zip
下载执行命令
https://github.com/link1st/go-stress-testing/releases/download/v1.0.1/go-stress-testing-linux
chmod +x go-stress-testing-linux
cat >/root/go-stress-testing-master/build.sh <<EOF
#!/usr/bin/env bash
# 编译linux下可以执行文件
go build -o go-stress-testing-linux main.go
# 使用交叉编译 linux和windows版本可以执行的文件
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o go-stress-testing-linux main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o go-stress-testing-win.exe main.go
EOF
执行编译
sh build.sh
命令参数说明
-c 表示并发数
-n 每个并发执行请求的次数,总请求的次数 = 并发数 * 每个并发执行请求的次数
-u 需要压测的地址
测试百度
./go-stress-testing-linux -c 1 -n 100 -u https://www.baidu.com/
开始启动 并发数:1 请求数:100 请求参数:
request:
form:http
url:https://www.baidu.com/
method:GET
headers:map[]
data:
verify:statusCode
timeout:3s
debu:false
─────┬───────┬───────┬───────┬────────┬────────┬────────┬────────┬────────
耗时│ 并发数│ 成功数│ 失败数│ qps │最长耗时│最短耗时│平均耗时│ 错误码
─────┼───────┼───────┼───────┼────────┼────────┼────────┼────────┼────────
1s│ 1│ 31│ 0│ 31.41│ 40.56│ 28.32│ 31.83│200:31
2s│ 1│ 63│ 0│ 31.79│ 40.56│ 27.70│ 31.45│200:63
3s│ 1│ 91│ 0│ 30.56│ 154.86│ 26.33│ 32.73│200:91
3s│ 1│ 100│ 0│ 30.74│ 154.86│ 26.33│ 32.53│200:100 ************************* 结果 stat ****************************
处理协程数量: 1
请求总数: 100 总请求时间: 3.263 秒 successNum: 100 failureNum: 0
************************* 结果 end ****************************
./go run main.go -c 1 -n 100 -u https://www.baidu.com/
─────┬───────┬───────┬───────┬────────┬────────┬────────┬────────┬────────
耗时│ 并发数│ 成功数│ 失败数│ qps │最长耗时│最短耗时│平均耗时│ 错误码
─────┼───────┼───────┼───────┼────────┼────────┼────────┼────────┼────────
1s│ 1│ 29│ 0│ 30.46│ 40.27│ 27.73│ 32.83│200:29
2s│ 1│ 55│ 0│ 27.89│ 133.45│ 26.71│ 35.86│200:55
3s│ 1│ 86│ 0│ 28.80│ 133.45│ 25.89│ 34.73│200:86
4s│ 1│ 115│ 0│ 28.84│ 133.45│ 25.89│ 34.67│200:115
5s│ 1│ 146│ 0│ 29.35│ 133.45│ 25.89│ 34.07│200:146
6s│ 1│ 176│ 0│ 29.45│ 133.45│ 25.89│ 33.96│200:176
7s│ 1│ 199│ 0│ 28.62│ 184.13│ 25.25│ 34.94│200:199
参数解释:
耗时: 程序运行耗时。程序每秒钟输出一次压测结果
并发数: 并发数,启动的协程数
成功数: 压测中,请求成功的数量
失败数: 压测中,请求失败的数量
qps: 当前压测的QPS(每秒钟处理请求数量)
最长耗时: 压测中,单个请求最长的响应时长
最短耗时: 压测中,单个请求最短的响应时长
平均耗时: 压测中,单个请求平均的响应时长
错误码: 压测中,接口返回的 code码:返回次数的集合
内核优化
修改程序最大打开文件数
被压测服务器需要保持100W长连接,客户和服务器端是通过socket通讯的,每个连接需要建立一个socket,程序需要保持100W长连接就需要单个程序能打开100W个文件句柄
vim /etc/security/limits.conf
这里需要把硬限制和软限制、root用户和所有用户都设置为 1040000
core 是限制内核文件的大小,这里设置为 unlimited
添加以下参数
root soft nofile 1040000
root hard nofile 1040000 root soft nofile 1040000
root hard nproc 1040000 root soft core unlimited
root hard core unlimited * soft nofile 1040000
* hard nofile 1040000 * soft nofile 1040000
* hard nproc 1040000 * soft core unlimited
* hard core unlimited
注意:
/proc/sys/fs/file-max 表示系统级别的能够打开的文件句柄的数量,不能小于limits中设置的值
如果file-max的值小于limits设置的值会导致系统重启以后无法登录
# file-max 设置的值参考
cat /proc/sys/fs/file-max
12553500
修改以后重启服务器,ulimit -n 查看配置是否生效
搭建go-stress-testing压力测试的更多相关文章
- 使用stress进行压力测试
本文转载自使用stress进行压力测试 导语 stress,顾名思义是一款压力测试工具.你可以用它来对系统CPU,内存,以及磁盘IO生成负载. 安装stress 几乎所有主流的linux发行版的软件仓 ...
- centos8平台使用stress做压力测试
一,安装stress: 说明:el8的源里面还没有,先用el7的rpm包 [root@centos8 source]# wget https://download-ib01.fedoraproject ...
- linux压力测试工具stress
最近给PASS平台添加autoscaling的功能,根据服务器的负载情况autoscaling,为了测试这项功能用到了stress这个压力测试工具,这个工具相当好用了.具体安装方式就不说了.记录下这个 ...
- Linux压力测试工具stress的参数详解
为了测试服务器的负载情况,可以使用stress这个压力测试工具,可以在环境上验证测试下. stress安装 sudo yum install -y epel-release sudo yum inst ...
- 树莓派压力测试工具S-Tui + Stress的使用
压力测试工具S-Tui + Stress的使用 树莓派# 背景故事 打算测试一下树莓派外壳的散热性能,需要能压满CPU100%,同时显示温度.CPU频率.CPU占用率,那么这款工具你值得拥有. 软件介 ...
- 压力测试工具集合(ab,webbench,Siege,http_load,Web Application Stress)
压力测试工具集合(ab,webbench,Siege,http_load,Web Application Stress) 1 Apache附带的工具ab ab的全称是ApacheBench,是Apac ...
- 微软压力测试工具 web application stress
转自 http://www.cnblogs.com/tonykan/p/3514749.html lbimba 铜牌会员 这里给广大的煤油推荐一个web网站压力测试工具.它可以用来模拟多个用户操作网 ...
- 使用Microsoft Web Application Stress Tool对web进行压力测试
Web压力测试是目前比较流行的话题,利用Web压力测试可以有效地测试一些Web服务器的运行状态和响应时间等等,对于Web服务器的承受力测试是个非常好的手法.Web 压力测试通常是利用一些工具,例如微软 ...
- (转)使用Microsoft Web Application Stress Tool对web进行压力测试
http://www.blogjava.net/crespochen/archive/2009/06/02/279538.html Web压力测试是目前比较流行的话题,利用Web压力测试可以有效地测试 ...
- 使用Web Application Stress Tool 进行压力测试
1.在测试客户端机器上启动Web Application Stress Tool,在弹出的“建立新脚本”对话框中选择“Record”按钮: 2.在“Record”参数设置第一步中,所有的checkbo ...
随机推荐
- 华为手机logcat中不显示log.e以下级别日志的解决方法
(1) 进入拨号界面输入:*#*#2846579#*#* (2) 进入“后台设置” ——>“LOG设置” (3) 点击选择“AP日志” (4) 部分手机可能需要重启.
- KUDU 学习笔记
Kudu 现存系统针对结构化数据存储与查询的一些痛点问题,结构化数据的存储,通常包含如下两种方式: 静态数据通常以Parquet/Carbon/Avro形式直接存放在HDFS中,吞吐能力大,适合离线分 ...
- BootStrap-select插件动态添加option无法显示
问题描述: 在使用bootstrap-select插件时出现下拉框无法显示动态追加的option,经过查看element元素发现,select标签已经append进去了所需的option选项,但是页面 ...
- 13_Python的面向对象编程-类class,对象object,实例instance
1.面向对象概述 1.类是用来描述对象的工具,把拥有相同属性和行为的对象分为一组 2.对象是由类实例化出来的一个具体的对象 属性: 对象拥有的名词,用变量表示 ...
- [Oracle/SQL]找出id为0的科目考试成绩及格的学生名单的四种等效SQL语句
本文是受网文 <一次非常有意思的SQL优化经历:从30248.271s到0.001s>启发而产生的. 网文没讲创建表的数据过程,我帮他给出. 创建科目表及数据: CREATE TABLE ...
- 面试:为了进阿里,重新翻阅了Volatile与Synchronized
该系列文章收录在公众号[Ccww技术博客],原创技术文章早于博客推出 在深入理解使用Volatile与Synchronized时,应该先理解明白Java内存模型 (Java Memory Model, ...
- 我是怎样通过个人项目成长为高级 JavaScript 开发者的
大道理都是能用三两句话说清的 . 在我开发人员的职业生涯中,最好的决定之一就是不再满足于只做工具的使用者. 我决定创建我自己的工具,并不是为了卖钱,而是要了解这些技术的实际工作方式,并提升我的技术技能 ...
- 教务管理系统(node+express+mysql)
模块拆分 现在将教务系统拆分成九个模块: 教务系统教师业务:师资管理.教学计划管理.排课管理 教务系统学生业务:考试管理.毕业生管理.学生综合测评 信息查询:自习室查询.课程表查询 考试系统:实现学生 ...
- 乔悟空-CTF-i春秋-Web-GetFlag
2020.09.07 今天发生了一些事情,世事无常,哎.好好的享受当下,该吃吃该喝喝好吧.人活一辈子,到底为了啥? 做题 题目 题目地址 做题 这个题目还行,思路比较清晰,没那么多奇怪的脑洞
- 基于Socket的编程
2020/7/5 客户端步骤: 1.创建Socket. 根据指定服务端的IP地址或者端口号构造Socket类对象: Socket socket = new Socket(InetAddress. ...