Zramでシステムをテストしていますが、できるだけ多くのRAMを使用するスクリプトが必要です。このスクリプトは、ゼロだけでなくランダムなものでRAMをいっぱいにする必要があります。
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値を調整します。
Sudo apt-get install stress
でリポジトリからインストール可能なプログラム stress を使用することをお勧めします。
RAMをテストするには、stress -m x
を使用します。xは、RAMを満杯にするワーカーの数です。より多くのRAMを使用するには、より多くのワーカーを選択します。
ただ走れ :
echo {1..1000000000}
説明 :
シェルは、カーネルにコマンドを与える前に、すべての正規表現と速記を展開します。展開されたコマンドは一時的にRAMに保存されます。上記のコマンドは非常に大きなコマンドに展開されるため、RAM(8GBでテスト済み)を完全に満たします。
警告:これはRAMを制御する方法ではありません。このコマンドの実行後にスタックする可能性があります。 system monitor
を開いたままにして(RAMの使用状況を見るために)、小さい数字で試してみることをお勧めします。
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