Testlimit(メモリへの負荷)

 testlimitの使用例について記載します。
 メモリ負荷をかけた状態でOS、ミドルウェア、開発アプリの動作を見るために使用することが多いと思います。

 はじめにサーバのメモリについて、調べます。
 管理ツールからシステム情報を起動します。

メモリ関連の情報を確認

 物理メモリ8GB。合計仮想メモリ20GBなので、12GBのページファイル(ディスクメモリ)が利用できる設定になっています。
 仕様上、合計仮想メモリはメモリ+ディスクになります。

 テストの設計
 メモリ負荷の状況を考えます。
 メモリ使用率80%状況下での開発アプリケーションの処理時間とした場合、メモリ全体が80%の使用状況なのか、物理メモリが75%使用状況を作りたいのかで環境は異なります。

 負荷コマンド
 Testlimitはコマンドラインツールです。testlimit.exe(32bit OS)かtestlimit64.exe(64bit OS)を実行することで起動します。

32bitいる?と思いますが、Windows 8と10にあります

 コマンドで負荷をかける
20GBの80%なので、16GMをMBに変換して実施します。
testlomit64.exe -d -c 16384

 運良く1回でうまくいきました。testlimit実施前のメモリ使用量は無視したため偶然です。
実際には容量を変えて何回か繰り返したり、コマンドプロンプトをもう一つ起動して、多重プロセスでtestlimitを実施して調整するケースが多いので、サーバ台数が多いと時間がかかります。また、物理メモリからスワップメモリに書き込む待ち時間は、OSが操作を受け付けなくなり数分は緊張します。特にリモートデスクトップしか接続方法がないときは不安になります。本環境でおおよそ3分くらい固まっていました。
 ただこの方法は現実的な負荷環境を作成していると思います。

 次にスワップメモリを100%使用させてから、物理メモリを80%にする方法について記載します。

 スワップメモリは12GBなので以下のコマンドを実施します。
testlimit64.exe -m -c 12288

一瞬で完了します。

 次にメモリに負荷をかけます。
 8GBの80%は6.4GBになります。1.2GBを使用しているので、6.4-1.2で5.2GBの負荷をかけます。
testlimit64.exe -d -c 5324

2個目は-dです

 この方法では負荷環境作成が速く、OSがロックされる時間もありません。但し、先の方法と比較するとスワップメモリの差が1GB多く使用しています。それでも使えない負荷環境ではないと思います。

Testlimitですが、容量(MB)を指定しないと無限になるようなので、OSが落ちるかプログラムが落ちるか確認してみました。

Testlimitが落ちますので、安心して使用できると思います。

 同時にCPUも高負荷にしたケースが多いと思いますが、 Testlimitから先に実施してください。Testlimit実行時にCPUがそれなりに使用されますので、CPUSTRESやCPU負荷用のバッチファイルが実行されていると危険です。

関連記事

TOP