admin 管理员组

文章数量: 1184232

在 Linux 中,可以使用一些命令或方法来 临时让 CPU 使用率达到 100% (用于测试或压力测试),然后再停止这些进程,使 CPU 恢复正常。以下是几种常见的方法:


方法 1:使用 yes 命令(简单快速)

yes 命令会持续输出字符串,占用 CPU 资源:yes > /dev/null & # 后台运行,占用 1 个 CPU 核心

  • 查看 CPU 占用 :top # 或 htop、mpstat -P ALL

  • 停止所有 yes 进程 :pkill yes # 终止所有 yes 进程

让所有 CPU 核心都 100%

for i in $(seq 1 $(nproc)); do yes > /dev/null & done  # 每个核心跑一个 yes
  • 停止所有 :pkill yes


方法 2:使用 stress 工具(更可控)

stress 是一个专门的压力测试工具,可以模拟 CPU、内存、IO 负载:

  1. 安装 stress (如未安装):

    sudo apt install stress   # Debian/Ubuntu
    sudo yum install stress   # CentOS/RHEL
  2. 让 CPU 100% 运行(持续 30 秒)

    stress --cpu $(nproc) --timeout 30s  # 使用所有 CPU 核心,30 秒后自动停止
    • 如果想手动停止,直接 Ctrl + C


方法 3:使用 dd 命令(计算密集型)

dd if=/dev/zero of=/dev/null bs=1M &  # 后台运行,占用 CPU
  • 停止 :pkill dd


方法 4:使用 while 循环(Shell 方式)

while true; do : ; done &  # 后台运行无限循环,占用 1 个 CPU 核心
  • 停止 :pkill -f "while true" # 终止所有类似的循环


如何停止所有 CPU 占用高的进程?

  1. 查找高 CPU 进程 :top # 按 `P` 按 CPU 排序,记下 PID

  2. 终止指定进程 :kill -9 <PID> # 强制终止

  3. 批量终止 (如所有 yes dd stress 进程):

    pkill yes
    pkill dd
    pkill stress

总结

方法 命令 停止方式
yes yes > /dev/null & pkill yes
stress stress --cpu $(nproc) pkill stress Ctrl+C
dd dd if=/dev/zero of=/dev/null & pkill dd
while 循环 while true; do : ; done & pkill -f "while true"

适用场景

  • 简单测试 yes while 循环

  • 专业压力测试 stress

  • 计算密集型测试 dd

停止后,CPU 使用率会立即恢复正常。

本文标签: 方法 进程 占用