我理解的一般概念swap memory
,但我需要以某种方式构建一个强制使用swap memory
进行性能测试的程序,而我甚至不知道从哪里开始。
基本上,我将安装一个flash memory card
将用作 的程序swap space
,我想测试这样做对性能的改善。我认为最简单的方法是制作一个使用多个线程的简单程序来测试它处理同时运行的多个进程的能力。问题是,我对 了解不够多swap
(或者从我读过的内容中没有收集到足够的见解),不知道如何“强制”这些线程使用swap space
。
有人能就我该如何处理这个问题提出一些切实可行的建议吗?我64-bit linux OS
最有可能在 上运行它Fedora 18
。
答案1
我不知道这是否是存档你想要做的事情的更好方法,但我使用了像这样的 C 代码
#include <stdio.h>
#include <stdlib.h>
#define MB(size) ( (size) * 1024 * 1024 )
int main(){
char *p;
if((p = (char *)malloc(MB(256))) != NULL){
memset(p, "A", MB(256));
sleep(300);
}
}
gcc -o mhog mhog.c
echo 1 > /proc/sys/vm/overcommit_memory
并以此方式多次运行 ./mhog
./mhog &
当你的服务器或计算机内存不足时,你会看到开始使用