vegeta压测使用

vegeta是一个HTTP压力测试工具,使用Go编写,用命令行交互,并且可以生成汇总和图表作为结果分析。 https://github.com/tsenart/vegeta 基本使用 详细使用方式可以参考README里的内容。可以分为两种方式使用:命令行交互和作为库引入Go程序。我这边使用了brew安装了vegeta,整个测试过程是使用Go编写了一个脚本来进行测试,具体可以参考代码片段 我并没有使用库的形式来引入,而是使用exec.Command()函数来执行命令行。 具体使用到的vegeta命令 attack: 调用API的命令,rate代表每秒调用次数,duration表示调用几秒,body指的是post请求的请求体,name是指为这次测试命名「可不填」,tee是生成bin原始文件「类似raw格式照片,可以用bin转换成很多别的格式」,report是生成报告,这里是在命令行输出。 echo "POST http://172.17.1.36:30898/hello" | vegeta attack -rate=2000 -duration=1s -body=query.json -timeout=0 -name=hello | tee ./result/results-null.bin | vegeta report 生成报告文件,这里是根据bin原始文件生成txt文件 vegeta report -type=text results-query.bin > repost.txt 生成分析图表,使用plot可以生成可交互的图表,需要将多个结果合并到一个图表的时候需要注意,在使用第一个命令的时候务必加上-name参数为其命名。 vegeta plot results-null.bin results-sleep.bin results-query.bin > plot-all.html 测试场景 使用Java和Go编写两个REST服务,分别测试3个API,在k8s中单副本和5副本的情况。API信息如下: 直接返回 sleep 2秒再返回 查询Elasticsearch的10000条数据,每条数据500字节 Elasticsearch集群信息 节点数量:2 版本:7.4.1 CPU:8个Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz,每个1 core 内存:31G Kubernetes信息 版本:1.16.15 节点数量:7「1 master, 6 worker」 指定Deployment调度到同一个节点,两个Deploymnet都分配了2G的内存 测试步骤 将Go脚本打包好后,在同目录下创建配置文件config.ini [address] null = "POST http://172.17.1.36:30898/hello" sleep = "POST http://172.17.1.36:30898/sleep" query = "POST http://172.17.1.36:30898/es" [param] rate = 2000 其中address指的是要调用的API地址和方法,rate指的是每秒调用的次数「我这里是只调用了1s」 ...

January 10, 2024 · 1 min · 210 words · Beaulo

AWS EC2 Linux 实例进入紧急模式该如何不删除实例并恢复

正确处理重启实例自动挂载卷的方式 起因 操作系统Amazon Linux 2023 实例类型t2.micro 想给EC2挂载一个新卷,但是重启实例的时候发现挂载的卷不见了,然后网上找了下如何重启自动挂载。试了下修改/etc/fstab文件,然后重启发现ssh一直连不上,看了下日志才发现进入紧急模式…交互界面也进不去了「很明显第一次就改坏了」 一开始我以为是我的proxy出了问题,不过关闭之后还是连不上 打开系统日志 但是AWS也提供了启动失败的解决方案,下面有一行小字 结果 一开始我一直在看文档,查找哪种类型能支持,去更改实例类型,但是不知道为什么还是连接不上…最后找到了一种通过临时启动一个用于恢复的实例来把改坏的文件修改回去的方法。 恢复方式 基本上分为这几步 1.停止启动失败的实例 2. 从启动失败的实例分离root卷 3. 在同个区内创建新的EC2实例 4. 挂载root卷到新的实例 5. 修改/etc/fstab文件 停止实例 等待停止即可,目的是为了分离卷 分离卷 找到挂载在根「/」目录下的卷,点击分离 启动一个新的实例 配置就最简单的就行,目的只是为了挂载上一步分离出来的卷 记得要指定子网「目的是选择和卷一样的可用区,比如我的就是us-west-1b」 挂载卷 在AWS管理页面挂载刚刚分离的卷到新的实例上,并ssh到新的实例挂载 这里就能看到我们刚刚改错的内容了 使用vim直接修改fstab文件,改好之后分离卷,挂载回启动不了的实例。注意挂载回去的时候名字输入xvda「与之前一样,目前我看到的AWS默认根卷都是这个名字」 最后启动老的实例,刚刚新建的实例可以删除了 成功! 参考 排查 EC2 Linux 实例处于紧急模式的问题 | AWS

