小智 347
我使用压力来做这种事情,你可以告诉它最多有多少个核心...它也可以给内存和磁盘带来压力.
示例为2个核心压力60秒
stress --cpu 2 --timeout 60
dim*_*mba 265
你也可以
dd if=/dev/zero of=/dev/null
Run Code Online (Sandbox Code Playgroud)
要运行更多这些以将负载放在更多内核上,请尝试将其分叉:
fulload() { dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null & }; fulload; read; killall dd
Run Code Online (Sandbox Code Playgroud)
在花括号中重复该命令的次数与要生成的线程数一样多(此处为4个线程).简单的输入命中将停止它(只是确保没有其他dd在这个用户上运行或你也杀了它).
小智 121
我认为这个更简单.打开终端并键入以下内容,然后按Enter键.
yes > /dev/null &
Run Code Online (Sandbox Code Playgroud)
要充分利用现代CPU,一行是不够的,您可能需要重复命令以耗尽所有CPU功率.
为了结束所有这一切,简单地说
killall yes
Run Code Online (Sandbox Code Playgroud)
这个想法最初是在这里找到的,虽然它是为Mac用户设计的,但这也适用于*nix.
L̲̳*_*̲̳̳ 26
一个核心(不调用外部进程):
while true; do true; done
Run Code Online (Sandbox Code Playgroud)
两个核心:
while true; do /bin/true; done
Run Code Online (Sandbox Code Playgroud)
后者只会使我的两个都达到~50%虽然......
这个将使两者都达到100%:
while true; do echo; done
Run Code Online (Sandbox Code Playgroud)
Mit*_*tms 22
虽然我迟到了,这篇文章是谷歌搜索"在Linux中生成负载"的最佳结果之一.
标记为解决方案的结果可用于生成系统负载,我更倾向于使用sha1sum /dev/zero在cpu-core上施加负载.
我们的想法是从无限数据流计算哈希值(例如/ dev/zero,/ dev/urandom,...)这个过程将尝试最大化cpu-core,直到进程中止.要为更多核心生成负载,可以将多个命令连接在一起.
例如.生成2核心负载:
sha1sum /dev/zero | sha1sum /dev/zero
Fop*_*tin 18
这是一个程序,你可以在这里下载
在Linux系统上轻松安装
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)
并在一个简单的命令行中启动它
stress -c 40
Run Code Online (Sandbox Code Playgroud)
强调你的所有CPU(无论你有多少)有40个线程,每个线程sqrt对ramdomly生成的数字进行复杂的计算.
您甚至可以定义程序的超时
stress -c 40 -timeout 10s
Run Code Online (Sandbox Code Playgroud)
与使用dd命令的建议解决方案不同,该命令主要处理IO并因此不会因为处理数据而使系统真正过载.
压力程序真的使系统超载,因为处理计算.
Jam*_*ven 15
要加载3个内核5秒钟:
seq 3 | xargs -P0 -n1 timeout 5 yes > /dev/null
Run Code Online (Sandbox Code Playgroud)
这导致许多write()系统调用的高内核(sys)负载.
如果您更喜欢userland cpu load:
seq 3 | xargs -P0 -n1 timeout 5 md5sum /dev/zero
Run Code Online (Sandbox Code Playgroud)
如果您只想继续加载,直到按Ctrl-C:
seq 3 | xargs -P0 -n1 md5sum /dev/zero
Run Code Online (Sandbox Code Playgroud)
Mar*_*ian 11
无限循环是我也有的想法.一个怪异的人是:
while :; do :; done
Run Code Online (Sandbox Code Playgroud)
(与零:相同true,什么都不做,退出零)
您可以在子shell中调用它并在后台运行.这样做$num_cores应该足够了.睡眠所需的时间,你可以把他们都杀掉,你得到的PID jobs -p(提示:xargs)
Jef*_*ein 11
:(){ :|:& };:
Run Code Online (Sandbox Code Playgroud)
这个叉炸弹会对CPU造成严重破坏,并可能导致计算机崩溃.
Fre*_*red 10
我会用2个脚本分割东西:
infinite_loop.bash:
#!/bin/bash
while [ 1 ] ; do
# Force some computation even if it is useless to actually work the CPU
echo $((13**99)) 1>/dev/null 2>&1
done
Run Code Online (Sandbox Code Playgroud)
cpu_spike.bash:
#!/bin/bash
# Either use environment variables for NUM_CPU and DURATION, or define them here
for i in `seq ${NUM_CPU}` : do
# Put an infinite loop on each CPU
infinite_loop.bash &
done
# Wait DURATION seconds then stop the loops and quit
sleep ${DURATION}
killall infinite_loop.bash
Run Code Online (Sandbox Code Playgroud)
增加负载或消耗 CPU 100% 或 X%
sha1sum /dev/zero &
Run Code Online (Sandbox Code Playgroud)
在某些系统上,这会增加 X% 插槽中的负载,在这种情况下,您必须多次运行相同的命令。
然后您可以通过键入命令查看 CPU 使用情况
top
Run Code Online (Sandbox Code Playgroud)
释放负载
killall sha1sum
Run Code Online (Sandbox Code Playgroud)
#!/bin/bash
duration=120 # seconds
instances=4 # cpus
endtime=$(($(date +%s) + $duration))
for ((i=0; i<instances; i++))
do
while (($(date +%s) < $endtime)); do :; done &
done
Run Code Online (Sandbox Code Playgroud)
如果您不想安装额外的软件,您可以使用自动利用所有 CPU 核心的压缩实用程序。例如,xz:
cat /dev/zero | xz -T0 > /dev/null
Run Code Online (Sandbox Code Playgroud)
这会从 /dev/zero 获取无限的虚拟数据流,并使用系统中可用的所有内核对其进行压缩。