搜索
首页电脑教程电脑知识Linux系统这些压测工具,你用过吗?

Linux系统这些压测工具,你用过吗?

Mar 21, 2024 pm 04:12 PM
工具场景压测并发访问内存占用

Linux系统这些压测工具,你用过吗?

作为一名运维人员,你是否遇到过这种场景?需要用工具测试系统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中文网其他相关文章!

声明
本文转载于:每日运维。如有侵权,请联系admin@php.cn删除
在启动时接收NVVSVC.EXE运行时错误?在这里看!在启动时接收NVVSVC.EXE运行时错误?在这里看!Apr 11, 2025 am 12:50 AM

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

Windows P的高级提示不适用于WindowsWindows P的高级提示不适用于WindowsApr 11, 2025 am 12:49 AM

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

如果Acronis克隆未能从磁盘中读取数据怎么办?如果Acronis克隆未能从磁盘中读取数据怎么办?Apr 11, 2025 am 12:48 AM

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

文件上传未实现 - 以下是4种方法!文件上传未实现 - 以下是4种方法!Apr 11, 2025 am 12:47 AM

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

Windows中的AI:Windows中的AI驱动功能Windows中的AI:Windows中的AI驱动功能Apr 11, 2025 am 12:46 AM

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

如何使用Windows 10 0x80070643错误的PowerShell脚本错误?如何使用Windows 10 0x80070643错误的PowerShell脚本错误?Apr 11, 2025 am 12:45 AM

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

在哪里可以找到矛盾:操作galuga在PC上保存文件位置在哪里可以找到矛盾:操作galuga在PC上保存文件位置Apr 11, 2025 am 12:44 AM

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

无法在Microsoft Word中突出显示文字吗?在这里经过验证的方式无法在Microsoft Word中突出显示文字吗?在这里经过验证的方式Apr 11, 2025 am 12:43 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

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

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 英文版

SublimeText3 英文版

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