一个使用内存的linux程序

ton*_*sid 3 memory linux

我需要它从终端执行某种 linux 程序。linux 程序唯一需要做的就是使用越来越多的内存。有没有这样的程序?

Jou*_*eek 9

怎么样一个叉炸弹

还有什么东西可以创建一系列更大的ram磁盘?您可以创建一个 ram 磁盘

mkdir /tmp/ramdisk; chmod 777 /tmp/ramdisk

mount -t tmpfs -o size=256M tmpfs /tmp/ramdisk/

创建一个 256 mb 的 ram 磁盘。您可能可以编写一个脚本来制作一系列 ram 磁盘,并反复填充它们,直到发生任何您需要的事情

  • +1 fork 炸弹 - 可能是这里最简单的解决方案。OP 从未提及监控已用内存。 (2认同)

Seb*_*ian 8

来自我之前在 StackOverflow上的回答

#include <stdlib.h>

int main() {
int *p;
while(1) {
    int inc=1024*1024*sizeof(char);
    p=(int*) calloc(1,inc);
    if(!p) break;
    }
}
Run Code Online (Sandbox Code Playgroud)

$ gcc memtest.c
$ ./a.out
Run Code Online (Sandbox Code Playgroud)

运行时,此代码会填满 RAM,直到被内核杀死。使用 calloc 而不是 malloc 来防止“懒惰评估”。来自该线程的想法:https : //stackoverflow.com/questions/4383059/malloc-memory-questions

这段代码很快填满了我的 RAM (4Gb),然后在大约 2 分钟内填满了我的 20Gb 交换分区,然后它就死了。这适用于 64 位 Linux。如果您使用 32 位操作系统,它在死之前将有 2 或 4GB 的限制。