如果你有基本的GNU工具(sh
,grep
,yes
和head
),你可以这样做:
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
那么对于使用cat
:cat
将等待输入,完成后退出,并保持开放的管道之一,它会不断的grep活着。
如果你有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的速度最多使用一千兆字节。作为额外的奖励,pv
将向您显示目前的使用率和总使用率。当然,这也与之前的变种来完成:
yes | tr \\n x | head -c $BYTES | pv | grep n
只需插入| pv |
部分将显示您当前的状态(吞吐量和总,在默认情况下,我认为 - 否则看到的人(UAL)页)。
制作一个ramdisk(https://wiki.debian.org/ramfs)并填入一个大文件。 – thom
不幸的是,我的ESXi服务器上没有“mount”命令。 –
ESXi不是基于我可以修改的内核... –