kswapdを終了してページを交換する方法はありますか?

kswapdを終了してページを交換する方法はありますか?

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が起動したり、ランダムなアプリケーションが失敗し始めます。

おすすめ記事