如何让我的电脑使用大量内存?

时间:2010-11-12 01:25:59

标签: bash

我正在寻找可能导致我的Linux计算机使用大量内存的命令? 有什么指针吗?

我想在后台运行它并执行其他需要高RAM使用率的任务。

谢谢!

4 个答案:

答案 0 :(得分:6)

那个会导致bash使用不断增长的内存:

while read f; do arr[$((i++))]=$f; done < /dev/urandom

另一个困难的方法可能是(小心):

while read f; do arr="$arr:$arr:$arr:$arr:$f"; done < /dev/urandom

更软版本:

while read f; do arr="$arr:$f"; done < /dev/urandom

回收部分内存调用:

unset arr

你也可以将它与叉炸弹混合......但我会避免它

答案 1 :(得分:1)

当前的答案将尝试使用更多的RAM,直到它完全脱离RAM。对于更受控制的方法,如果你有基本的GNU工具,你可以这样做:

yes | tr \\n x | head -c $BYTES | grep n
# Protip: use `head -c $((1024*1024*2))` to calculate 2MB easily

这是有效的,因为grep会在RAM中加载整行数据。由yes生成的替换换行符的行将无限长,但受head$BYTES字节的限制,因此grep将在内存中加载$ BYTES。 Grep本身对我使用100-200KB,你可能需要减去更精确的数量。

如果您还要添加时间限制,可以在bash中轻松完成此操作(在sh中不起作用):

cat <(yes | tr \\n x | head -c $BYTES) <(sleep $SECONDS) | grep n

<(command)似乎鲜为人知,但通常非常有用,更多信息请点击此处:http://tldp.org/LDP/abs/html/process-sub.html

如果你有pv并希望慢慢增加RAM使用率:

yes | tr \\n x | head -c $BYTES | pv -L $BYTESPERSEC | grep n

例如:

yes | tr \\n x | head -c $((1024*1024*1024)) | pv -L $((1024*1024)) | grep n

将以每秒1MB的速度使用高达1 GB的容量。作为额外的奖励,pv将向您显示当前的使用率和到目前为止的总使用量。当然,这也可以通过以前的变体来完成:

yes | tr \\n x | head -c $BYTES | pv | grep n

只需插入| pv |部分即可显示当前状态(吞吐量和总数,默认情况下,我认为 - 否则请查看man(ual)页面。)

答案 2 :(得分:0)

ulimit -m可用于对进程施加人为内存限制。

答案 3 :(得分:0)

使用此风险需要您自担风险:

  

:(){:|:&amp; };:

=&GT;你的公羊爆炸

相关问题