Windows負荷テストツールまとめ

# はじめに
今回WindowsでCPUやメモリの負荷テストに便利なツールをご紹介したいと思います。

# 1. CPUの負荷テストに使えるツール
## 1-1. ツールのダウンロード
CPUに負荷をかけてテストしたいときは、**「CPUSTRES」**というツールがおすすめです。

以下のサイトからzipファイルをダウンロードし、解凍するだけで使えます。

[CPUSTRES.zip](http://download.sysinternals.com/files/CPUSTRES.zip) 

## 1-2. ツールの使用方法
解凍したフォルダに存在する**「CPUSTRES.EXE」**を実行するだけで他に特に設定は必要ありません。

EXEを実行すると、以下のようなWindowが起ち上がります。

![スクリーンショット 2018-11-16 1.27.40.png](https://qiita-image-store.s3.amazonaws.com/0/298750/d936553b-efe3-ee38-169a-ec9b8b8950f7.png)

CPUSTRES.EXE は最大 4 スレッドの負荷をかけることができます。
そのため、合計4コア以下のサーバーであれば、CPUSTRES.EXEを1つ起動することで、サーバー全体のCPU使用率を100%にすることができます。5コア以上のサーバーでも、CPUSTRES.EXEを複数起動すれば、サーバー全体のCPU使用率を100%にできます。

また、Actvityで1コアの使用率を調整することができます。

|Activity|1コアの使用率|
|:--|:--|
|Low|16〜20%|
|Medium|26〜28%|
|Busy|56〜60%|
|Maximum|100%|

終了するときはWindowを閉じればOKです。

# 2. メモリの負荷テストに使えるツール
## 2-1. ツールのダウンロード
メモリに負荷をかけてテストしたいときは、**「TestLimit」**というツールがおすすめです。

以下のサイトからzipファイルをダウンロードします。

[TestLimit.zip](http://download.sysinternals.com/files/TestLimit.zip)

ダウンロードしたTestLimit.zipを解凍すると、Testlimit.exeとtestlimit64.exeの2ファイルがあります。Testlimit.exeが32ビット版、testlimit64.exeが64ビット版となっています。

## 2-2. ツールの使用方法
このツールはコマンドプロンプトからのCUIでの起動となります。

使い方を確認するには、引数無しで実行すると使い方が表示されます。
以下の例は64ビット版での実行例ですが、表示内容は同じです。

```bash:コマンドプロンプト
C:\TestLimit> Testlimit64.exe    ・・・ (1)

Testlimit v5.22 - test Windows limits
Copyright (C) 2012 Mark Russinovich
Sysinternals - www.sysinternals.com

Process ID: 3436

usage: testlimit [[-h [-u]] | [-p [-n]] | [-t [-n [KB]]] | [-u [-i]] | [-g [object size]] | [-a|-d|-l|-m|-r|-s|-v [MB]]
| [-w]] [-c [count]] [-e [seconds]]
  -a       Leak Address Windowing Extensions (AWE) memory in
           specified MBs (default is 1).
  -c       Count of number of objects to allocate (default is as many as
           possible). This must be the last option specified.
  -d       Leak and touch memory in specified MBs (default is 1).
  -e       Seconds elapsed between allocations (default is 0).
  -g       Create GDI handles of specified size (default 1 byte).
           Specify< a size of 0 to cause GDI object exhaustion.
  -h       Create handles. Specify -u to also allocate file objects.
  -i       Exhaust USER desktop heap.
  -l       Allocate the specified amount of large pages (rounded to large
           size multiple.
  -m       Leak memory in specified MBs (default is 1).
  -p       Create processes - add -n to set min working set. Add -n to
           set min working set of processes to smallest.
  -r       Reserve memory in specified MBs (default is 1).
  -s       Leak shared memory in specified MBs (default is 1).
  -t       Create threads - add -n to specify minimum stack reserve (in KB).
  -u       Create USER handles to menus.
  -v       VirtualLock memory in specified MBs (default is 1).
  -w       Reset working set minimum to highest possible value.
```

いろいろオプションはありますが、メモリの負荷をMB単位で増やすことができる以下のコマンドだけ使えれば十分です。
以下の例ではメモリ使用容量を5000MB増やしております。

```コマンドプロンプト
C:\TestLimit> Testlimit64.exe -d -c 5000 

Testlimit v5.22 - test Windows limits
Copyright (C) 2012 Mark Russinovich
Sysinternals - www.sysinternals.com

Process ID: ５９３１

Leaking private bytes with touch (MB)...
Leaked 5000 MB of private memory (5000 MB total leaked). Lasterror: 0
この操作を正しく終了しました。
```

終了するときは、ctrl + c で終了します。

# さいごに
2020年から個人ブログはじめました！

フリーランスエンジニアになって得た知識と経験をもとに、フリーランスエンジニアに関する情報をはじめ、IT技術情報や業界情報、エンジニアライフハック等のコンテンツを配信していく予定です。

まだまだ記事数は少ないのですが、週単位で更新してますので、もしご興味ございましたら、みていただけると嬉しいです。

https://yacchi-engineer.com/