VMware KBの記事の1つで、スナップショットがVMのパフォーマンスに直接影響することを読みました。
しかし、私のチームは、スナップショットがパフォーマンスにどのように影響するかを尋ね続けています。
私は、スナップショットがパフォーマンスキラーであるという声明の背後にある確固たる理由を伝えたいと思います。
スナップショットが実際にパフォーマンスにどのように影響するかについて、誰でも少し理論を説明できますか?ハードディスクのディスクI / Oレートが遅いという理由だけですか?
VMware KBの記事の1つで、スナップショットがVMのパフォーマンスに直接影響することを読みました。
しかし、私のチームは、スナップショットがパフォーマンスにどのように影響するかを尋ね続けています。
私は、スナップショットがパフォーマンスキラーであるという声明の背後にある確固たる理由を伝えたいと思います。
スナップショットが実際にパフォーマンスにどのように影響するかについて、誰でも少し理論を説明できますか?ハードディスクのディスクI / Oレートが遅いという理由だけですか?
回答:
スナップショットを作成すると、元のディスクイメージは一貫した状態で「凍結」され、それ以降のすべての書き込みアクセスは新しい差分イメージになります。さらに悪いことに、こことここで説明したように、差分イメージは変更ログの形式を持ち、スナップショットが取られてからファイルに加えられたすべての変更を記録します。つまり、読み取りアクセスでは、1つのファイルだけでなく、すべての差分データ(元のデータと元のデータに加えられたすべての変更)も読み取る必要があります。スナップショットをカスケードすると、その数はさらに増加します。
VMでスナップショットを作成すると、Delta Diskが作成され、オペレーティングシステムは元のVMDKではなくこのファイルに書き込みます。このファイルはVM_Name-Delta.VMDKと呼ばれますが、システムがスナップショットの前にファイルを参照する必要がある場合、VM_Name.VMDKを参照し、この操作のI / Oを増やします。複数のスナップショットを作成する場合、元のVMDKではなく、最後のスナップショットの最後のデルタファイルを参照しているため、I / Oが増加します。
例。
OS --->スナップショット(ファイルA作成)--->(スナップショットファイルB作成)
ファイルAを参照する必要がある場合、3つのVMDKを調べてこれを見つけます。
また、スナップショットの作成時にVMのメモリ状態を含めると、これは再びデルタファイルになり、必要に応じて元のメモリファイルを参照します。
ファイルが作成され、スナップショットプロセスの時点で作成されたすべてのファイルがリストされます。
私が知る限り、VMWareはコピーオンライトロジックを使用してスナップショットを実装しています。したがって、作成すると、VMで実行されるすべての操作(たとえば、実行時のほとんどすべて)によって、すべてが本質的に複製されるまで、VMの一部がコピーされます。
これに関するもう1つのパフォーマンスの問題は、作業コピーにまだデータがない場合、元のコピーに読み取りをカスケードする必要があることです(コピーを引き起こすために何も変更されていないため)。
スナップショットをバックアップとして使用したいが、パフォーマンスのわずかな低下を許容できない場合は、代わりにVMのクローンを作成することを検討してください。
高い仮想マシンのスナップショット活動中に見られるコストップ(%CSTP)値:
仮想マシン上のスナップショットのサイズと数が増えると、vmkernel内のストレージコマンド操作の数も増えます。仮想マシンのゲストOSによって発行される各ストレージコマンドについて、スナップショットチェーン全体を走査して最も適切なデータブロックを読み取るために、複数のストレージコマンド操作が必要になる場合があります。