作为一名运维人员,你是否遇到过这种场景?需要用工具测试系统cpu或内存占用高来触发告警,或者通过压测测试服务的并发能力。作为运维工程师,也可以通过这些命令复现故障场景。那么通过本文可以让你掌握常用的测试命令和工具。
一、前言
在某些情况下,为了定位和复现项目中的问题,必须使用工具进行系统性压力测试,以模拟和还原故障场景。这时测试或压测工具就变得尤为重要。接下来,我们将根据不同的场景来探讨这些工具的使用。
二、测试工具
2.1 网络限速工具tc
tc是Linux中用于调整网络参数的命令行工具,可用于模拟各种网络条件,包括限制网络带宽和延迟等。主要应用场景是在测试过程中,模拟真实世界中可能出现的网络环境,以评估系统在这些条件下的表现。网络限速工具通常用于模拟不同网络速度和稳定性,以便开发人员能够更好地了解其应用程序在各种网络环境下的行为。通过调整tc命令的参数,可以模拟出低带宽、高延迟、丢包等情况,从而帮助开发人员优化其应用程序,确保其在各种网络条件
用法举例
# 设置延时30ms sudo tc qdisc add dev eth0 root netem delay 30ms # 范围内延时(10-50ms) sudo tc qdisc add dev eth0 root netem delay 30ms 20ms #设置丢包10% sudo tc qdisc add dev eth0 root netem loss 10% #删除丢包设置 sudo tc qdisc del dev eth0 root netem loss 10% # 显示延时的设置 : sudo tc qdisc show sudo tc qdisc show dev eth0 # 修改延时: sudo tc qdisc change dev eth0 root netem delay 40ms #随机产生1%的重复数据包 sudo tc qdisc add dev eth0 root netem duplicate 1% #设置数据包乱序 sudo tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50% # 删除延时 sudo tc qdisc del dev eth0 root netem delay 40ms
实测效果,我们设置主机丢包延迟40ms,修改前延迟如下
设置延迟40ms
[root@knode1 ~]# sudo tc qdisc add dev ens33 root netem delay 40ms [root@knode1 ~]# sudo tc qdisc show dev ens33 qdisc netem 8002: root refcnt 2 limit 1000 delay 40.0ms
再次ping测试,效果还是很明显的,确实很好用,更多用法,小伙伴们自己去研究吧
2.2 CPU 内存测试工具 – stress
stress 是一个 Linux 下的压力测试工具,可以模拟 CPU 和内存的高负载情况,用于测试系统的稳定性。
CPU/内存/磁盘测试工具通常用于评估系统在高负载条件下的稳定性,检测系统的性能极限。此外,在进行告警测试时,使用stress工具可以模拟系统在压力下的表现,帮助评估系统的可靠性和响应能力。通过这些工具,可以更全面地了解系统在不同负载情况下的表现,以便在必要时采取相应的优化措施,确保系统在实际运行中能够稳定可靠。
工具安装
sudo apt-get install stress #ubuntu系统 yum install stress#Centos系统
然后进行 CPU 和内存的测试:
测试 CPU,持续运行 4 个进程
# stress --io 2 --cpu 4 --vm 2 --vm-bytes 80M --timeout 1440m --cpu N: 生成 N 个工作进程来施加 CPU 负载。 # stress --cpu 8 会创建 8 个进程,每个都尝试占用 100% 的 CPU 时间。 --io N: 生成 N 个工作进程来执行 I/O 操作,增加 I/O 负载。 # stress --io 4 会创建 4 个 I/O 生成进程。 --vm N: # 生成 N 个工作进程来分配内存并定期写入随机数据。 每个进程默认分配 256MB 内存。 --vm-bytes B: #指定每个 --vm 工作进程分配的内存量。 stress --vm 2 --vm-bytes 128M 会生成 2 个工作进程,每个分配 128MB 内存。 --hdd N: # 生成 N 个工作进程来执行磁盘 I/O 操作。 stress --hdd 2 会创建 2 个磁盘 I/O 生成进程。 --hdd-bytes B: # 指定每个 --hdd 工作进程写入磁盘的数据量。 stress --hdd 1 --hdd-bytes 1G 会创建一个工作进程来写入 1GB 的数据。 --timeout T: # 指定 stress 运行的时间,T 是时间,可以是秒(默认)、分钟(加 m)、小时(加 h)。 stress --cpu 4 --timeout 30s 会在 30 秒后停止 CPU 负载测试 # 显示详细信息,包括生成的工作进程的状态。 --verbose:
实验:压测4个cpu,持续时间180s
stress --cpu 4 --timeout 180s
测试内存,分配 1GB 内存
stress --vm 2 --vm-bytes 20G --timeout 360s --vm 2: 表示启动2个虚拟内存压力工作线程。 --vm-bytes 20G: 每个工作线程使用的虚拟内存大小为20GB。 --timeout 360s: 设置压力测试持续时间为360秒(6分钟)
2.3 磁盘测速工具dd
dd 是一个 Linux 下的命令行工具,用于复制文件并对数据进行转换。通过它,我们可以测试硬盘的读写速度。
使用场景:硬盘测速工具常用于评估磁盘性能,选择最适合的存储方案,并检测磁盘是否存在性能瓶颈。
要测试读取速度和写入速度,可以使用dd命令的不同参数。例如,要测试读取速度,可以使用if参数从文件读取数据,而要测试写入速度,可以使用of参数将数据写入文件。
测试写入速度:
dd if=/dev/zero of=/data/test bs=4k count=100k
这会将零数据写入/data/test文件中,测试写入速度
dd if=/data/test of=/dev/null bs=4k
这会从/data/test文件中读取数据并将其丢弃,从而测试读取速度。
注:也可以使用fio来测磁盘速度
2.4. 流量访问压测工具 – ab
ab 是 Apache 自带的一个小型工具,用于测试 HTTP 服务器的性能。使用场景:流量访问压测工具常用于评估 Web 服务器的性能,检测系统在并发访问下的表现。
ab工具安装
sudo apt-get install apache2-utils #ubuntu系统 sudo yum install httpd-tools #Centos系统
测试网站的并发连接数
ab -c 10 -n 100 https://example.com/
这将创建10个并发连接,每个连接执行100个请求。
测试网站的请求速度
ab -n 1000 -c 100 https://example.com/
这将创建100个并发连接,总共执行1000个请求`.这时可以通过监控观察cpu和内存,用来初步评估平台的并发承载能力。
以上是Linux系统这些压测工具,你用过吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

您在启动时会遇到NVVSVC.EXE运行时错误吗?更糟糕的是,你们中的一些人可能最终会出现黑屏。因此,您迫切需要尽快删除此错误。在PHP.CN网站上的本指南中,我们收集了一些可行的SOL

如果您有多个显示器,则必须熟悉Windows P快捷方式。但是,窗口P无法正常工作,可能会偶尔发生。如果您面临此问题,则PHP.CN的这篇文章确实可以为您提供帮助。

Acronis克隆的问题未能从磁盘中读取数据,通常会在克隆过程中出现。面对这个无聊的问题,您该怎么办?尝试修复它。或者,您可以运行Acronis True Image的替代方案 - php.cn软件

当您尝试从文件夹访问Word文档时,您可能会收到一个错误,该错误在单击它后才说“未实现”。来自PHP.CN的这篇文章介绍了如何修复“未实现的文件上传”问题。

微软已经在AI上投入了大量的人力和财政资源,并取得了出色的成果。在这篇文章中,PHP.CN将在Windows中谈论AI,包括Windows 11和Windows 10中的AI工具和功能。

KB5034441无法使用错误代码0x80070643安装?来自Microsoft的Windows 10 0x80070643的PowerShell脚本有助于自动化更新Winre分区以修复Bitlocker安全功能旁路漏洞。 php.cn向你指导你

Contra:Galuga行动是由Konami出版的新发行的射手视频游戏。在这里,PHP.CN软件上的这篇文章重点关注Contra:操作Galuga保存文件位置,并说明如何备份Contra:操作Galuga保存文件。

Microsoft Word为我们所有人提供了许多有用的功能,包括突出显示文本。但是,有些人最近遇到了一个问题,即他们无法用Microsoft Word强调文本。这个问题给他们带来了不便。如果你是其中之一


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 英文版
推荐:为Win版本,支持代码提示!