January 3, 2024 · 1 min · 43 words · Beaulo

特种兵🏸️

gaming、badminton filled vacation 国庆还是一如既往地躺在家里,陪伴家人和休息,游戏和打球。从我目前的状态来看,做这几件事情非常的舒服,也很解压。 换了一个金属保持器,现在只需要晚上睡觉的时候戴一下就可以了,白天可以解放牙齿了。 假期一直在玩FTK,消磨时间的好游戏。 临走前买了一台Marshall Stanmore III放在家里,可以让父母听播客或者放音乐,出发前一小时拿到货,稍微把玩了一下。不过对我自己来讲似乎已经对这些东西暂时没有兴趣,声音么就听个响。 🏸️ 算上请假我放了9天,回来要连上6天。第一天上班就出差,满打满算一天搞定。现在有些摆烂,以前我会把出差排的很紧,想尽快完成任务。我猜以前应该是好奇和激情所驱动吧…… 第一个周末就安排了2天的早球,打早球有个好处就是不会睡懒觉,增加了一天的时间,早上打完中午洗澡吃饭下午晚上还有大把的时间来做想做的时候。以往我都是起床就快中午了,然后晚上打球,就是说只有下午的时间是自己的了。 第一周就断了两根线…然后买了一支新拍,小戴的白金利爪,很是好看。 第二周也算是两个早球,周六回学校参加了比赛,很幸运拿到了冠军,白嫖了一支拍子。 周日早上也是约了早球,打完后来到城北参加下午场。下午这场算社交球吧,没什么对抗,但也正好让我休息一下,和朋友们叙叙旧。 至此算是连续20天没睡过懒觉了,但是高强度的打球让身体有点吃不消。推拿师傅手一捏就说两侧腰怎么按起来不太一样😅 现在只剩下一块拍子没断线了,打算休息一段时间「天气冷了开始摆烂」,只在家里锻炼下核心好了。

November 11, 2023 · 1 min · 17 words · Beaulo

挫与乐:五六月记录

这两个月过的飞快,工作上发生的事情恍如隔世。 今年开始就没有 Code for fun 了,而是 Report for kpi…… 工作# 五一回来后,组内发生了一些比较大的人事变动,直接后果就是会议增多,文档工作飙升;此外每天早上早起了半小时只因 9 点一定要坐到工位上「25…

June 26, 2023 · 1 min · 19 words · Beaulo

久违的小长假

我已经长达 6 年保持几乎每个月回次家,而这次时隔长达 3 个多月 今年的五一假期放了 6 天,也是能自由出行的第一个小长假,高铁像早高峰的地铁一样拥挤。我没有出去旅行,没有写代码,回家打了一场比赛,高速练车,维系社交、家庭关系,休息…… 🏸️ 羽球、练车 假期头两天参加了…

May 4, 2023 · 1 min · 31 words · Beaulo

The meme of ChatGPT

GPT对于我这种略懂技术、会写代码;不会讲话、茶艺不精的人会造成什么impact

March 26, 2023 · 1 min · 164 words · Beaulo

借贷 - On Chain

信贷 - 现代金融体系的神奇工具,也是形成经济周期的一大因素

February 9, 2023 · 1 min · 100 words · Beaulo

魔幻2022

今年是魔幻的一年

December 28, 2022 · 1 min · 162 words · Beaulo

感染Covid经历

终于来了!

December 20, 2022 · 1 min · 39 words · Beaulo

我眼中的防疫

面对命中注定的Covid

December 11, 2022 · 1 min · 34 words · Beaulo