メモリ使用量を手動で増やす方法は?

メモリ使用量を手動で増やす方法は?

私たちのサーバーにはSolaris 10 OSがあり、このサーバーでテストしたいと思います。このテストでは、メモリ使用量を高くする必要があります。

もしそうなら、手動でメモリ使用量を増やす簡単な方法があるかどうか疑問に思います。

答え1

最も簡単な方法は、デフォルトのtmpfsを使用すると仮定して/ tmpを埋めることです。実行しdf -k /tmpて確認してください。

(仮想)メモリ使用量を1GB増やすには:

mkfile 1g /tmp/1g

解く

rm /tmp/1g

答え2

このページあなたを助ける必要があります。 c:の小さいプログラム

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char** argv) {
    int max = -1;
    int sleep_interval = 2;
    int mb = 0;
    char* buffer;

    if(argc > 1)
        max = atoi(argv[1]);
    if(argc > 2)
        sleep_interval = atoi(argv[2]);

    while((buffer=malloc(1024*1024)) != NULL && mb != max) {
        memset(buffer, 0, 1024*1024);
        mb++;
        printf("Allocated %d MB\n", mb);
    }
    printf("sleeping for %d\n",sleep_interval);
    sleep(sleep_interval);
    return 0;
}

プログラムに最大メモリー量を指定しないと、割り当て可能なメモリー量(ulimit、メモリー量、またはアドレススペースのサイズによって制限される可能性があります)が使い果たされるまで割り当てられます。

答え3

メモリを埋める最も簡単な方法は、文字列配列(または他の種類の配列)を割り当てるプログラムを作成することです。ページングの代わりにメモリにデータを保持する必要がある場合は、割り当てられたメモリをスキャンする必要があります。定期的に。

割り当て後に長い(コマンドライン引数で制御可能)節電間隔を追加します。

必要なメモリ量がいっぱいになるまで、上記のプログラムの複数のインスタンスを実行します。

答え4

これがSolarisでも動作するかどうかはわかりません。しかし、Posix互換システムで動作するように設計されているので、試してみることができます。圧力さまざまなストレスを実行できる非常に「簡単な」ストレステストジェネレータです。メモリ空間を作成することがその一部です。

これまで、いくつかのLinuxディストリビューション(CentOS、SLES)で問題なくコンパイル/テストしてきました。

関連情報