Is this Linux? If so, you could try the following:
# sysctl vm.swappiness=100
(You might want to use sysctl vm.swappiness
first to see the default value, on my system it was 10
)
And then either use a program(s) that uses lots of RAM or write a small application that just eats up RAM. The following will do that (source: Experiments and fun with the Linux disk cache):
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char** argv) {
int max = -1;
int mb = 0;
int multiplier = 1; // allocate 1 MB every time unit. Increase this to e.g.100 to allocate 100 MB every time unit.
char* buffer;
if(argc > 1)
max = atoi(argv[1]);
while((buffer=malloc(multiplier * 1024*1024)) != NULL && mb != max) {
memset(buffer, 1, multiplier * 1024*1024);
mb++;
printf("Allocated %d MB\n", multiplier * mb);
sleep(1); // time unit: 1 second
}
return 0;
}
Coded the memset line to initialise blocks with 1s rather than 0s,
because the Linux virtual memory manager may be smart enough
not to actually allocate any RAM otherwise.
I added the sleep(1) in order to give you more time to watch the processes as it gobbles up ram and swap. The OOM killer should kill this once you are out of RAM and SWAP to give to the program. You can compile it with
gcc filename.c -o memeater
where filename.c is the file you save the above program in. Then you can run it with ./memeater.
I wouldn't do this on a production machine.
Best Answer
One doesn't always want to reduce it, but often to increase its lazy usage instead — the more clean pages are already in swap, the better, it means they can easily be set off RAM when free RAM is needed. Linux VM, though, has some weird behavior regarding swapping — intensive disk I/O (like huge file
cp
) can make your system swap unwanted heavily. It can be mitigated to some degree by decreasingvm.swappinness
and increasingvfs_cache_pressure
although the effect of such countermeasures isn't always meeting expectations. I think it also makes sense to mention zswap here — for some workloads it can be useful.