【发布时间】:2011-05-19 08:55:20
【问题描述】:
我正在 Linux 服务器上做一些测试,我需要服务器负载很重。我想知道我将如何模拟这个?现在服务器的 CPU 达到 20%,但我需要将其强制到 80% 左右,并进行一些测试以了解它是如何应对的。
【问题讨论】:
我正在 Linux 服务器上做一些测试,我需要服务器负载很重。我想知道我将如何模拟这个?现在服务器的 CPU 达到 20%,但我需要将其强制到 80% 左右,并进行一些测试以了解它是如何应对的。
【问题讨论】:
如果你想强制占用CPU,试试这个:
for cpu in 1 2 ; do
( while true; do true; done ) &
done
如果你也想模拟 IO 充电,试试这个:
for cpu in 1 2 ; do
( while true; do find / -type f -exec cp {} /dev/null \; ; done ) &
done
for cpu in 1 2 用于 2 核,for cpu in 1 2 3 4 用于 4 核 ;)
【讨论】:
find 命令将文件系统中的每个文件复制到/dev/null,因此正如@Cédric 所说,生成了大量的IO。
/dev/null 是某种黑洞或水槽。您存储在其中的任何内容都会消失,并且不会占用您硬盘空间的一个字节。
如果您正在寻找生成 cpu 使用率,那么您必须选择 CPU 密集型命令。 例如生成随机数。
试试这个:
dd if=/dev/urandom of=/dev/null
为每个 CPU 内核添加这些行。如果你有双核 CPU 使用:
dd if=/dev/urandom of=/dev/null &
dd if=/dev/urandom of=/dev/null &
检查作业
jobs
结束工作
kill %1(其中 %1 是作业 1 的编号)
【讨论】: