目录
2.1 网络限速工具tc
2.2 CPU 内存测试工具 – stress
2.3 磁盘测速工具dd
2.4. 流量访问压测工具 – ab
首页 电脑教程 电脑知识 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

热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 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Gitee Pages静态网站部署失败:单个文件404错误如何排查和解决? Gitee Pages静态网站部署失败:单个文件404错误如何排查和解决? Apr 04, 2025 pm 11:54 PM

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...

如何在渐变背景的卡券布局上实现缺口效果? 如何在渐变背景的卡券布局上实现缺口效果? Apr 05, 2025 am 07:48 AM

实现卡券布局的缺口效果在设计卡券布局时,常常会遇到需要在卡券上添加缺口的需求,尤其是在背景为渐变色...

H5页面制作是否需要持续维护 H5页面制作是否需要持续维护 Apr 05, 2025 pm 11:27 PM

H5页面需要持续维护,这是因为代码漏洞、浏览器兼容性、性能优化、安全更新和用户体验提升等因素。有效维护的方法包括建立完善的测试体系、使用版本控制工具、定期监控页面性能、收集用户反馈和制定维护计划。

H5页面制作的素材从哪里获取 H5页面制作的素材从哪里获取 Apr 05, 2025 pm 11:33 PM

H5页面素材来源主要有:1. 专业素材网站(付费,质量高、版权清晰);2. 自制素材(独特性高,但耗时费力);3. 开源素材库(免费,需仔细筛选);4. 图片/视频网站(需核实版权)。此外,素材风格统一、尺寸适配、压缩处理、版权保护是需要注意的关键点。

负边距在某些情况下为何未生效?如何解决这个问题? 负边距在某些情况下为何未生效?如何解决这个问题? Apr 05, 2025 pm 10:18 PM

负边距为何在某些情况下未生效?在编程过程中,CSS中的负边距(negative...

如何获取58同城工作页面上的实时申请和浏览人数数据? 如何获取58同城工作页面上的实时申请和浏览人数数据? Apr 05, 2025 am 08:06 AM

如何在爬虫时获取58同城工作页面的动态数据?在使用爬虫工具爬取58同城的某个工作页面时,可能会遇到这样�...

为什么Flex布局中的紫色斜线区域会被误认为是'溢出空间”? 为什么Flex布局中的紫色斜线区域会被误认为是'溢出空间”? Apr 05, 2025 pm 05:51 PM

关于Flex布局中紫色斜线区域的疑问在使用Flex布局时,你可能会遇到一些令人困惑的现象,比如在开发者工具(d...

JavaScript代码换行:如何优雅地处理长字符串和对象属性访问? JavaScript代码换行:如何优雅地处理长字符串和对象属性访问? Apr 05, 2025 am 08:03 AM

JavaScript代码换行技巧详解在编写JavaScript代码时,我们经常会遇到一行代码过长的情况,这不仅影响代码的可读�...

See all articles