コンピューティング応用

あるチームがAzure Virtual Machineでデータベースをホストしており、キャッシュレイヤーを追加してアプリケーションのパフォーマンスを向上させようと計画しています。キャッシュサービスとしてAzure Cache for Redisを導入した場合、VMのメモリ使用量が高い場合、何が起こる可能性がありますか。

A.VMのメモリ使用量は自動的に外部ストレージにオフロードされ、パフォーマンス低下は発生しない
✗ Azure Cache for Redisはキャッシュレイヤーですが、VM上のアプリケーション・データベース自体のメモリ不足は自動的には解決されません。
B.キャッシュとVM間で同期の競合が発生し、データ整合性エラーが生じる可能性がある
✗ キャッシュとデータベース間に同期競合が生じるリスクは存在しますが、これはキャッシュ導入時の設計問題であり、メモリ使用量の高さとは直接の因果関係ではありません。
C.VMのメモリ不足によるOSレベルのページング動作が増加し、ディスクI/O遅延が増加してパフォーマンスが低下する可能性がある← 正解
✓ 正解です。VMのメモリ不足が続くと、OSはページングによりメモリをディスクにオフロードするため、ディスク読み書きが増加してアプリケーション全体のレスポンス時間が低下します。キャッシュの導入だけでは解決しません。
D.Azure Cache for Redisは自動的にVMのメモリを肩代わりし、メモリ不足の問題は完全に解決される
✗ Azure Cache for Redisはキャッシュレイヤーを提供しますが、VMやデータベース自体のメモリ不足を代替することはできません。適切なサイズのVMを選択することが根本的な解決策です。

この問題のポイント

VMのメモリ不足が続くと、OSはページングによりメモリをディスクにオフロードするため、ディスク読み書きが増加してアプリケーション全体のレスポンス時間が低下します。キャッシュの導入だけでは解決しません。

AZ-900:Microsoft Azure Fundamentals の問題一覧