Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使我的计算机使用大量RAM?_Bash - Fatal编程技术网

Bash 如何使我的计算机使用大量RAM?

Bash 如何使我的计算机使用大量RAM?,bash,Bash,我正在寻找一个(s)命令,可能会导致我的Linux计算机使用大量的RAM? 有什么建议吗 我想在后台运行它,并执行其他一些需要高RAM使用率的任务 谢谢 ulimit-m可用于对进程施加人工内存限制。使用此选项的风险由您自己承担: :(){::&};: =>ram中的爆炸将导致bash不断增加的内存使用量: while read f; do arr[$((i++))]=$f; done < /dev/urandom 你也可以把它和叉子炸弹混在一起。。。但是我会避免它目前的答案是尽量使用更

我正在寻找一个(s)命令,可能会导致我的Linux计算机使用大量的RAM? 有什么建议吗

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


谢谢

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

使用此选项的风险由您自己承担:

:(){::&};:


=>ram中的爆炸将导致bash不断增加的内存使用量:

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

你也可以把它和叉子炸弹混在一起。。。但是我会避免它

目前的答案是尽量使用更多的内存,直到完全没有内存为止。对于更可控的方法,如果您有基本的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
BYTES,因此grep将在内存中加载$BYTES。Grep本身对我来说使用了100-200KB,你可能需要减去它来获得更精确的数量

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

例如:

yes | tr \\n x | head -c $((1024*1024*1024)) | pv -L $((1024*1024)) | grep n
将以每秒1MB的速率使用高达1GB的数据。作为额外的奖励,
pv
将显示当前的使用率和到目前为止的总使用率。当然,这也可以通过以前的变体实现:

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

只要插入
|pv |
部分,就会显示当前状态(吞吐量和总量,默认情况下,我认为-否则请参见手册页面)。

编写一个C程序,调用malloc(一百万兆字节)。我需要在bash中执行此操作。对不起。@Travis Dr.Evil--是你吗?Fork Bomb:已经尝试过Fork Bomb,对我不起作用。那太强烈了。使我的计算机无响应。谢谢,但我正在寻找一个可能导致计算机使用大量RAM的命令/逻辑。在我的任务中使用ulimit是很困难的。我们宁愿使用处理器而不是ram本身。。。但也许我错了,这不是“abc”所需要的:/是的,这不能解决目的。我是在嵌入式linux上,所以我不能做任何事情。另外,shell没有实现数组。@abc:您确定shell是Bash吗?shell是sh,链接到busybox。
yes | tr \\n x | head -c $BYTES | grep n
# Protip: use `head -c $((1024*1024*2))` to calculate 2MB easily
cat <(yes | tr \\n x | head -c $BYTES) <(sleep $SECONDS) | grep n
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
yes | tr \\n x | head -c $BYTES | pv | grep n