TS-873でVirtualization Stationの各キャッシュモードを確認した記録
最初に
QNAP TS-873-4G
メモリを64GB化済
Amazon | QNAP(キューナップ) TS-873 クアッドコア2.1 GHz CPU 4GBメモリ 8ベイ DTCP-IP/DLNA対応
https://amzn.to/34uq7oC
この記事ではVirtualization StationのVM設定で
ストレージ -> キャッシュモードの選択肢である
「None」「Writeback」「Writethrough」「Force Writeback」
4種類のモードを実際に試してみました
各キャッシュモードについて
QNAPサイト上での説明
[ライトバック] はNASページキャッシュを使用しています。NASキャッシュの容量がいっぱいになると、ディスクにすべてのキャッシュデータがライトバックされます。[ライトスルー] と比べると、[ライトバック] は転送速度に優れています。ただし、[ライトスルー] のほうが安全です。書き込みキャッシュを使用してディスクに直接データを書き込み、予想外のイベントが発生した場合にデータの損失を回避します。[なし] を選択すると、NASキャッシュが回避され、転送率の性能は [ライトバック] と [ライトスルー] の中間になります。
この解説が作られたときは「Force Writeback」が登場する前だったので触れられてませんが
速度は「Writeback」>「None」>「Writethrough」
安全性は「Writethrough」>「None」≒「Writeback」という感じです
「Writeback」と「Writethrough」についてはRAIDカードでもよく使うので
RAIDカード方面で調べると資料がいろいろあると思います
「Writeback」はメモリ上でしか書き込みデータがない状態で電源が落ちると
VMイメージファイルの破損に繋がる恐れがあるのでUPS環境推奨になります
実際にVMで検証
HDD(ST1000DM010)2台でRAID1構成
ストレージプール作成し非暗号化シックボリューム内に配置
HDDインターフェイスはVirtIO
アイドル状態におけるCPU使用率について
画像内でアイドル状態におけるCPU使用率が10%前後になっている現象について
先に触れておきます
WindowsVMを起動 -> CDM起動 -> 放置して処理が落ち着くのを待つ ->
落ち着いたらCDM計測開始 -> シャットダウン
という流れで検証を行いました
その中でCDMを起動すると計測してなくても起動しているだけで
何故かNAS側のCPU使用率が上がり
CDMを終了するとNAS側のCPU使用率も落ち着くといった現象が発生
VMのWindows上ではタスクマネージャーでもCPU使用率は上がっておらず理由は不明
前記事ではCDM起動してすぐ計測していたので気付いていませんでした
None
CrystalDiskMark v7.0.0fの結果(前記事と同じ画像です)
CPU使用率とメモリ使用率
まとめ
計測中でもメモリ使用率・キャッシュ容量に変動がないので
NAS側としてはキャッシュなどメモリを使用せず
直で読み書きしているのがわかります
使用しているHDD・SSDやRAID構成に速度が素直に左右されるせいか
NASローカル計測記事のように計測毎で結果が結構バラつきがある点に注意が必要
(シーケンシャルで50MB/s程度の誤差あり)
VM割り当てメモリ容量以外はメモリを消費しないので
搭載メモリが少ないNASでもSMBサービスなどに影響しにくく
VMシャットダウン後も綺麗にリソースが戻るので
Noneで満足な速度が出る環境であればこれがベストと思います
Writeback
CPU使用率とメモリ使用率
最初の2画像が直前の別VM分も映っていて紛らわしくてすいません
CDM計測後
計測開始ポイントは左のシステムグラフが上がっているところ
メモリ使用率もキャッシュグラフが上がっています
まとめ
Noneと違ってVM起動前からCDM計測直前までの間(OS起動の読み書き)だけで
キャッシュ値が400MBから2.6GBまで増加します
CDM計測設定が1GB計測なのでCDM計測後に更に1GBのキャッシュ増加も確認できます
もちろんキャッシュ枠なのでVMシャットダウン後もすぐには解放はされません
VM割り当て分+キャッシュ領域が必要でメモリ消費量は多く
キャッシュ領域が不足していれば逆効果になる場合もありますが
メモリをフル活用する分、データがヒットすればかなりスピードは向上します
当然ながら仕組み上、メモリにないデータには効果はありません
CDM計測中でも実際のIOまでにラグがあるので結果的にIO待機のピーク値が低く済んでいて
NAS側のメモリ量に余裕があって遅いHDDをブーストしたい時には選択肢になるでしょう
ただ停電時などにデータ損失・VM丸ごと破損のリスクが高いので
UPSやバックアップしながらの運用が必要になります
Writethrough
CPU使用率とメモリ使用率
まとめ
書き込みをすぐ確実に処理する仕組み上、書き込み速度はかなり遅いですが
Noneと違ってキャッシュ領域は使用するので書き込んだデータもキャッシュに残ります
なのでCDMのようにテストデータを作ってすぐ利用するような用途ではかなり有効です
CDM計測後の画像を見てもIO待機を見ればCDMの動きがよくわかり
最初のIO待機が読み込みテスト用のテストデータ生成
後ろの4つ連続するIO待機が各書き込み計測中になります
NAS側のメモリ量に余裕があって読み込みデータが多いWEBサーバなどのVM向け
Force Writeback
キャッシュモードを変更しようとするとForce Writebackのみ警告が表示されます
CPU使用率とメモリ使用率
まとめ
Force Writebackは2019年1月に追加されたばかりの機能ということもあり
資料がなく安定性やリスクについての情報が見当たらず判断が難しいですが
パフォーマンス最優先というだけあってWritebackより高速なので
せっかくリスクを許容するならWritebackよりこっちでもいい気がします
最後に
CrystalDiskMarkではかなり高速化してますが
全てのデータが高速化するわけではなく
これらはあくまでキャッシュデータだけが高速化する話ですので
それ以外のデータは全てストレージプールの構成内容によって上限速度が決まります
速度を求めるVMであれば根本をSSD化することをまず考えましょう
QNAP機の場合はSMBはもちろんのこと、いろんなアプリでメモリを使うでしょうから
キャッシュ領域が不足すると他のアプリに影響するのでその点もお忘れなく
キャッシュ領域はNAS再起動はもちろんQboostでいつでも解放できます
VM用途によって効果は全然違いますしこの設定はすぐに変更できますので
まずはお試しあれ
コメント