Windows10でディスクが100%になって異常に遅い anchor.png

Windows7からWindows10にアップグレードして1週間たった時ぐらいに,PCの電源をONしたら異常に速度が遅くなっていた。

私は会社のデスクトップPCをシャットダウンして帰宅します。出社しPCの電源をONすると,なかなかロック画面・ログイン画面が表示されません。
やっとログインできても,その後数十分動作がひじょうに重くて困ってしまう状況に。何度かPCを再起動したり,BIOS/UEFIの設定を確認したりもしたがなにも改善しない。

タスクマネージャーのパフォーマンスで確認すると,C:ドライブが常に100%状態になっている。

ハードディスクが何らかの故障が起きたのかなと思い,ハードディスクのS.M.A.R.T.情報を確認してもトラブルは発生していなかった。

Windows10のシャットダウンは,デフォルトで「高速スタートアップ」という機能が有効になっていて,昔のWindowsのシャットダウンとは違っている。
高速スタートアップのシャットダウンは,シャットダウン時に動作している状態のメモリにある一部のシステム情報をストレージのファイルに保存しておいて,次に電源ONした時にそのファイルをメモリーにロードすることによって出来るだけ初期化動作を省くことを行い,より早くシステム起動する機能。

Windows10はこのようなシャットダウンからスピーディに起動するからくりがあるにも関わらず,多くの追加されている機能(いろいろな情報をMicrosoftに送ったり・・・)があるためか,電源ON時にそれらの初期化や動作によりPCが遅くなってしまうということが発生しているようだ。
しばらくすると(20分ぐらい),ディスクアクセス100%の状態もなくなり普通に操作できるようになることからも,このようなことが遅くなっている理由と思われる。

そこで,Windows10でのこれらの原因を考え対策を行ってみた。

Page Top

Windows Updateの更新プログラムのチェックを手動で行う anchor.png

Windows Updateでトラブルが起きると,プログラムの更新->その後のプログラムの更新という状況があった時,どこかでアップデートが失敗すると,それのループになってしまう問題がある。Windows Updateはひじょうに負荷がかかる処理を行うので,これがループトラブルになるとPCが非常に重くなる。

これが発生した時の対処として,手動で「更新プログラムのチェック」を行って,正しくUpdateを完了することで問題が改善する場合がある。

これで解決出来ないでループトラブルになるなどの問題が発生している場合は, 「Windows Updateが失敗ばかりで更新できない」 や 「Windows Updateの自動更新を無効にする 」を参照して,問題を解決する必要がある。

また,ブート時に,Windows Updateの更新等があるかどうかをチェックする時にも,ディスクに大きな負荷がかかる。

実際に確認してみたが,Updateは全て正常に完了しており今回の原因ではなかった。

Page Top

SysMain(旧SuperFetch)サービスを無効にする anchor.png

SysMain(旧SuperFetch)サービスは,Windows Vista以降に搭載された機能で,PCの使用履歴を管理してユーザーが頻繁に使っているアプリケーションを特定した上で,そのアプリケーションがすぐに起動出来るように前もってメモリーにロードし準備しておく機能。

常に準備してくれているなんて朝起きたら朝食が出来ているという感じで,うまく動いてくれればありがたいのかもしれないが,この機能がとち狂ってしまうとハードディスク100%になってしまうようだ。つまりこのSysMainサービスにはバグがある可能性高い。
また,ストレージのHDDに不良セクタなんかがあると処理が以上に遅くなる。

対処としてはこのSysMainサービスを停止する。停止の仕方は,

  • Widows + X キーでコンピュータの管理をクリック
  • サービスとアプリケーション>サービスをクリック
  • SysMainをダブルクリック
  • 停止した後,無効にする
    のようにして,サービスを無効にする。

今回の私のPCでは,この対処でC:ドライブが常時100%になってしまう不具合がかなり解消された。

Page Top

ピアツーピアの接続を行うためのサービスの問題 anchor.png

Windows10でピアツーピアの接続での関連するサービスに問題があって,それがディスク100%を発生する原因になっている場合がある。

これが原因の場合は,関係するサービスを停止させることで改善する。

  • Windows + X キーでコンピュータの管理をクリック
  • サービスとアプリケーション>サービスをクリック
  • Peer Name Resolution Protocolをダブルクリック
    Peer Name Resolution Protocolのサービスが実行中だった場合は,一旦停止後無効にする。
  • Peer Networking Groupingをダブルクリック
    Peer Networking Groupingのサービスが実行中だった場合は,一旦停止後無効にする。
  • Peer Networking Identity Managerをダブルクリック
    Peer Networking Identity Managerのサービスが実行中だった場合は,一旦停止後無効にする。

