【问题标题】:Put server on heavy load for testing将服务器置于重负载以进行测试
【发布时间】:2011-05-19 08:55:20
【问题描述】:

我正在 Linux 服务器上做一些测试,我需要服务器负载很重。我想知道我将如何模拟这个?现在服务器的 CPU 达到 20%,但我需要将其强制到 80% 左右,并进行一些测试以了解它是如何应对的。

【问题讨论】:

    标签: linux unix


    【解决方案1】:

    如果你想强制占用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 核 ;)

    【讨论】:

    • 我猜这会在 dev/null 中进行一些搜索或其他操作?
    • 带有这些参数的find 命令将文件系统中的每个文件复制到/dev/null,因此正如@Cédric 所说,生成了大量的IO。
    • 当然可以,虽然我有点担心将文件复制到 /dev/null。这些文件实际上并没有永久存储在 /dev/null 中,对吧?
    • @unleashed 不,/dev/null 是某种黑洞或水槽。您存储在其中的任何内容都会消失,并且不会占用您硬盘空间的一个字节。
    • 感谢您的澄清 :)
    【解决方案2】:

    如果您正在寻找生成 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 的编号)

    【讨论】:

      猜你喜欢
      • 2018-10-17
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      相关资源
      最近更新 更多