アスケイドではセキュリティの観点からディスクの暗号化を規定していて、幾つかのソフトを評価したりもした。その結果、推奨ソフトを複数選んで、利用者が選択できるようにしている。その中の一つが TrueCrypt なのだけど、使用感は上々で、普通に使っている感じでは特別遅くなったような気もしない。実際、その性能はどんなもんなのかと思って測ってみた。
計測に使ったのは、FDBENCH Version1.01。Googleを「ベンチマーク HDD」で検索したら 「HDBENCH NET」が最初にあって、それのディスク計測専用に独立した(ようにみえる)ツールがこれ。作者さんありがとう。
使用したハードウェアは、以下のとおり。
CPU: Pentium M 2.1GHz Mem: 2.0GB Disk: HTS721060G9AT00 MS WindowsXP Professional SP2
TrueCryptはパーティションではなくNTFS上のファイルコンテナ(10GB)を使用することとし、作成の前にはベースとなるディスクにデフラグをかけておきました。 それで実際に計測した結果がこれ。
| 標準DRIVE | TrueCrypt適用 | TrueCrypt/標準 | |
|---|---|---|---|
| ReadWrite (MB/s) | 21.426 | 20.6 | 96.1% |
| Read (MB/s) | 34.293 | 28.381 | 82.8% |
| Write (MB/s) | 25.806 | 29.207 | 113.2% |
| Random Read (MB/s) | 11.832 | 12.841 | 108.5% |
| Random Write (MB/s) | 13.774 | 11.971 | 86.9% |
| Copy total (MB/s) | 8.808 | 13.758 | 156.2% |
| Copy 2K (MB/s) | 0.148 | 1.118 | 755.4% |
| Copy 32K (MB/s) | 1.496 | 5.795 | 387.4% |
| Copy 256K (MB/s) | 10.072 | 21.085 | 209.3% |
| Copy variable (MB/s) | 23.516 | 27.035 | 115.0% |
| Copy total (回数/分) | 4107 | 19087 | 464.7% |
| Copy 2K (回数/分) | 6672 | 50322 | 754.2% |
| Copy 32K (回数/分) | 4188 | 16278 | 388.7% |
| Copy 256K (回数/分) | 3522 | 7392 | 209.9% |
| Copy variable (回数/分) | 2046 | 2358 | 115.2% |
いやあ~、ホント!?
ちょっとあまりにもな数字が出たので、ちょっと他のソフトでも試してみることにした。 選んだのはCrystalDiskMark Version 1.0.2。ありがとう作者さん。
| 標準DRIVE (MB/s) | TrueCrypt適用 (MB/s) | TrueCrypt/標準 | |
|---|---|---|---|
| Sequential Read | 34.624 | 28.807 | 83.2% |
| Sequential Write | 27.321 | 29.434 | 107.7% |
| Random Read 512KB | 20.24 | 15.591 | 77.0% |
| Random Write 512KB | 13.303 | 13.42 | 100.9% |
| Random Read 4KB | 0.915 | 0.989 | 108.1% |
| Random Write 4KB | 1.495 | 1.359 | 90.9% |
こっちの方がまだ予想に近い。 でも、明らかに通常よりも速い値が出ている項目も存在する。これらのベンチマークソフトの具体的な試験方法詳細がわからない(少なくとも私には見つけられなかった)ので、具体的なパターンを指摘することはできないものの、「利用状況によってはTrueCryptを使用したほうが速くなるケースがある」というのは確かなことのよう。
まったくもってすばらしいのだけど、ちょっと落とし穴があって、TrueCrypt無しの場合はCPU使用率が5%程度で一定なのだけど、有の場合は Sequential R/W で 75%, Random R/W(512KB) で 50%, Random R/W(4KB) で 7% 程度使用する。まさにI/Oによる処理データ量に応じてCPUが頑張っているということがわかる。まあ、これは予想の範囲。
CPU使用率については良いんだが、やはり「TrueCryptを使用したほうが速い事があるのはなぜか?」という疑問は残る。 普通に考えて、TrueCryptを適用した方が「余計な処理」をやっているはずだから遅くなるのが当然、と予想するのにもかかわらずそうでないケースが相当数ある。 まあ、とりあえず適当に書くと、
- 一定以上のサイズのファイルを Sequential read する際は2割近く遅くなる。きっとこれが本来のオーバーヘッドではないか
- Sequential write が速いのは、実はTrueCryptの仮想ディスクドライバは Syncしてないからでは?(ベンチマークソフトはSyncしてると思ってます)
- TrueCryptは上手くキャッシュを使っている?(逆に今回のベンチマークソフトではデータアクセスに偏りがあってキャッシュの効果が大きく出ている可能性がある?)
- 小さなサイズのデータ(ファイル?)を取り扱う場合に速いのは、TrueCryptの仮想ディスクが実はネイティブのFS上では1ファイルとなっているのがポイントで、ファイルのOPEN/CLOSEの負荷が低い?
などなど。
うーん、ベンチマークテストの詳細な処理内容がわからないし、やはりWindowsのディスク関連のアーキテクチャとTrueCryptの実装方式がちゃんとわかってないと駄目だわ。あと、プロファイルとか取ったりしたら面白そうだけど、そこまで時間無いし。気持ち悪いけどひよって、今回はここまでとします。
まあ、そんな訳で気持ち悪さは残るものの、(私の)通常の使用パターンだと、さほど大きくないファイルのRead/Writeが多いはずで、その範囲では性能劣化も無く(むしろ速い場合すらありえて)CPUもそれほど極端には使われずということになるので、体感的にも快適だったわけですな。やはりTrueCryptはお薦めです。