特集、その他

CPUの脆弱性対策パッチでSSDのランダムアクセスが大幅減速?影響をチェックしてみた

Core i7-8700K環境で、SSDやRAMディスクの速度を比較 text by 坂本はじめ

 既報の通り、Intel製品をはじめとする広範なCPUの投機的実行機能に脆弱性が発見された。

 この脆弱性に対して、既にWindows UpdateやUEFIの更新による対策が講じられているが、これらの対策はPCパフォーマンスに影響を及ぼすとされており、I/O性能(ストレージ性能)は特に大きな影響を受けるようだ。

 そこで、今回は脆弱性対策の対象となっているIntel最新の第8世代CoreことCoffee Lake-Sを搭載したテスト環境においてストレージデバイスのベンチマークテストを実施し、脆弱性対策がディスクアクセス性能にどの程度影響するのか検証してみた。

 なお、脆弱性に関しての情報や対策は以下の関連記事を参照してもらいたい。

対策の前後でストレージの速度はどう変わるNVMe SSDやSATA SSD、HDD、RAM Diskなどでテスト

 今回のテストで利用するのは、Coffee Lake-Sの最上位モデルであるCore i7-8700Kをベースにしたテスト環境だ。

 マザーボードには1月4日付けでCPUマイクロコードの更新を含むUEFI(Ver 0606)が配布されている「ASUS PRIME Z370-A」を利用する。

Coffee Lake-Sベースの6コア12スレッドCPU「Core i7-8700K」
Intel Z370 チップセット搭載のマザーボード「ASUS PRIME Z370-A」

 検証用に用意したストレージデバイスは、NVMe対応M.2 SSD「Samsung MZ-V6E500B」、6Gbps SATA対応SSD「SanDisk SDSSDH3-1T00-J25」、3.5インチHDD「Seagate ST3000DM008」の3台。これに、Windows 10に対応するRAMディスク作成ソフト「RAMDA」で作成したRAMディスクを加えた4つのストレージをテストする。

NVMeに対応するSamsung 960 EVO SSDの500GBモデル「MZ-V6E500B」。フォームファクターはM.2で、インターフェイスはPCI Express 3.0 x4
6Gbps SATA対応のSanDisk Ultra 3D SSDの1TBモデル「SDSSDH3-1T00-J25」
Seagateの3.5インチHDD「ST3000DM008」。記憶容量は3TBで回転数は7,200rpm
RAMディスクはメインメモリの一部をストレージとして使用する。今回の環境では、DDR4-2666動作に設定した2枚の8GBメモリをデュアルチャネルで使用している。

 OSにはFall Creators Updateを適用済みのバージョン1709のWindows 10 Pro (64bit版)を使用する。

 Windows 10のバージョン1709向けには、投機的実行の脆弱性に対処する更新プログラム「KB4056892」がWindows Updateで配信されており、今回のテストではこの更新プログラムの有無と、マザーボードのUEFIアップデートの有無を組み合わせた4つの条件でテストを実施する。各条件の詳細は以下の通りだ。

  1. アップデート無し (UEFI、Windows Updateとも脆弱性対策なし)
  2. UEFI Update のみ (UEFIのみ脆弱性対策を適用)
  3. Windows Update のみ (Windows Updateのみ脆弱性対策を適用)
  4. UEFI + Windows Update (UEFI、Windows Updateとも脆弱性対策を適用)

 なお、脆弱性への対策を十分に実施するにはUEFIとWindowsの両方をアップデートする必要があるため、今後は「UEFI + Windows Update」で利用することになる。2と3の条件については、Windows Update単体での影響と対策版UEFIが配布されていない状況でのパフォーマンスへの影響を確認する参考データとしてご覧いただきたい。

 その他、テストに用いた機材は以下の通り。

使用機材一覧

もしかするとゲームへの影響は小さい?簡単にCPUと3D性能への影響をチェック

 ストレージ性能の変化を確認する前に、身近なCPUベンチマークと3Dベンチマークでアップデート前後のパフォーマンス変化をチェックしてみた。実行したベンチマークテストは「CINEBENCH R15」と「ファイナルファンタジーXIV: 紅蓮のリベレーター ベンチマーク」。

 CPUベンチマークテストとして実行したCINEBENCH R15の結果をまとめたものが以下のグラフだ。

 1スレッド性能を測定する「CPU(Single Core)」のスコアはほぼ横並びで、マルチスレッド性能を測定する「CPU」ではUEFIとWindows Updateで脆弱性対策を適用すると約1%低いスコアとなっている。これは測定誤差の範疇とみなせる程度の差でもある。

CINEBENCH R15の実行結果

 ファイナルファンタジーXIV: 紅蓮のリベレーター ベンチマークでは、描画品質を「最高品質」に設定し、画面解像度はフルHDと4kの2通りでテストを実行した。

 4kでのベンチマークスコアの差はほぼ横並びだが、フルHDでは多少の差がついているが、未対策時よりも脆弱性対策を適用した後の方が約2.9%高いスコアという予想外の結果となった。ただし、UEFIの更新のみを適用した際のスコアは未対策時より約5.5%高くなっており、これを基準とすると脆弱性対策後のスコアは3%弱低下している。UEFIの更新による改善が脆弱性対策による性能低下を上回った結果とみるのが妥当なところだろう。