今回は,これらのサービスは手動になっていて実行されていなかった。まあ必要ないので無効にしておく。

Page Top

Windows検索インデックスの不具合 anchor.png

Windows検索(Windows Search)は,PCの中のファイルを前もって作成した検索DBから検索する機能。
前もって事前に検索データのインデックスを作成する必要があるので,サービスでバックグラウンドで常に動作している。

対象のファイルの内容によってインデックスを作成する機能がエラーで止まってしまうことがあり(これも問題なのだが),この場合再度インデックスを作成するといったループの不具合が発生する場合があります。これが起きると,ディスク100%になってしまう場合がある。

特に対象になっているファイルがzipファイルやExcelファイルなどの場合にエラーになることが多いみたい。

これもバグなわけでMicrosoftがプログラムを直してくれれば良いのだが,いっこうに直してはくれない。しょうがないので,これらのエラーになりそうなファイルをインデックス作成対象から外すようにしたり,ファイルの場所を制限することにして,この問題も解決します。

実際のやり方は,Windows検索インデックスの再構築が終わらないを参照。

Page Top

OneDriveの自動起動を停止する anchor.png

Windows10は,デフォルト状態だとPCを起動しWindowsにログインするとOneDriveが自動で開始されるようになっている。
OneDriveは,Microsoftがサービスしているネットワーク上のストレージサービスです。このようなサービスは,Dropbox,Box,・・・他にも多くあります。

このOneDriveには,以前にWindows7の時にディスク100%になってしまう問題があった。原因は不明なのだが,なにかの拍子にこの問題が発生するとディスクが100%状態になってしまう。
この時は,OneDriveを一旦アンインストールして,再度インストールすることにより問題が解決した。

Windows10でこの問題が発生した場合は,一旦OneDriveを止めてみる。

  • タスクバーのシステムトレイ内のOneDriveアイコンを右クリックする
  • 「その他」をクリックして,表示されたメニューの中から「設定」をクリック
  • 設定タブ>全般の「WindowsにサインインしたときにOneDriveを自動的に開始する」のチェックを外す
  • OKを押す

これで,次回ログイン以降,自動で開始されないように設定できた。

すでに起動しているOneDriveを停止したい場合は,メニューの一番下にある「OneDriveを閉じる」で停止出来る。

Page Top

Microsoft Compatibility Telemetryの問題 anchor.png

Microsoft Compatibibility Telemetryは,Windowsでユーザーがどういった使用をしているのか使用状況のデータ収集を行ったり,Windowsの互換性に関する問題の情報の収集を行って,Microsoftに報告するプログラム。
つまり,Microsoftの遠隔データ測定プログラムということになる。情報収集を行うプログラムなので,なんとなくこのプログラムのせいで情報漏洩するかもってと思うのだが,Microsoftでは悪用はしていないとのこと。

しかし,このプログラムが動作するとディスク100%になってしまうことがあります。実際に私のWindows10もこれがもう一つの原因となっていました。

そこで,Microsoft Compatibility Telemetryを無効化します。
Microsoft Compatibility Telemetryはタスクスケジューラで毎日PCがブート後,実行されているようだ。なので,タスクスケジューラーで登録されているのを無効化することにした。

  • スタートメニュー>すべてのアプリ>Windows管理ツール>タスクスケジューラをクリックして開く
  • メニューツリーにあるタスクスケジューラライブラリ>Microsoft>Windows>Application Experienceを選択
  • Microsoft Compatibility Appraiserを選択する
  • 右側の操作メニューの「無効化」をクリックする
    CompatibilityTelemetry.png

これで,Microsoft Compatibility Telemetryの無効化することが出来る。

もし,再度有効化したい場合は,操作メニューの「有効化」をクリックすることで有効化出来る。

Page Top

メンテナンスタスクの問題 anchor.png

Windows10でシステムがアイドリング状態(お休み中)になると,Windowsエクスペリエンスインデックスを作成するためにベンチテストを行うように,タスクスケジューリングされています。

これが動き始めると,CPUやHDDに無理やり負荷をかけるので,どちらも100%状態になります。

これ以外にも多くの不要なタスクスケジュールがあるので,Windows10の不要なタスクスケジュールを無効化するを参照して,不要なものは無効化しておいたほうが良い。

