Я понимаю общую концепцию 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 &
Когда на вашем сервере или компьютере возникнет ситуация нехватки памяти, вы увидите, что начинается использование