需求:消耗指定大小的内存来提升服务器利用率或者验证服务器某些问题
1、使用C程序的方法
消耗指定大小的内存:cat malloc_mb.c
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#define UNIT (1024*1024)
int main(int argc, char *argv[])
{
long long i = 0;
int size = 0;
if (argc != 2) {
printf(" === argc must 2\n");
return 1;
}
size = strtoull(argv[1], NULL, 10);
if (size == 0) {
printf(" argv[1]=%s not good\n", argv[1]);
return 1;
}
char *buff = (char *) malloc(size * UNIT);
if (buff)
printf(" we malloced %d Mb\n", size);
buff[0] = 1;
for (i = 1; i < (size * UNIT); i++) {
if (i%1024 == 0)
buff[i] = buff[i-1]/8;
else
buff[i] = i/2;
}
pause();
}
<

本文介绍了如何通过C程序和shell脚本在Linux环境中动态地消耗及释放指定大小的内存,以提升服务器利用率或用于服务器问题排查。C程序通过malloc函数分配内存,并填充数据;shell脚本则利用tmpfs挂载和dd命令实现内存占用,之后通过卸载和删除文件释放内存。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