タスクマネージャーでこのスケジュールを無効にします。

  • コンピュータの管理>システムツール>タスクスケジューラライブラリを開く
  • Microsoft>Windows>Maintenanceを開く
  • WinSATを右クリックして,無効に変更する

PCが暇になった時のメンテナンスタスクはこれで行われなくはなる。

しかし,これ以外にも夜中なんかに勝手に同じメンテナンス作業が動き始める問題もある。

  • コントロールパネル>セキュリティとメンテナンス>メンテナンスを開く
  • 自動メンテナンスをクリックする
  • メンテナンス設定の変更を変更する
    ここで,自動メンテナンスが行われる時間を変更出来る。

メンテナンスの実行をクリックすると,このメンテナンスタスクが手動で実行出来ます。

ここでは停止できないので,レジストリを変更する。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance
作成する値(DWORD(32ビット)値)
MaintenanceDisabled
値のデータ:無効化する場合・・・・ 1
            有効化する場合・・・・ DWORD(32ビット)値を削除する
Page Top

Runtime Brokerの問題 anchor.png

ディスク100%ではないが,CPUやメモリーの使用量が突然大量になって動作が激重になる原因の一つに,Runtime Brokerの問題がある。
Runtime Brokerは,UWPアプリが動作するときなどにセキュリティ絡みでアプリを監視するためのプログラムなようだが,実際のところよくわからない。
UWPアプリを使わないと問題は起きないが,Windows10では多くのUWPアプリが標準でインストールされている。

手っ取り早く対策するには,レジストリでRuntime Brokerを動作しないようにする。

  • レジストリエディタを起動する
  • 以下を開く
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TimeBrokerSvc
  • Startの値を3から4に変更する

変更後,PCを再起動するとRuntime Brokerは動作しなくなる。
しかし,タスクスケジューラーが起動しなくなっちゃったんでもとに戻した。

Page Top

物理メモリ不足と仮想メモリの設定の問題 anchor.png

PCに実装しているメモリが少ない場合(4Gbyteなど),Windows10だとWindows7に比べて多くのプログラムが同時に動かしているので,物理メモリが足りなくなり仮想メモリが比較的使われるようになります。

仮想メモリはHDDなどのストレージを使用するので,このような状態になると極端にPCの速度が遅くなる。
仮想メモリを使用しないのが一番良いわけだが,多くのプログラムを動かすことでユーザーに便利に使えるようにしているWindows10では,なかなかうまく解決が難しい。

以下のようにして,仮想メモリの使用の確認と設定を行います。

  • タスクマネージャーを開く
    パフォーマンス>メモリの項目を選択して,現在の状況を確認する。
    コミット済みの左の数値-使用中=現在の仮想メモリの使用サイズ
    となる。
    ここから,
    現在の仮想メモリの使用サイズ+300MByte = 新しい仮想メモリの設定サイズ~
    とする。
  • コントロールパネルを開く
  • システムとセキュリティ>システムを開き,システムの詳細設定をクリック
  • システムのプロパティの詳細設定タブをクリックし,パフォーマンス(視覚効果、プロセッサのスケジュール、メモリ使用、仮想メモリ)の設定を押す
  • パフォーマンスオプションの詳細設定タブをクリックして,仮想メモリの変更ボタンをクリック
  • 「すべてのドライブのページングファイルのサイズを自動的に管理する」のマークを外す
  • 仮想メモリの場所とサイズを設定する
    仮想メモリを作成するドライブを選んでマークをする。
    この時,ストレージが1つのみ搭載していている場合は,C:ドライブをマークする。
    ストレージを複数接続している場合は,C:ではなくD:などのドライブにマークをする。そしてC:ドライブには「ページングファイルなし」にマークする。
    仮想メモリを設定するドライブのカスタムサイズで,初期サイズと最大サイズとも上記で計算したサイズに近いサイズの1024の倍数に設定する。
    例えば,5120
    SSDを使用している場合は,寿命の問題から「ページングファイルなし」にする。

設定を行った後メモリ不足のメッセージが表示される場合は,サイズを大きくするか自動的に管理するに戻す。

仮想メモリは,PCの使用状況で変化するので,時々設定を見直し必要がある。

Page Top

休止状態を有効にしてシャットダウンではなく休止を使用する anchor.png

Windows10でシャットダウン後にリブートすると,いくら「高速スタートアップ」を使ってもシステム起動後様々な初期化を行うため,ディスクアクセスが長い時間100%になってしまう。
これは,シャットダウンを使用する場合には回避しようがない。

