0

2つの引数を取るように、サーバー上のワークロードをシミュレートするプログラム(perl、python、またはjava)を作成する必要があります。

  1. メモリー

  2. 時間

そして、これらの引数に基づいて、指定された時間、指定された量のメモリを消費するプロセスを開始する必要があります。メモリの最大値は最大50〜100 GB、時間は最大12〜24時間です。

フォークまたはマルチスレッドを使用できません。このプロセスはシングルスレッドであり、操作(整数/浮動小数点など)を継続的に実行する必要があります。I/O操作もしたくありません。

私が考えることができる最も簡単な方法は次のとおりです。

 1. while(timeSpent < timeLimit || memoryConsumed < memorySpecified){
 2.           if(memoryConsumed < ){
 3.                Add random number to ArrayList 
 4.           }else{
 5.                Multiply all numbers (Do some exception handling to prevent this from overflowing) 
 6.           }
 7. }

これを行うためのより良い方法があるかどうか私に知らせてください。

ありがとう、

アミット

4

3 に答える 3

1

このPythonコードのようなものはあなたのニーズに合いませんか?

import argparse
import datetime

def main():
    parser = argparse.ArgumentParser(description = "Consume memory and time.")
    parser.add_argument('memory', metavar = 'M', type=int, help = "memory (in megabytes) to consume")
    parser.add_argument('time', metavar = 'H', type=int, help = "time (in hours) to consume")
    args = parser.parse_args()

    data = bytearray(args.memory * 1000000)
    now = datetime.datetime.today()
    finish = now + datetime.timedelta(hours = args.time)
    while now < finish:
        for i in xrange(args.memory * 1000000):
             data[i] = now.second
        now = datetime.datetime.today()


if __name__ == '__main__':
    main()
于 2011-12-07T05:42:54.847 に答える
1

ユーティリティストレスweather.ou.edu/~apw/projects/stressを使用しています...必要な機能を拡張するために少し調整しました。

助けてくれてありがとう。

于 2012-01-04T01:48:41.147 に答える
0

あなたの例は、少なくとも最初のステップでは妥当なようです。ただし、正しく理解するための詳細はたくさんあります。

  • I / Oを実行したくないとおっしゃっていますが、それは問題ありませんが、最新のマシンで50〜100 GBを割り当てる場合は、必要かどうかに関係なくI / Oを実行します(ページフォールトによる)。 、そのため、そこで仕様を再定義することをお勧めします。
  • また、「オブジェクト」の粒度を考慮に入れると、多くの科学計算アプリは「多くの小さなオブジェクト」パラダイムでは取得できません。多くの場合、「多くの小さなオブジェクト」と「少数の大きなオブジェクト」の間でバランスを取るためのパラメータが必要です。
  • また、コンテナ内のすべてのデータポイントを乗算または追加するなどして、OSによって簡単に予測できる一連のページフォールトを生成する可能性があります。したがって、現実の世界では非現実的であるため、トラバースする方法にランダム性を追加することをお勧めします。それ。

これは見た目よりも微妙な問題であり、多くの人は単純なものから始めたいと考えています。おそらく、SETIやレイトレーサーなどの標準的なテストから始めたいと考えています。

于 2011-12-07T05:46:04.897 に答える