使用内存的 Linux 程序

使用内存的 Linux 程序

我需要它从终端执行某种 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。

相关内容