私はswappinessを100に変更し、malloc()コードを使用して私のrhelシステムでswappiを0に設定しようとしましたが、役に立たないようです。システムメモリの割り当ては次のとおりです。
-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;
}
スワップを非常に低い値またはゼロに設定するより良い方法はありますか?
ベストアンサー1
次のコマンド(rootとして実行)は、すべてのスワップスペースを無効にし、スワップスペース内のすべてを無効にする前に物理RAMに移動します。ただし、交換しない場合よりも多くのメモリが必要になると、カーネル自体がプロセスを終了することから本格的なカーネルパニックまで、さまざまな問題に直面する可能性があるので注意してください。
swapoff