我需要它从终端执行某种 Linux 程序。Linux 程序唯一需要做的就是使用越来越多的内存。有这样的程序吗?
答案1
从我的上一个答案在 StackOverflow 上:
#include <stdlib.h>
int main() {
int *p;
while(1) {
int inc=1024*1024*sizeof(char);
p=(int*) calloc(1,inc);
if(!p) break;
}
}
跑步
$ gcc memtest.c
$ ./a.out
运行时,此代码会填满 RAM,直到被内核杀死。使用 calloc 而不是 malloc 来防止“延迟求值”。想法来自此线程: https://stackoverflow.com/questions/4383059/malloc-memory-questions
这段代码很快就占满了我的 RAM(4GB),然后在大约 2 分钟内占满了我的 20GB 交换分区,然后就挂了。这在 64 位 Linux 上有效。如果你使用 32 位操作系统,它会在挂之前限制在 2 或 4GB。
答案2
怎么样叉子炸弹?
还有什么可以创建一系列更大的 RAM 磁盘?你可以用
mkdir /tmp/ramdisk;chmod 777 /tmp/ramdisk
安装-t tmpfs-o 大小=256M tmpfs /tmp/ramdisk/
创建一个 256 mb 的 RAM 磁盘。你可以编写一个脚本来创建一系列 RAM 磁盘,并反复填充它们,直到你需要的任何东西都发生
答案3
将以下内容另存为mem.c
,然后运行gcc -o mem mem.c
,然后运行./mem
。它每秒分配 100MB 内存。它不执行任何其他操作。您可以通过更改以下数字来更改其休眠的秒数或分配的 MB 数。
#include <malloc.h>
#include <unistd.h>
#include <memory.h>
#define MB 1024 * 1024
int main() {
while (1) {
void *p = malloc( 100*MB );
memset(p,0, 100*MB );
sleep(1);
}
}
编辑
好的,已测试并更新。
答案4
有一个名为的实用程序stress
可以完成这些任务以及其他任务。 apt-get install stress
来自 Debian。