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.mzph.cn/news/641071.shtml

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

相关文章

Docker-Jenkins编译android-app的两种方案

Docker-Jenkins编译android-app的两种方案 android开发使用jenkins编译,自动集成修改点/自动命名/自动备份,将修改的apk发布到测试服务器发布网盘,而不需要用通讯工具传来传去。 jenkins用在互联网开发编译比较常见,如果android开…

charles mac抓包unknown问题

第一步:mac上安装Charles后,mac安装证书: 第二步:mac上信任证书 第三步:手机上安装证书 安装提示:电脑上通过help–>SSLProxying–> Install Charles Root Ceriticate on a Mobile Device or Remote …

kubeadm 安装k8s集群后,master节点notready问题解决方案

使用kubeadm 安装k8s集群后,加载calico cni 网络组件后,master节点notready问题 表现为: 使用命令查看日志:journalctl -f -u kubelet 报错如下: Failed to start ContainerManager failed to initialize top level…

2024-01-22(MongoDB)

1.Mongodb使用的业务场景: 传统的关系型数据库/mysql在“三高”需求以及应对web2.0的网站需求面前,有点力不从心,什么是“三高”需求: a. 对数据库高并发的读写需求 b. 对海量数据的高效率存储和访问需求 c. 对数据库的高可扩…

实现VLAN之间的路由

原理:路由器子接口 一个接口允许多个VLAN通过(避免占用物理路由器接口)。 目标 第 1 部分:单臂路由 第 2 部分:配置第三层交换机的路由端口 第 3 部分:带SVI的VLAN间路由 第 4 部分:补充知…

苹果笔记本MacBook电脑怎么卸载软件?三种方法快速卸载软件

苹果笔记本MacBook电脑是一款非常流行的电脑,但是有时候我们可能需要卸载一些不需要的软件。下面是一些简单的步骤,可以帮助您在MacBook电脑上卸载软件。 苹果笔记本MacBook电脑怎么卸载软件?三种实用方法快速卸载软件! 方法一&a…

【网络安全 -> 防御与保护】信息安全概述

目录 一、信息安全现状及挑战 二、信息安全脆弱性及常见安全攻击 1、网络环境的开放性 2、协议栈的脆弱性及常见攻击 3、操作系统的脆弱性及常见攻击 4、终端的脆弱性及常见攻击 5、其他常见攻击 三、信息安全要素 四、整体安全解决方案 一、信息安全现状及挑战 &…

【5G 接口协议】N2接口协议NGAP(NG Application Protocol)介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

图神经网络X项目|基于图神经网络的电商行为的预测(5%)

文章目录 Jupyter Notebook 学习人工智能的好帮手数据集数据集下载数据集调用数据集应用技巧——获取不重复的编号数据集应用技巧——随机采样数据集应用技巧——抽取前N项进行模拟测试 数据集构建技巧一——查看数据集构建进度 Jupyter Notebook 学习人工智能的好帮手 【Jupy…

【XR806开发板试用】系列之一 - Linux环境下Ubuntu完全开发流程

前言 为了让极术社区开发者体验搭载安谋科技STAR-MC1处理器的面向IoT领域的全志XR806开发板,极术社区联合全志在线开发者社区共同推出XR806开发板免费试用活动。 极术社区特准备了200块XR806开发板作为2022年社区新年活动,申请的人数有600多&#xff0c…

Tensorflow2.0笔记 - tensor的合并和分割

主要记录concat,stack,unstack和split相关操作的作用 import tensorflow as tf import numpy as nptf.__version__#concat对某个维度进行连接 #假设下面的tensor0和tensor1分别表示4个班级35名同学的8门成绩和两个班级35个同学8门成绩 tensor0 tf.ones([4,35,8]) tensor1 tf…

RK3399平台开发系列讲解(网络篇)什么是Linux路由

🚀返回专栏总目录 文章目录 一、什么是路由二、路由配置命令沉淀、分享、成长,让自己和他人都能有所收获!😄 一、什么是路由 一张路由表中会有多条路由规则。每一条规则至少包含这三项信息。 目的网络:这个包想去哪儿?出口设备:将包从哪个口扔出去?下一跳网关:下一个…

js对象数组去重封装

1.简单的数组去重就使用常用的去重方式好了 可以看这里: js多种数组去重方法-CSDN博客 2. 下面是关于object的数组去重 // 普通数组和 Object数组去重 const list1 [1, 4, 45, 6, 3, 4, 5, 3, 2, 1, 3, 2]; const list2 ["sss", "sss", &q…

电脑 wifi 常断

问题 电脑wifi网络经常断。 详细问题 笔者使用笔记本电脑,发现每过三五分钟,wifi便会自动断开。 解决方案 步骤1、搜索框搜索设备管理器。 步骤2、找到网络适配器并点击。 步骤2、找到网络适配器菜单中的Wireless相关内容,右键&#x…

企业微信开发:客户端调试

开启客户端调试 按照下面官网的说明操作,就可以开启客户端调试了。 官网文档链接:企业微信开发者中心:常见问题 - FAQ - 客户端调试 进入调试模式 进入方式:Ctrl Alt Shift D 按快捷键 Ctrl Alt Shift D,进入…

(十)Head first design patterns组合模式(c++)

组合模式 组合模式在参考链接中已经讲得很好了,这里只简单讲讲就好。 组合模式的意图是表达部分-整体层次结构。 当你需要管理一个组合对象,又要管理这个组合对象的单个对象。这个时候就可以让这个组合对象和单个对象继承同一个基类,以便用…

《绝地求生大逃杀》怎么买衣服 Steam商店服装购买方法

《绝地求生大逃杀》怎么买衣服?游戏中好看的服装有不少,大家可能开箱并没开出来,想买却不知具体的入手途径,今天闲游盒带来《绝地求生大逃杀》怎么买衣服 Steam商店服装购买方法,希望对各位有帮助。 打开Steam&#xf…

JavaEE进阶(6)SpringBoot 配置文件(作用、格式、properties配置文件说明、yml配置文件说明、验证码案例)

接上次博客:JavaEE进阶(5)Spring IoC&DI:入门、IoC介绍、IoC详解(两种主要IoC容器实现、IoC和DI对对象的管理、Bean存储、方法注解 Bean)、DI详解:注入方式、总结-CSDN博客 目录 配置文件作用 Sprin…

thinkphp5实战之phpstudy v8环境搭建,解决Not Found找不到路径问题

引言 thinkphp以快速、简约的大道至简的思想广受欢迎,适合开发小型项目。本地环境下,phpstudy v8是一款比较优秀的集成环境软件。部署完项目后,访问的时候傻眼,报错。 解决方案 不要慌,这个是伪静态的原因。选择apach…

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter 0. 背景1. 安装 docker-ce2. 安装 NVIDIA Container Toolkit3. 使用 nvidia-ctk 命令配置容器运行4. 通过 docker 运行 nvidia-smi5. 运行 gpu-jupyter6. 访问 gpu-jupyter7. 测试 gpu-jupyter 是否可以访问 cuda 0. 背景 今天突…