Linux系统负荷测试的各种方法
Linux系统负荷测试的各种方法

Linux系统负荷测试的各种方法

内容纲要

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-namepath/to/largefile为您实际的S3存储桶名称和文件路径。

下载文件也很简单,使用AWS CLI的相似命令:

aws s3 cp s3://your-bucket-name/path/to/largefile /tmp/largefile

替换your-bucket-namepath/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

以后遇到其他方法待更新

有其他测试和方法欢迎评论分享。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注