キャッシュとメモリマネージャーの機能強化Cache and Memory Manager Improvements

このトピックでは、Windows Server 2012 および2016でのキャッシュマネージャーとメモリマネージャーの機能強化について説明します。This topic describes Cache Manager and Memory Manager improvements in Windows Server 2012 and 2016.

Windows Server 2016 でのキャッシュマネージャーの機能強化Cache Manager improvements in Windows Server 2016

キャッシュマネージャーでは、真の非同期キャッシュ読み取りのサポートも追加されました。Cache Manager also added support for true Asynchronous Cached Reads. これにより、非同期のキャッシュされた読み取りに大きく依存しているアプリケーションのパフォーマンスが向上する可能性があります。This could potentially improve the performance of an application if it relies heavily on asynchronous cached reads. ほとんどのインボックスのファイルシステムでは、非同期キャッシュの読み取りがサポートされていますが、多くの場合、スレッドプールとファイルシステムの内部作業キューの処理に関連するさまざまな設計の選択により、パフォーマンスが制限されていました。While most in-box filesystems have supported async-cached reads for a while, there were often performance limitations due to various design choices related to handling of thread-pools and filesystems' internal work queues. カーネルが適切にサポートされるようになったため、Cache Manager では、ファイルシステムからのスレッドプールとワークキュー管理の複雑さがすべて非表示になり、非同期的にキャッシュされた読み取りを処理しやすくなりました。キャッシュマネージャーには、並列処理を最大化するために (システムでサポートされる最大値) の VHD 入れ子レベルに対して、1つのコントロール datastructures があります。With support from kernel-proper, Cache Manager now hides all the thread-pool and work queue management complexities from filesystems making it more efficient at handling asynchronous cached reads.Cache Manager has one set of control datastructures for each of (system supported maximum) VHD-nesting levels to maximize parallelism.

Windows Server 2012 でのキャッシュマネージャーの機能強化Cache Manager improvements in Windows Server 2012

シーケンシャルなワークロードの先読みロジックに対するキャッシュマネージャーの機能強化に加えて、新しい API CcSetReadAheadGranularityEx が追加されました。 SMB などのファイルシステムドライバーは、先読みパラメーターを変更できます。In addition to Cache Manager enhancements to read ahead logic for sequential workloads, a new API CcSetReadAheadGranularityEx was added to let file system drivers, such as SMB, change their read ahead parameters. これにより、1つの大規模な先行読み取り要求を送信する代わりに、複数の小さなサイズの先行読み取り要求を送信することで、リモートファイルのシナリオのスループットを向上させることができます。It allows better throughput for remote file scenarios by sending multiple small-sized read ahead requests instead of sending a single large read ahead request. ファイルシステムドライバーなどのカーネルコンポーネントのみが、ファイルごとにこれらの値をプログラムで構成できます。Only kernel components, such as file system drivers, can programmatically configure these values on a per-file basis.

Windows Server 2012 でのメモリマネージャーの機能強化Memory Manager improvements in Windows Server 2012

ページの組み合わせを有効にすると、同じ内容のページがプライベートでページが多数存在するサーバーのメモリ使用量を減らすことができます。Enabling page combining may reduce memory usage on servers which have a lot of private, pageable pages with identical contents. たとえば、同じメモリを集中的に使用するアプリの複数のインスタンスを実行しているサーバーや、非常に反復的なデータを扱う1つのアプリの場合は、ページを結合することをお勧めします。For example, servers running multiple instances of the same memory-intensive app, or a single app that works with highly repetitive data, might be good candidates to try page combining. ページの結合を有効にすることの欠点は、CPU の使用率が高くなることです。The downside of enabling page combining is increased CPU usage.

次に、ページの結合によって多くのメリットが得られないサーバーの役割の例をいくつか示します。Here are some examples of server roles where page combining is unlikely to give much benefit:

  • ファイルサーバー (ほとんどのメモリは、プライベートではなく、そのために組み合わせ可能ではないファイルページによって消費されます)File servers (most of the memory is consumed by file pages which are not private and therefore not combinable)

  • AWE または大規模なページを使用するように構成されている Microsoft SQL Server (ほとんどのメモリはプライベートであり、ページング不可能)Microsoft SQL Servers that are configured to use AWE or large pages (most of the memory is private but non-pageable)

ページの結合は既定で無効になっていますが、 Enable-MMAgent Windows PowerShell コマンドレットを使用して有効にすることができます。Page combining is disabled by default but can be enabled by using the Enable-MMAgent Windows PowerShell cmdlet. ページの結合が Windows Server 2012 で追加されました。Page combining was added in Windows Server 2012.