Ddosify 作为压测工具的使用指南

文章目录

    • 1. 写在最前面
      • 1.1 Kubernetes 监控
      • 1.2 Performance Testing
    • 2. 命令行安装 & 使用
      • 2.1 安装
      • 2.2 使用
        • 2.2.1 默认的例子
        • 2.2.2 定制的例子
    • 3. Dashboard 安装 & 使用
      • 3.1 安装
      • 3.2 使用
        • 3.2.1 简单使用
        • 3.2.3 依赖的服务介绍
    • 4. 碎碎念
    • 5. 参考资料

1. 写在最前面

由于不同供应商的机房机器的水平参差不齐,而我司负责的服务就需要在不稳定的机器上为我们的客户提供一个高质量的服务水平。不出意外,能够保障这种水平的方式只有一个,那就是压测,即 1:1 客户的用量来模拟一次客户的请求,保障压测期间质量是可靠的。(ps:写到这里明白了,为什么打仗之前都要演练一遍了

注:不要问,为什么不同供应商的机器水平差这么多,因为有的供应商会超卖!

那就让我们通过压测这个引子,引入今天的主角「Ddosify」,请注意这个工具是可以用来作为压测,但是人家不是只能用来压测,它的定位是「做 Kubernetes 的监控和性能测试」

1.1 Kubernetes 监控

  • Automatic Serivice Map Creation:Ddosify 会自动创建机器的服务映射,无需代码检测或 sidecar。这样可以轻松的找到系统中的瓶颈。

  • Performance Insight:它可以帮助发现服务响应时间过长或 SQL 查询速度慢等问题。

  • Real-Time Metrics:Ddosify 可以跟踪并显示有关集群实例 CPU 、内存、磁盘和网络使用情况的实时数据

  • Ease of Use:得益于 eBPF 技术,你可以无需更改代码、重新启动服务或添加额外的组件(如 sidecar)即可获得这些分析。

  • Alerts for Anomailes: 如果 k8s 集群中发生异常情况,例如 CPU 使用率突然增加,Ddosify 会立即向 Slack 发送警报

注:介绍 k8s 监控上的使用是防止见到 Ddosify 这个工具,大家只知道它可以做压测

1.2 Performance Testing

  • Multi-Location Based:生成来自全球 25 个国家/地区的负载/性能测试。它可以在 Ddosify 云上使用。

  • Easy Scenario Builder:无需编写任何代码既可以轻松创建测试场景。

  • Seamless Integration with Kubernetes Monitoring:性能测试与 k8s 监控原生集成,以获得统一的体验。

  • Postman Integraion:直接从 Postman 导入测试,方便那些已经使用 Postman 进行 API 开发和测试的人。

2. 命令行安装 & 使用

2.1 安装

笔者使用的 mac ,所以使用的是 brew install ddosify/tap/ddosify ,不过 Ddosify 也支持 curl 等其他方式安装。

curl -sSfL https://raw.githubusercontent.com/ddosify/ddosify/master/scripts/install.sh | sh

go install -v go.ddosify.com/ddosify@latest

2.2 使用

2.2.1 默认的例子

$> ddosify -t 'https://www.baidu.com',表示以 GET method 压测 `https://www.baidu.com’ 域名,请求 100 次,持续 10s。

注:-t :表示压测的目标 URL

测试效果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注:不得不说,这个命令行工具在压测结果的展示上还挺友好

2.2.2 定制的例子

$> ddosify -t "https://www.badu.com" -d 15 -n 1000 -m POST 表示以 POST method 压测 `https://www.badu.com’ 这个不存在的域名,请求 1000 次,持续 15s。

在这里插入图片描述

注:除了以上的命令行之外, ddosify 还支持通过 -a 指定 basic auth,-T 指定超时,-h 指定 header

3. Dashboard 安装 & 使用

Ddosify 除了支持命令行之外,还有更完善的 Dashboard 支持。以下介绍如何在单机部署 Ddosify Dashboard 的过程。

3.1 安装

  • Clone the repository

    git clone https://github.com/ddosify/ddosify.git
    cd ddosify/selfhosted
    
  • Deploy the services

    docker-compose up -d
    
  • Access the dashboard

    The dashboard is available at http://localhost:8014

  • Show the logs

    docker-compose logs
    

3.2 使用

3.2.1 简单使用

同样以压测 https://www.baidu.com 为例

  • 创建一个 test

    在这里插入图片描述

  • 运行一个 test

    在这里插入图片描述

  • 可视化的分析测试结果

    在这里插入图片描述

3.2.3 依赖的服务介绍
ServiceDescription
HammerThe engine responsible for executing load tests. You can add multiple hammers to scale your load testing capabilities.
Hammer ManagerManages the engines (Hammers) involved in load testing.
BackendHandles load test management and stores results.
InfluxDBDatabase that stores metrics collected during testing.
PostgresDatabase that preserves load test results.
RabbitMQMessage broker enabling communication between Hammer Manager and Hammers.
SeaweedFS Object StorageObject storage for multipart files and test data (CSV) used in load tests.
NginxReverse proxy for backend and frontend services.
PrometheusCollects the Kubernetes Monitoring metrics from the Backend service.

4. 碎碎念

是在一月尾巴把这个月学习的小目标完成的一天,完结撒花

  • 要感激生命中那些包容你,对你好的人,因为他们本可以不那么做

  • 新的一年要开开心心顺顺利利,祝我们前程似锦未来可期,在顶峰相见吧

  • 因为她争强好胜、得意洋洋、不服输、性格倔强、自我意识过强、很少奉献牺牲,却能让他人为自己所用,但很不巧,我们的文化有一部分,就是喜欢打压和攻击别人的得意。除此之外她又有棱角、有心机甚至有点腹黑,不完美、不是天使圣母、不符合世人对传统女性的刻板印象

5. 参考资料

  • GitHub - ddosify/ddosify: Effortless Kubernetes Monitoring and Performance Testing. Available on CLI, Self-Hosted, and Cloud

  • 2023年十款开源测试开发工具推荐(自动化、性能、造数据、流量复制)

  • 抢在客户之前在Kubernetes上发现SQL慢查询

  • 安装和使用都很简单的压力测试工具

  • Performance Testing - Ddosify Documentation

  • https://github.com/ddosify/ddosify/tree/master/selfhosted

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/345803.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

空调设计软件工程师考虑点

空调设计软件工程师考虑点 看如的下边有输入压力P,单位不同,MPG是相对压力,Kpa是绝对压力。绝对压力比相对压力大一个大气压,即100kpa。 海立压缩机直接给转速值就行。CAN数据格式,Motoral高位在前,Intel高…

解决找不到vcruntime140_1.dll无法继续执行代码的常用方法

Vcruntime140_1.dll文件的缺失是一个常见的系统问题,它可能会引发一系列不良影响。具体来说,当计算机系统中这个至关重要的动态链接库文件(vcruntime140_1.dll)丢失或损坏时,依赖于该文件运行的各种应用程序将无法获取…

【3.4数据库系统】逻辑结构设计

目录 1.关系模型的概念1.1 关系模型的基本概念1.2 关系模型相关概念 2.逻辑结构设计 1.关系模型的概念 1.1 关系模型的基本概念 关系模型属于数据模型 数据模型三要素:数据结构、数据操作、数据的约束条件。 1.2 关系模型相关概念 △目或度:关系模式中属性的个数。 △候选码…

5118优惠码vip、svip、专业版和旗舰版使用yhm666

5118大数据平台会员优惠码【yhm666】,结算时勾选“使用优惠码”,然后在优惠码窗口中输入yhm666,然后点确定即可享受特价会员价格。阿腾云atengyun.com分享如下图: 5118会员优惠码【yhm666】 5118会员价格和使用优惠码之后的价格对…

springboot初始项目每一层的含义

一.创建的时候主要勾选了以下 二.项目架构 三.有的项目下创建出来,存在更多不同的层级 src/main/java/com/example/demo/controller: 控制器层,包含处理 HTTP 请求和响应的控制器类。 src/main/java/com/example/demo/service: 服务层,包含业…

Excel·VBA时间范围筛选及批量删除整行

看到一个帖子《excel吧-筛选开始时间,结束时间范围内的所有记录》,根据条件表中的开始时间和结束时间构成的时间范围,对数据表中的开始时间和结束时间范围内的数据进行筛选 目录 批量删除整行,整体删除批量删除整行,分…

77_组合

描述 给定两个整数 n 和 k,返回范围[1, n]中所有可能的 k 个数的组合。 你可以按任何顺序返回答案。 思路 数组问题 从横向上来看往往有 遍历、滑动窗口、动态规划等思路。但是,其实在遍历这种横向取数过程中,可以根据条件的判断形成树形操作…

提高设计效率的5款免费画图软件推荐

在当今的数字世界中,我们有各种各样的创作工具,尤其是绘图软件。所以问题是:我们应该如何选择许多免费绘图软件?为了回答这个问题,我们将在本文中免费介绍和评估10个领先的绘图软件。每一个都有自己独特的特点和优势&a…

蓝桥杯省赛无忧 课件41 选择排序

01 选择排序的思想 02 选择排序的实现 03 例题讲解 #include <iostream> using namespace std; void selectionSort(int arr[], int n) {int i, j, min_index;// 移动未排序数组的边界for (i 0; i < n-1; i) {// 找到未排序的部分中最小元素的索引min_index i;for (…

HTML炫酷页面代码分享

目录 代码雨 鼠标点击爱心特效 鼠标跟随特效 实例演示&#xff1a; 代码雨 鼠标点击爱心特效 鼠标跟随特效 代码雨 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Code</title><style>…

shell脚本-条件测试、

一.条件测试 1.&#xff08; &#xff09; 和 { } &#xff08;&#xff09;会进/data ,开启子shell { } 直接切过去了&#xff0c;不开子shell 小案例&#xff1a; 2. test 命令 测试特定的表达式是否成立&#xff0c;当条件成立&#xff0c;测试语句的返回值为0&#xff…

2024问题汇总

2024问题汇总 Linux1.df-h / df -i 命令2.为多网卡Linux云服务器配置策略路由 Windows1.快速进入控制面板 网络连接指令 Linux 1.df-h / df -i 命令 df -h / df -i 都表示查看磁盘空间使用信息 如果遇到磁盘快满的情况&#xff0c;用这两个命令区别如下 df -h 是去删除比较大 …

Web--HTML基础

文章目录 安装环境HTMLhtml框架html基础标签语义标签html特殊符号 安装环境 安装vscode后 安装插件 可以先不写后台直接将前度界面展示出来 自动补全tag&#xff0c;同时修改tag时自动改另一半 在设置里将保存自动格式化的选项勾上 创建一个index.htm文件&#xff0c;这个…

2024.1.23(347.前k个高频元素)

2024.1.23(347.前k个高频元素) 思路 这道题目主要涉及到如下三块内容&#xff1a; 1.要统计元素出现频率 2.对频率排序 3.找出前K个高频元素 首先统计元素出现的频率&#xff0c;这一类的问题可以使用map来进行统计。 然后是对频率进行排序&#xff0c;这里我们可以使用一种…

【Bugku-web】HEADache

1.打开练习场景 2.在kali中输入以下命令&#xff1a;curl http://82.157.146.43:14340/ -H "Wanna-something: can-i-have- a-flag-please" 3.回车后&#xff0c;得到flag值&#xff0c;提交

搭建k8s集群实战(一)系统设置

1、架构及服务 Kubernetes作为容器集群系统&#xff0c;通过健康检查重启策略实现了Pod故障自我修复能力&#xff0c;通过调度算法实现将Pod分布式部署&#xff0c;并保持预期副本数&#xff0c;根据Node失效状态自动在其他Node拉起Pod&#xff0c;实现了应用层的高可用性。 …

消息中间件之RocketMQ(二)

RocketMQ支持的消息类型 了解之前&#xff0c;首先要熟悉RocketMQ中的组件架构设计 1.顺序消息 将同一个订单(即具有相同的orderId)的消息按状态先后顺序消费的&#xff0c;所以消息生产者调用send方法发送时需要传入MessageQueueSelector接口的,实现类&#xff0c;将order…

Sulfo Cy3 hydrazide,磺化-Cy3-酰肼,可用于与生物分子的羰基衍生物偶联

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Sulfo-Cyanine3-hydrazide&#xff0c;Sulfo Cy3 hydrazide&#xff0c;Sulfo Cyanine3 HZ&#xff0c;磺化 Cy3 酰肼&#xff0c;磺化-Cy3-酰肼 一、基本信息 产品简介&#xff1a;Sulfo-Cyanine3-hydrazide能够与…

C#使用DateTime.Now.AddDays方法获取任一天的信息

目录 一、使用DateTime对象的AddDays方法获取任一天信息方法 二、举例说明获取昨天的信息 三、涉及到的知识点 1. MessageBox.Show(&#xff09;中信息分行的办法 使用DateTime.Now属性可以得到当前的日期信息&#xff0c;此时调用ToString方法&#xff0c;并在该方法中添加…

封装 element el-date-picker时间选择区间

基于el-date-picker 处理满足项目需求。&#xff08;&#xff1a;最多选择7天&#xff09; 效果&#xff1a; 1 大于当前时间的以后日期禁选。2 选中时间的前后七天可选 &#xff08;最多可查询7天数据&#xff09;3 <template><section class"warning-contai…