あなたの知らない“Windows 10のメモリ管理”の世界:その知識、ホントに正しい? Windowsにまつわる都市伝説(97)(3/3 ページ)
今回は、Windowsのメモリ管理の仕組みについて徹底的に解説……なんて全く思っていません。Windows 10には「機能更新プログラム」(つまり新バージョン)で新機能が次々に追加されていくわけですが、“ナントカ3D”など見栄えのする機能だけではありません。目に見えない、Windowsのコア部分にも新機能が追加されたり、仕様変更が行われたりします。それは、時にはユーザーを驚かせることもあります。そして、隠されてしまうことも……。
Windows 10 バージョン1703でうちのsvchostが暴走? いえ、仕様でございます
Windows 10 バージョン1703(Creators Update)では、「svchost.exe」プロセス(Windowsサービスのホストプロセス)によるサービスのホストの仕様に大きな変更が加わりました。
svchost.exeプロセスは、Windowsサービスのダイナミックリンクライブラリ(DLL)をホストするサービスであり、「サービスグループ」という単位で1つのsvchost.exeプロセスが複数のサービスをホストすることがよくあります。
Windows 10 バージョン1703以降を利用中なら、でタスクマネージャーを開いてみてください。大部分のサービス(例外もあり)が、それぞれ1つのSvchost.exeプロセスでホストされているのを目にすることができるかもしれません(画面5)。そうではなく、従来と同じように1つのSvchost.exeプロセスで複数のサービスがホストされているかもしれません(画面6)。あなたのPCはどちらでしょうか。
1つのSvchost.exeプロセスで1つのサービスがホストされている状況では、大量のsvchost.exeプロセスが動作するため、異常事態のように見えるかもしれません。自分のPCが暴走している、あるいはマルウェアに感染しているのでは? と不安に感じることもあるかもしれません。でも安心してください。どちらも正常です。
これは、Windows 10 バージョン1703以降(サーババージョンは除く)の新しい仕様です。上記の画面5と画面6の違いは、PCに搭載されている物理メモリ容量の違いからくるものです。メモリがあるサイズ以下であれば従来通り、1つのsvchost.exeプロセスで複数のサービスをホストします。メモリがあるサイズより大きい場合、一部のサービスを除いて、1つのsvchost.exeプロセスが1つのサービスだけを専門的にホストします。その境になるのは3.5GBです。3.5GBより多いメモリを搭載している場合、新しい仕様が適用されます。
Windows 10 バージョン1703を実行する仮想マシンでメモリサイズを変えて比較してみました。メモリが3.5GB以下(3.5GBを含む)の場合、svchost.exeプロセスの数は「18」でした。同じ仮想マシンのメモリを3.5GBより大きくすると、svchost.exeプロセスの数は「69」にまで増えました(画面7)。この実験の様子は、筆者の個人ブログをご覧ください。
- SvcHost サービス分割とかいう新仕様(from Windows 10 ver 1703)(筆者の個人ブログ:山市良のえぬなんとかわーるど)
画面7 同じPC(仮想マシン)でメモリ容量を変えて比較してみたところ。メモリが3.5GB以下の場合、svchost.exeプロセスの数は「18」。メモリが3.5GBより多い場合、svchost.exeプロセスの数はなんと「69」に
この新しいホスト方法の仕様には、サービスごとにホストプロセスを分割することでサービス間を分離し、セキュリティや安定性を向上しようという目的があります。しかし、いくら十分にメモリがあったとしても、プロセスごとにメモリ割り当て(ワーキングセット)があるわけですから、svchost.exeプロセスの増殖はメモリ使用の増加に直結します。
メモリ圧縮は、その状況を改善する方法の1つです。Windows 10 バージョン1703以降はメモリ圧縮に加えて、svchost.exeプロセスが「ページ統合(Page Combining)」の対象になりました。ページ統合機能はWindows 8から搭載されたメモリの使用効率を向上する機能で、すごく簡単に言ってしまえば“メモリの重複排除機能”です。
メモリ圧縮、svchost.exeプロセス、ページ統合など、Windowsの内部的な動きは、エンドユーザーは知る必要のないことではありますが、タスクマネージャーなどエンドユーザーに見えてしまう部分もあり、それが謎やいらぬ誤解を生むこともあります。これまでのWindowsの仕組みを知っている人にとっても、新しい仕様には戸惑うことがあるでしょう。最近は、新しい仕様を説明するドキュメントがかなり遅れて公開されることもあるので、なおさらです。
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。
関連記事
- 「Windows Server version 1709」のダウンロード配布が開始――Microsoft
Microsoftは、Windows Serverの「半期チャネル」による初のリリースとなる「Windows Server version 1709」のダウンロード配布を開始した。コンテナやマイクロサービス関連など、多くの新機能を提供する。 - 「Windows Server version 1709」では、Nano Serverコンテナイメージサイズが80%縮小
Microsoftの公式ブログで、2017年秋に投入予定の「Windows Server version 1709」で注目されるNano ServerおよびLinuxコンテナ機能が紹介された。 - 先行き不安なWindows Update――ボクが2017年10月の更新をスキップした(できた)理由
毎月第二火曜日の翌日(日本時間)は、恒例のWindows Updateの日です。最近は何か問題が起きるのではないか、更新に何時間もかかったり、その上失敗したりするのではないかと、恐怖さえ感じます。さて、2017年10月のWindows Updateは無事に済んだのでしょうか。 - Windows Server 2016の今後の“更新”が怖い
テスト環境として構築したWindows Server 2016の物理サーバと仮想マシン。その一部でWindows Updateやシャットダウンに異様に時間がかかるといった現象に遭遇しました。そんな中、Windows Serverの次期バージョンに関する新方針の発表もあって、いろいろな面で“更新”に対する不安が高まっています(筆者の個人的な感想)。
Copyright © ITmedia, Inc. All Rights Reserved.