swappinessを100に設定してスワッピングを有効にしましたが、何もスワップされません。私は現在、メモリプレッシャーをあまり受けていないからかもしれません。しかし、テスト目的でkswapdをできるだけスワップするよう強制したいと思います。高いメモリ不足なしで動作させる方法はありますか?
ベストアンサー1
私が知っている限り、いくつかのメモリを割り当て(および使用)して強制的に交換できます。
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main(int argc, char **argv)
{
if (argc < 2)
return 1;
int megs = atoi(argv[1]);
if (megs <= 0)
return 2;
int i;
for (i=0; i<megs; i++) {
void *data = malloc(1024*1024);
memset(data, 1, 1024*1024);
}
getchar();
return 0;
}
.(または好むコンパイラのコマンドラインが何であれ)に保存してeater.c
コンパイルしますgcc -o eater eater.c
。次に、メガバイトを引数として使用して実行します。すべてのコンテンツを解放するには、Enterを押します。
警告する:実行されます早く実際に交換する必要があるまで。次に、あまりにも多くのRAMを消費すると、システム全体が停滞したり、OOMが起動したり、ランダムなアプリケーションが失敗し始めます。