Я попытался изменить swappiness на 100 и использовал код malloc (), чтобы установить swap на 0 в моей системе rhel. Но это не кажется полезным. . Распределение системной памяти выглядит следующим образом:
-bash-4.1$ cat /proc/meminfo
MemTotal: 15331636 kB
MemFree: 14552168 kB
SwapTotal: 15826924 kB
SwapFree: 15657580 kB
Программа malloc выполнила пару тысяч итераций, прежде чем ядро завершило ее работу. Но я не видел явного «убитого процесса» или какой-либо другой информации в файле журнала ядра.
Я искал статус с помощью dmesg
после выполнения этого фрагмента кода:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv) {
int max = -1;
int mb = 0;
char* buffer;
if(argc > 1)
max = atoi(argv[1]);
while((buffer=malloc(1024*1024*1024)) != NULL && mb != max) {
memset(buffer, 0, 1024*1024);
mb++;
printf("Allocated %d MB\n", mb);
}
return 0;
}
Есть ли лучший способ установить для свопа очень низкое значение или 0?