そこで電源OFFする場合にシャットダウンではなく,休止状態を使用するようにして改善することを考える。

Windows10では,電源ボタンをクリックした場合,スリープとシャットダウン,再起動が選択できるようになっている。
スリープは,ハイブリッドスリープがスリープ機能としてデフォルトで使われている。再起動はシャットダウン/電源ONとほぼ同じ(少しは早く起動するように工夫している)。

  • スリープ
    ノートPCのようにバッテリーを搭載しているPCでは,メモリなど最低限システムを維持できる部分のみに電源を供給することにより,復帰を素早く行えるようにした停止方法。
    少ないとはいえバッテリを消費するので,長時間スリープ状態の場合バッテリがなくなってしまう場合もある。
    この場合,その時に行っていたデータなどが失われてしまうこともある。
  • ハイブリッドスリープ
    Windows10のスリープは,デフォルトでハイブリッドスリープになっている。
    ハイブリッドスリープは,通常のスリープで動作しているメモリ内容をストレージ(HDD等)にも保存しておく仕組みで,メモリの内容が失われても作業中のデータはストレージ(HDD等)から復帰できるようにしている。
    PCへ搭載しているメモリの容量が多い場合(例えば16GByteなど),ストレージから戻すのにかなり時間がかかるようになる。16Gbyteだと2分くらいかかります。
  • 休止状態(ハイバネーション)
    休止状態は,スリープやハイブリッドスリープとは違い,停止する前に動作環境を全てストレージ(HDD)に対比した上で電源をOFFする。
    このため,スリープやハイブリッドスリープと違い,停止後は電源を消費しません。(マウスやキーボード,NIC等には電源を供給している)
    ハイブリッドスリープと同様に,多くの容量のメモリを実装しているPCでは,電源ON時にストレージからメモリへ動作状態を戻すの時間がかかってしまう。
    ただ,シャットダウンと比べれば,遥かに時間が短い復帰が可能ではある。
  • シャットダウン
    全ての動作しているプログラムを停止して,PCの電源をOFFする。
    PCの電源ON後は,Windows自体のロード・初期化・デバイスの初期化・サービスプログラムのロードと実行,・・・と多くの処理を必要とするため,ひじょうに時間がかかります。(高速スタートアップを使っているので,全ての初期化はしていない)

Windows10では,デフォルトで休止状態は使用できないようになっている。
休止状態を有効にするには,以下のようにする。

  • 設定>システム>電源とスリープとクリックしていく
  • 右にある関連設定の「電源の追加設定」をクリックする
  • コントロールパネルの電源オプションが開かれる
  • 電源オプションの左の「電源ボタンの動作を選択する」をクリック
  • 電源ボタンの定義とパスワード保護の有効化が表示されるので,「シャットダウン設定」にある「休止状態」にマークを入れる
  • 変更の保存をクリックする

これで休止状態が有効になって,電源メニューにも休止状態が表示されるようになる。

PCの電源をOFFする場合この休止を使用すると,次回PCをONした場合には保存した動作環境をストレージからロードするだけで復帰できるので,ディスク100%になることはなくなる。

私のPCはデスクトップPCなので,ついでに電源ボタンの挙動をシャットダウンから休止状態に変更しておく。これで電源ボタンを押すことで休止状態になる。

デスクトップPCでシャットダウンの代わりに休止状態を使用する場合,休止状態から勝手にWindows10が復帰してしまうという問題が発生する場合がある。
なので,これを防止する対策としてWindows10で休止・スリープから勝手に起動してしまうを参照して対策を行っておく必要がある。

Page Top

Systemによるデフラグ処理が実行される anchor.png

Systemプロセスのディスクの負荷が高い場合には,タスクスケジューラーの設定でのディスクデフラグが実行されている場合がある。
ディスクデフラグの場合は,処理が終了すれば次回からはあまり気にならなくなると考えられる。

メモリの搭載サイズが少ない場合は,ディスクデフラグに相当時間がかかってしまいます。30分ぐらいかかることも珍しくはない。
可能なら16GBのメモリを搭載したい。

ストレージがSSDを使うとディスクデフラグは実行されなくなる。

Page Top

ウィルススキャンの定義データの更新とウィルススキャン処理 anchor.png

ブート後,ウィルススキャンの定義データの更新や,場合によってはウィルススキャンを実行する場合がある。

この場合も,処理が終了すれば次回からはあまり気にならなくなると考えられる。


新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 178, today: 1, yesterday: 0
最終更新: 2023-11-07 (火) 14:54:22 (JST) (174d) by yuji