ファイナルファンタジーXIV: 紅蓮のリベレーター ベンチマークの実行結果

 今回実施したベンチマークテストにおいて、脆弱性対策によるものと思われる性能低下は大きくても数%程度に留まっていた。これだけの結果をもって、CPUやゲームでのパフォーマンスに影響は軽微というのは早計だが、脆弱性対策を実施したからと言ってあらゆる用途で大幅な性能低下が生じるという訳ではないと言えるだろう。

脆弱性対策のディスクアクセス性能への影響をチェックワーストケースでは半分近くに性能が落ち込む例も

 それではディスクアクセス性能への影響を確認する。今回は、ストレージベンチマークテストである「CrystalDiskMark 6.0.0」を用いて各ストレージのパフォーマンスを測定し、アップデート前後で結果がどのように変化するのかを見ていく。

NVMe SSD「Samsung MZ-V6E500B」

 まずチェックしたのはNVMe対応SSDである「Samsung MZ-V6E500B」。グラフでは「アップデートなし」での測定結果を100%とした際の変化をまとめている。

 UEFIとWindows Updateで脆弱性対策を実施した場合、「4KiB Q32T1」での転送速度がリード・ライトともにほぼ半減している。また、「4KiB Q1T1」のライトも218.2MB/secから170.4MB/secへ8割弱の速度に低下しており、脆弱性対策による顕著な性能低下がみてとれる。

 一方で、シーケンシャルアクセスや複数スレッドでディスクにアクセスする「4KiB Q8T8」については、アップデート前後で性能の変化はほとんどみられない。

Samsung MZ-V6E500Bのベンチマーク結果。左上:アップデートなし、右上:UEFI Update のみ、左下:Windows Updateのみ、右下:UEFI + Windows Update。
Samsung MZ-V6E500Bのアップデート前後の性能変化

SATA SSD「SanDisk SDSSDH3-1T00-J25」

 続いて、6Gbps SATA対応SSDである「SanDisk SDSSDH3-1T00-J25」の結果だ。

 脆弱性対策の影響がみられるのは「4KiB Q32T1」のリード・ライト性能と「4KiB Q1T1」のライト性能で、いずれも脆弱性対策を適用することで8割程度まで性能が低下している。より高速なNVMe SSDに比べれば影響は軽微ではあるが、脆弱性対策の影響は6Gbps SATA対応SSDのベンチマーク結果にも明らかな影響を及ぼすものであるとも言える結果だ。

SanDisk SDSSDH3-1T00-J25のベンチマーク結果。左上:アップデートなし、右上:UEFI Update のみ、左下:Windows Updateのみ、右下:UEFI + Windows Update。
SanDisk SDSSDH3-1T00-J25のアップデート前後の性能変化

SATA HDD「Seagate ST3000DM008」

 Seagate ST3000DM008では、リード性能についてはシーケンシャルも4KiBランダムも特に変化はみられない。ライト性能では4KiBランダムアクセスのスコアがばらついているが、もともとの転送速度が低速であるため誤差が大きくなっているだけで、「脆弱性による性能低下」はとくに確認できない。

 このことから、ディスク側の性能がボトルネックとなるようなストレージであれば、ベンチマークテストにおいて脆弱性による性能低下が顕在化しないことが分かる。

Seagate ST3000DM008のベンチマーク結果。左上:アップデートなし、右上:UEFI Update のみ、左下:Windows Updateのみ、右下:UEFI + Windows Update。
Seagate ST3000DM008のアップデート前後の性能変化

RAMディスク「RAMDA」

 メインメモリをストレージとして利用するRAMディスクでは、脆弱性対策の適用によってシーケンシャルアクセスを含めたすべてのテスト項目で5~7割程度まで速度が低下した。

 もともとCPU性能がアクセス速度のボトルネックとなっているRAMディスクでは、今回の脆弱性対策による影響が特に顕著なようだ。

 今回テストしたNVMe SSDをはじめとする通常のストレージデバイスでは、脆弱性対策による性能低下は一部のランダムアクセス性能に限定されていたが、より高速な転送速度を実現するストレージでは、シーケンシャルアクセスに影響が生じる可能性もあるだろう。

RAMディスクのベンチマーク結果。左上:アップデートなし、右上:UEFI Update のみ、左下:Windows Updateのみ、右下:UEFI + Windows Update。
RAMディスクのアップデート前後の性能変化

脆弱性対策の前後でストレージ系ベンチマークのスコアは比較不能に

 投機的実行機能の脆弱性対策によるディスクアクセス性能への影響については、6Gbps SATA接続のSSDでもベンチマークスコアの低下が確認できるほど大きなものだ。高性能化が著しいNVMe対応SSDにとって大きなボトルネックとなることは避けられないだろう。

 一般的なPC用途でベンチマークテストと同等のランダムアクセスが生じる機会の少なさを考えれば、ベンチマークスコアの大きな低下が体感できるほどの性能劣化に繋がるのとは限らないが、新製品と旧製品のベンチマークスコアを比較検討する際には注意が必要だ。

 脆弱性対策はパフォーマンスと天秤に掛けてよいものではないので、今後公開される新製品レビューなどにおいては脆弱性対策の影響を受けたベンチマークテスト結果が掲載されることになる。その結果、過去のレビュー記事を見比べると新製品より旧製品の方が優れたランダムアクセス性能を持っているように見える結果があるかもしれないが、ストレージ系ベンチマークテストについては、2018年1月を境にスコアの一貫性が損なわれていることを覚えておいて頂きたい。