エラー: バッファー サイズが大きすぎます。最大サイズは 32MBと言ってwinstat memが失敗する.
更新履歴
- 初版 2016/06/08
- 更新日 2017/12/04
はじめに
- セキュリティで保護された,つまり勝手にソフトウェアをインストールできなVMware上で動作しているWindows 7 Professionalが稼働しているマシンで,ベンチマークをとるために内蔵のwinsatコマンドを使って性能を計測してみた.
- その時,「*エラー: バッファー サイズが大きすぎます。最大サイズは 32MB」と出たので,成功するまで調べてみた.
winstat.exeコマンドを使ってメモリテスト
- winstat.exeコマンドを使って,主記憶メモリのパフォーマンス調査を行う.
C:\Users\ujpadmin>winsat mem
Windows システム評価ツール
> 実行中: 機能の列挙 ''
> 実行時間 00:00:00.00
> 実行中: システム メモリ パフォーマンスの評価結果 ''
エラー: バッファー サイズが大きすぎます。最大サイズは 32MB
> 合計実行時時間 00:00:02.36
C:\Users\ujpadmin>
- エラーが出たので
winsat.exeを冗長モードで実行する
- 詳細情報がわかるように-vをつけて冗長モードで実行してみる.
C:\Users\ujpadmin>winsat mem -v
Windows システム評価ツール
> Command Line 'winsat mem -v'
> DWM not running
> システム プロセッサ電源ポリシーが保存されて「最大パフォーマンス」に設定されました
> 実行中: 機能の列挙 ''
> Gathering System Information
> Operating System : 6.1 Build-7601
> Processor : Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz
> TSC Frequency : 2559200000
> Number of Processors : 1
> Number of Cores : 2
> Number of CPUs : 2
> Number of Cores per Processor : 2
> Number of CPUs Per Core : 1
> Cores have logical CPUs : NO
> L1 Cache and line Size : 32768 64
> L2 Cache and line Size : 262144 64
> Total physical mem available to the OS : 2.99 GB (3,220,758,528 bytes)
> Adapter Description : VMware SVGA 3D
> Adapter Manufacturer : VMware, Inc.
> Adapter Driver Version : 8.15.1.32
> Adapter Driver Date (yy/mm/dd) : 2015\7\15
> Has DX9 or better : No
> Has Pixel shader 2.0 or better : No
> Has LDDM Driver : No
> Dedicated (local) video memory : 78MB
> System memory dedicated as video memory : 0MB
> System memory shared as video memory : 188MB
> Primary Monitor Size : 1442 X 975 (1405950 total pixels)
> WinSAT is Official : Yes
> 実行時間 00:00:00.00
> 実行中: システム メモリ パフォーマンスの評価結果 ''
エラー: バッファー サイズが大きすぎます。最大サイズは 32MB
> 合計実行時時間 00:00:02.29
> システム プロセッサ電源ポリシーが復元されました
C:\Users\ujpadmin>
- この表から,L1キャッシュは32768Byteなので32KByte.L2キャッシュ262,144Byteは256KB.L3キャッシュは掲載されてない.
- メモリテスト時のバッファー サイズは,デフォルトは16MByteなのだそうだ.
winsat.exeのHotfixを入手する
- メモリテスト時のバッファーサイズについてのエラーを探すと,次のナレッジベースにたどり着く.
WinSAT の Windows 7 のテストが失敗します。
https://support.microsoft.com/ja-jp/kb/2619497
- それでhotfixはメールでくるとあるが,5分でダウンロードURLを伝えるメールが来ると言っているが,今はもう来ないようである.
L3バッファサイズを調べる
- インテルの公式サイトだと,Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHzはCacheが25MBとなっている.
Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz
http://ark.intel.com/products/81706/Intel-Xeon-Processor-E5-2660-v3-25M-Cache-2_60-GHz
- CPUスペック表を見ると,L3キャッシュが25Mbyte搭載されている.
Intel Xeon E5-2660 v3 specifications
http://www.cpu-world.com/CPUs/Xeon/Intel-Xeon%20E5-2660%20v3.html
L3バッファサイズを制限してテストする
- CPUスペック表には25Mbyteとかいてあるので,まずは25MBを指定して実行する.
C:\Users\ujpadmin>winsat mem -buffersize 25mb
Windows システム評価ツール
> 実行中: 機能の列挙 ''
> 実行時間 00:00:00.00
> 実行中: システム メモリ パフォーマンスの評価結果 '-buffersize 25mb'
> 実行時間 00:00:05.35
> メモリのパフォーマンス 19890.74 MB/s
> 合計実行時時間 00:00:07.63
C:\Users\ujpadmin>
- 成功した.
- 次に「最大は32MB」だとエラーがでていたので,32MBを指定してみる.
C:\Users\ujpadmin>winsat mem -buffersize 32mb
Windows システム評価ツール
> 実行中: 機能の列挙 ''
> 実行時間 00:00:00.00
> 実行中: システム メモリ パフォーマンスの評価結果 '-buffersize 32mb'
> 実行時間 00:00:05.29
> メモリのパフォーマンス 20129.10 MB/s
> 合計実行時時間 00:00:08.08
- これも成功した.最後に33MBと大きな数字を設定してみる.
C:\Users\ujpadmin>winsat mem -buffersize 33mb
Windows システム評価ツール
> 実行中: 機能の列挙 ''
> 実行時間 00:00:00.00
> 実行中: システム メモリ パフォーマンスの評価結果 '-buffersize 33mb'
エラー: バッファー サイズが大きすぎます。最大サイズは 32MB
> 合計実行時時間 00:00:02.23
C:\Users\ujpadmin>
- エラーになった.デフォルトの16MBだとエラーになってそれより多い32MBだとエラーにならない.OSが発売された以降に出荷されたCPUアーキテクチャだと対応してないのかもしれない.Hotfixも今では入手できないので,それを適用する事も試せないのは残念.

