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 | shgo 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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我每天如何使用 ChatGPT

我们都清楚互联网的运作方式——充斥着各种“爆款观点”,极端分裂的意见,恶搞和无知现象屡见不鲜。 最近,大家对于人工智能(AI)特别是大语言模型(LLMs)和生成式 AI(GenAI&#xff0…

Vue+Element(el-switch的使用)+springboot

目录 1、编写模板 2、发送请求 3、后端返数据 1.Controller类 2.interface接口(Service层接口) 3.Service(接口实现) 4.interface接口(Mapper层接口) 5.xml 6.效果 4、el-switch属性 1、编写模板 …

Java_网络编程

一、网络编程概述 网络编程的意思就是编写的应用程序可以与网络上其他设备中的应用程序进行数据交互。 网络编程有什么用呢?这个就不言而喻了,比如我们经常用的微信收发消息就需要用到网络通信的技术、在比如我们打开浏览器可以浏览各种网络、视频等也…

如何在一个集合对象中A排除另外一个集合对象B中A中拥有的数据通用思路,很精妙!

标题是什么意思呢? 假如我有一个集合对象A,数据有1,2,3,4,5,6 另外一个集合对象B,数据有2,4,5 那么在A中排除B拥有的数据就是 最终需要返回的结果就是1,3 那么我们一般一开始的想法其实就是在集合对象中A遍历取到每一个元素,然…

Linux之权限(内容详细,细节满满)

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 Linux 欢迎大家点赞,评论,收藏。 一起努力 目录 一.前言 二.权限修改的两种方法 …

LeetCode 670 最大交换数

周一,非常冷,大风呼呼的,上班路都走不动。 好消息,马上要过年了。大风吹,天气好。 过年过年,回家过年~ 学生时代的迷茫是不应该存在的,最好的时光应该尽情享受,而不应该自己给加层…

UI设计师主要是做什么的?

由于用户体验越来越受到重视,UI 设计师也成为现代互联网行业不可或缺的职业。他们通过美化和优化软件界面,为用户带来舒适的使用体验,目标是提高用户满意度。本文将对 UI 进行深入分析设计人员的工作职责和 UI 设计人员的工作内容&#xff0c…

设计模式-委托模式

设计模式专栏 模式介绍模式特点应用场景委托模式与代理模式的区别代码示例Java实现委托模式Python实现委托模式 委托模式在spring中的应用 模式介绍 委托模式是一种行为模式,用于在面向对象设计中解决多个对象接收并处理同一请求的问题。它通过将请求委托给另一个对…

Android双指缩放ScaleGestureDetector检测放大因子大图移动到双指中心点ImageView区域中心,Kotlin

Android双指缩放ScaleGestureDetector检测放大因子大图移动到双指中心点ImageView区域中心,Kotlin 在 Android双击图片放大移动图中双击点到ImageView区域中心,Kotlin-CSDN博客 基础上,这次使用ScaleGestureDetector检测两根手指的缩放动作&a…

Dubbo源码解析第一期:如何使用Netty4构建RPC

一、背景 早期学习和使用Dubbo的时候(那时候Dubbo还没成为Apache顶级项目),写过一些源码解读,但随着Dubbo发生了翻天覆地的变化,那些文章早已过时,所以现在计划针对最新的Apache Dubbo源码来进行“阅读理解…

插件化/热修复

1、如何规避Android P对私有API的访问限制 ● Android:Pie — 9.0 — 28 ● 一般都是通过反射访问私有 API 1.1、私有API Android源码查看网址 (1)hide public hide public方法无法直接使用,可以自行编译系统源码&#xff0c…

【Visual Object Tracking】Learning notes

Dense Optical Tracking: Connecting the Dots 参考学习来自: 单目标跟踪 Siamese系列网络:SiamFC、SiamRPN、one-shot跟踪、one-shotting单样本学习、DaSiamRPN、SiamRPN、SiamMask 单目标跟踪:跟踪效果 / 单目标跟踪:数据集处…