内容目录
Linux系统负荷测试的各种方法
前言
一般在项目进行到后期阶段,需要对系统进行各种测试,以及警报测试。我将介绍如何在Linux环境下手动对CPU和内存施加压力,从而进行负载测试,而无需安装额外的工具。这些方法适用于那些在生产环境中不能随意安装工具的情况,希望对干基盘的你也有帮助。
CPU造成压力
编辑一个shell脚本然后执行它
#!/bin/bash
# 使用nproc命令获取CPU核心数
core_count=$(nproc)
# 对于每个核心,启动一个无限循环的后台进程以增加CPU负载
for ((i=0; i < core_count; i++))
do
while true
do
: # 占位符,不做任何操作的无限循环
done &
done
# 打印所有后台进程的PID
jobs -p
echo "已经启动了 $core_count 个后台进程来增加CPU负载。"
echo "要停止这些进程,请使用 'kill' 命令,后跟上面列出的PID。"
提高磁盘使用率
使用dd命令创建大文件。可以指定一个临时目录,在那里创建大文件,以填满磁盘空间。例如,使用下面的命令在/tmp目录下创建一个大文件:
dd if=/dev/zero of=/tmp/largefile bs=1M count=<数量>
- if=/dev/zero: 输入文件设置成/dev/zero,这会提供0值字节。
- of=/tmp/largefile: 输出文件指向您希望创建的文件路径。
- bs=1M: 块大小设置为1MB。
- count=<数量>: 指定要创建的1MB块的数量。需要根据当前磁盘的可用空间来决定这个数量如果是1G就填1024
最后测试完别忘了删除临时创建的大文件以释放磁盘空间:
rm -f /tmp/largefile
网络测试
我们还是可以用类似上面的方法创建一个测试文件,然后用CLI传到类似S3里面来进行上传和下载就可以测试网络负荷
dd if=/dev/urandom of=/tmp/largefile bs=1M count=1200
创建文件后,您可以使用AWS CLI将其上传到Amazon S3。首先,确保已经配置好AWS CLI并拥有适当的权限。然后使用下面的命令将文件上传:
aws s3 cp /tmp/largefile s3://your-bucket-name/path/to/largefile
替换your-bucket-name
和path/to/largefile
为您实际的S3存储桶名称和文件路径。
下载文件也很简单,使用AWS CLI的相似命令:
aws s3 cp s3://your-bucket-name/path/to/largefile /tmp/largefile
替换your-bucket-name
和path/to/largefile
为实际值,这样就可以将S3上的文件下载到本地的/tmp/largefile
如何给Linux系统的内存造成压力
针对内存的压力测试,可以编写一个简单的shell脚本,每按一次Enter键就消耗500MB的内存。以下是脚本内容:
#!/bin/bash
echo PID=$$
echo -n "[ Enter : powerup! ] , [ Ctrl+d : stop ]"
c=0
while read byte; do
eval a$c='$(head --bytes 5000000 /dev/zero | cat -v)'
c=$((c+1))
echo -n ">"
done
echo
以后遇到其他方法待更新
有其他测试和方法欢迎评论分享。