web-dev-qa-db-ja.com

システムをテストするには、できるだけ多くのRAMとスワップを使用するスクリプトが必要です

Zramでシステムをテストしていますが、できるだけ多くのRAMを使用するスクリプトが必要です。このスクリプトは、ゼロだけでなくランダムなものでRAMをいっぱいにする必要があります。

4
Raansu

memtesterは、メモリ(指定した量)を割り当て、ランダムパターンでテストするように設計されたユーザースペースプログラムです。ただし、スワップの使用は回避されます。しかし、最初にmemtesterですべてのメモリを削除し(free -mでチェック)、次に大量のメモリを使用するもの(gimp、firefoxなど)を開始すると、スワップが開始されます。 。

別の代替手段は、openssl Rand -base64 $((1024*1024*1024)) | lessのようなもので、あまり使用しないで>を使用して最後の行にジャンプします。これにより、1GBのbase64エンコードランダムデータがメモリにロードされます(ただし、速度は遅くなります)。

より効率的なものを探している場合は、スクリプト言語(Pythonなど)の小さなスクリプトで十分かもしれません。

#!/usr/bin/python2
import numpy
result = [numpy.random.bytes(1024*1024) for x in xrange(1024)]
print len(result)

これにより、ランダムなデータで1Gのメモリが割り当てられ、終了する前に割り当てられたMBの数が出力されます。 1024M以上必要な場合は、それに応じてxrange値を調整します。

5
frostschutz

Sudo apt-get install stressでリポジトリからインストール可能なプログラム stress を使用することをお勧めします。

RAMをテストするには、stress -m xを使用します。xは、RAMを満杯にするワーカーの数です。より多くのRAMを使用するには、より多くのワーカーを選択します。

4
prophecy201

ただ走れ :

echo {1..1000000000}

説明 :

シェルは、カーネルにコマンドを与える前に、すべての正規表現と速記を展開します。展開されたコマンドは一時的にRAMに保存されます。上記のコマンドは非常に大きなコマンドに展開されるため、RAM(8GBでテスト済み)を完全に満たします。

警告:これはRAMを制御する方法ではありません。このコマンドの実行後にスタックする可能性があります。 system monitorを開いたままにして(RAMの使用状況を見るために)、小さい数字で試してみることをお勧めします。

3
Severus Tux

prophecy201が示唆したようにストレス はシステムのメモリを使い切るのに最適なツールです。ワーカーを追加するとRAMが消費されますが、CPUが消費されるため、RAMをテストするだけの場合は非常に非効率的です。 CPUが圧縮のためにzramで必要になることは言うまでもありません。

代わりに、--vm-bytesフラグで使用されるRAMの量を増やす必要があります。たとえば、1つのワーカーで4 GBのRAMを使用するには:

stress -m 1 --vm-bytes 4G

--vm-keepフラグは、継続的に再割り当てする代わりにメモリ割り当てを保持するので、メモリ使用量が変動するのではなく一定になるため、役立つこともあります。

stress -m 1 --vm-bytes 4G --vm-keep

最後に、ここを見て、zramが本当に必要なものであることを確認してください。あなたはスワップを持っているので、zswapはより良い解決策かもしれません: zram vs zswap vs zcache Ultimate guide:which which use when which one

2
bmaupin