« BeagleBone BlackのPRUを試す | トップページ | SearchFilterHost.exeの暴走原因はXml爆弾 »

2014年4月 5日 (土)

Windows 8.1の自動メンテナンスでSSDがデフラグされてしまう

メインコンピューターのWindowsを8.1に替えた。起動用に追加したSSDにインストールしたこともあり、以前使っていたVistaに比べて起動が格段に速くなって実に快適である。使い勝手がかなり変わったのは事実だ。新しくなったスタート画面やそこから始めるアプリを使わないようにすれば、一部で言われているように酷いものではないと思う。8から8.1になってマシになったこともあるのだろう。

新しいWindowsにアタマが馴染んで細かいことに気を配るだけの余裕が出てきたからだろう。自動メンテナンスの一環としてドライブの最適化が行われるのだが、ここでSSDがマトモにデフラグされていることに気付いた。

/*-----------  -----------*/

ドライブの最適化@Windows 8.1

SSDを従来のハードディスクと同じようにデフラグしてもほとんど効果がないが確実に寿命を使ってしまう。だからSSDはデフラグしないのが今日の常識である。ただしWindows 8以降の「ドライブの最適化」はSSDに対してTrimコマンドを再送するようになったので、最適化は定期的に実施すべきだ。これは「管理ツール」の「ドライブのデフラグと最適化」 (dfrgui) から実行した場合の話である。

Dflgui

 

自動メンテナンスの場合

自動メンテナンスでは様々な処理が必要と判断された場合に実行されるようだ。つまりドライブの最適化も必要でなければ実行しない。この点は注意が必要である。

最適化が実行された場合、SSDもハードディスクと同様にデフラグされ、さらにTrimコマンドの再送が行われる。

Windows PowerShell
Copyright (C) 2013 Microsoft Corporation. All rights reserved.

PS C:\Windows\system32> Get-EventLog -LogName Application -Source "microsoft-windows-defrag" | sort timegenerated | fl timegenerated, message

(中略)

TimeGenerated : 2014/04/02 22:48:57
Message       : ストレージ最適化ツールは Win8.1Boot (C:) の 最適化 を完了しました

TimeGenerated : 2014/04/02 22:48:57
Message       : ストレージ最適化ツールは Win8.1Boot (C:) の トリムの再実行 を完了しました

これはスケジュールされた自動メンテナンスだけでなく、手動で開始しても同様である。

Automaint

自動メンテナンスで最適化が行われる場合、タスクスケジューラーライブラリーに登録されたタスク\Microsoft\Windows\Defrag\ScheduledDefragが実行されるようだ。

Scheddefrag

最適化を行うプログラムdefrag.exeがオプション「-e -h -o -$」付で実行される様なのだが、最後のオプション「-$」は公式なドキュメントに記載がなく、その効果は不明である。

 

日本語の情報が無い

インターネットを検索すると、かなり以前から話題になっていたらしいことがわかる。私が見た中ではVadim Sterkinの記事がよくまとまっている。実を言うと、今回はほとんどこの記事の紹介のような内容である。

しかし、なぜか日本語の情報が見つからない。この私の記事が本邦初登場?そんなことはないと思うのだが。

 

対策

Sterkinの記事に書いてあった対策をそのまま実施した。概略は以下のとおりである。

  1. 「管理ツール」の「ドライブのデフラグと最適化」で「設定の変更」→「選択」を開き、SSD上のドライブのチェックを外す
  2. タスクスケジューラーで\Microsoft\Windows\Defrag\ScheduledDefragをTRIM-SSD.xmlにエクスポート
  3. xmlファイルの Arguments 要素を<Arguments>C: D: -l -h</Arguments>の様に(「C: D:」はSSD上のドライブに合わせる)修正
  4. タスクスケジューラーでTRIM-SSD.xmlをインポート(タスク\Microsoft\Windows\Defrag\TRIM-SSDができる)

詳細は元の記事を参照してほしい。

 

懸念事項

まず「日本語の情報が見つからなかった=国内では話題になっていない」だとマズいな、と言うこと。Sterkinの記事によれば、自動メンテナンスでSSDがデフラグされる頻度は平均30日に1回程度なのであまり実害はないのかもしれない。しかし「知っていたら対策していたのに…」と悔しい想いをする人は少なくなだろう。

次にMicrosoftが知らん顔をしていること。事の本質を理解しているのに、わざとわからないフリをしているような印象があり、気持ちが悪い。何か重大な裏事情があるのかな?

 

今回のまとめ

SSDは原理的に書き込める回数が限られているが、実際に壊れるまで書き込んでみた例(日本語英語もある)を見ると意外と長持ちである。先に「自動メンテナンスでSSDがデフラグされる頻度は平均30日に1回程度なのであまり実害はないのかもしれない」と書いたのはこれを念頭に置いたものだ。

しかしハードディスクと同じデフラグをSSDに対して行うのは寿命の無駄遣いだとしか思えない。Microsoftは、このディフォルト設定を変更するつもりは無さそうである。

|

« BeagleBone BlackのPRUを試す | トップページ | SearchFilterHost.exeの暴走原因はXml爆弾 »

日記・コラム・つぶやき」カテゴリの記事

趣味」カテゴリの記事

IT」カテゴリの記事

コメント

SSDの場合、Trimコマンドを実行するだけなのでデフラグしても問題なかったような記憶が…
http://www.atmarkit.co.jp/ait/articles/1305/30/news104.html
> Windows 8のデフラグはシステムがアイドルの場合に定期的に実行されるようになっている。対象ドライブがハードディスクならファイルを構成するクラスタの再配置を行うが、対象ドライブがSSDなら、ディスクをスキャンして消去済みブロックに対するトリム・コマンドを発行するという作業を行う(クラスタの再配置は行わない)。これにより、SSDではトリム・コマンドに対する内部処理を行う機会を得ることができる。

(コマンドラインの方はおそらくバグだと思います)

投稿: さびねこにゃ | 2014年10月20日 (月) 01時32分

さびねこにゃ さん、
おっしゃる通り Windows 8/8.1 のデフラグは、SSD には Trim コマンドを送る事になっています。
この通りなら問題無いのですが、実際に調べると SSD をハードディスク同様にデフラグしてしまっていると考えられる場合が見つかりました。
これはバグか、あるいは未公表の仕様かもしれません。どちらにせよ好ましくないので対策をしましょう、と言うのがこの記事の趣旨です。

投稿: エンジニア | 2014年10月20日 (月) 10時15分

初めまして。
SSD利用PCで、そのSSDで遅延化の不具合が発生し、ググっておりましたら貴殿の本サイト内容を先程知り、興味津々の貴殿サイトにコメント送らせて頂きます。

SSD換装直後は、流石!と驚愕しての利用経緯に、レガシーPCはWin8+SSD+VideoBoardで蘇りその性能に満足しておりましたが、Win8.1にアップグレードを経て、この数週間前からのHDDアクセス表示灯の点滅が目につき、3DバーチャルサイトのSecondLife利用時にPCがハングアップする状況が発生。
その後にCrystalMarkでデータ測定したその結果に、応答が極端に遅くなっている状況を認識しメーカーに問合せた結果、購入後2年半経過から3年保証内との事で、代替品交換の対応を受ける事になりまいした。

SSDの書き込み・読み込み速度はHDD性能を超越した性能に、利用当初は驚愕・恭悦を経験しましたが、その経年での性能限界を体験し、メーカー製PCを含めた利用者ではそのリスクを認識すべき状況では?と思う今回の体験です。

さらに、本サイトで紹介されているMicrosoftのWin8.1での仕様で、ドライブ最適化のハード仕様での説明不足のオプション項目 [ -$ ] を目にし、SSD利用リスクにHDD以上の危惧を覚えました。

SSDを含め新しい情報が判明しましたら、是非紹介頂ける事を願っています。


そのSSD利用の組立PCですが、昨今の生活苦からレガシー組立PCを部品交換しながら利用しております。

Shuttle SB83G5(PEN4 2GBRAM chipset 915G)にSATA HDDをRAID-0構成でXP利用しておりましたが、Win8 Proが6千円弱で販売されいた頃(2011年年末でしたか?)にWin8を入手し、2012年4月頃にE25の128GBを9千円弱で入手も、SB83G5内蔵のVideoはWin8不適格から安いVideoBoardを探している中でRadeon HD6450のSAPPHIRE製品が廉価盤で販売されている事を知り入手しまして、Win8インストールして蘇ったレガシーPCです。

SSD利用でのWin8はHDD利用時のXPと段違い利用感でした。PEN4でも遅延感無くネットとiTune利用が殆どでしたが、Win8.1にアップグレードした後に、3DバーチャルサイトのSecondLifeを利用し始めていますが、その利用当初は快適な利用状況でした。
Defraggerもその後にインストールしての空領域のデフラグを偶に実施しての利用に、Win8.1のデフラグ機能もSSD利用時では必要とのサイトを目にし、両方のデフラグ機能を利用していたのも今回のSSD遅延発生の原因の一つかな?とも思っております。

貴殿での小生のSSD利用状況に興味がありましたら、CrystalMark・CrystalDiskInfoの情報もお送りする事も可能ですが、このコメントでは長文から控えさせていただきます。

長くなりましたが最後まで読んで頂き、ありがとうございました。

貴殿のこのWebサイトはお気に入りに登録させて頂きます。

投稿: ふくちゃん | 2014年11月 1日 (土) 23時49分

ふくちゃん さん、

コメントありがとうございます。シリコンパワーの SP128GBSSDE25S25 をお使いでしょうか?
もしそうなら、使用中に速度低下する問題が初期のファームウエアにあったようです。
http://bbs.kakaku.com/bbs/K0000356468/#15906514
http://review.kakaku.com/review/K0000356468/#tab
もしかするとこの問題に該当したのかもしれませんね。

私が使い始めた 2008 年頃に比べると、SSD もその利用環境も色々と課題が解決されて随分良くなったと思います。
技術が発展途上で製品の世代交代も早いので、個別の問題が起こりやすいのは止むを得ないのかもしれません。
「枯れた」製品を使えばいいのですが、新しいものに比べて見劣りする点が多いので、結局最新の製品を選ぶ場合が多い。

なので、自衛のため情報収集が欠かせない、と言うことです。

SSD に限らず、色々と気付いた事を blog で取り上げたいと思いますので、よろしくお願いします。

投稿: エンジニア | 2014年11月 2日 (日) 11時34分

初めまして、自作PCの道楽管理人のjyamira1と申します。最近、自分のブログの記事に関連して、Windowsが自動実行するもの/機能とセキュリティーソフトや高速化ソフトなどの自動メンテナンスについて調べていて「びっくり仰天!!!」なこの記事にたどり着いてしまいました。

あまりのことに御挨拶もせずに、いきなり一部を引用させていただいて記事を掲載してしまいました…。ほかの記事もしっかりしていらっしゃるのでいい加減とは思えず、本当にMSナニコレとしか言いようがない気が。。。MSには比較的最近ですと、自分のところで大きく扱ったWindows8のファイル消失問題に関することで1年ほど前にUSのテックネットで掲載されていた記事にほっかむりをしたということがありました。MS日本はどうなのかなという気もしています。

事後のご挨拶になってしまいましたが、記事引用掲載の件、どうぞご寛容ください。

投稿: jyamira1 | 2015年2月28日 (土) 19時15分

jyamira1 さん、こんばんは。

引用していただくのはむしろ光栄なことです。挨拶のご心配は無用と願います。

このコメントを頂いた機会に元ネタの blog 記事を見直したら追記があり、その中で言及されていた他の blog 記事に気になることが書いてありました。
http://www.hanselman.com/blog/TheRealAndCompleteStoryDoesWindowsDefragmentYourSSD.aspx
(1) SSD でもフラグメンテーションは起こるが、パフォーマンスへの影響は大きくない
(2) しかしファイルあたりのフラグメントの数が管理できる上限に達して、それ以上そのファイルに書き込めない場合が発生する恐れがある
なので SSD でもデフラグが必要な場合がありますよ、と言う内容(かなり端折っています)。

(1) は共通認識ですね。しかし (2) が本当なら、これは盲点でした。
こう言う情報はマイクロソフトの公式チャネルから流してもらいたいものですが・・・。

平均的ユーザーの場合、多少 SSD の寿命を使ってでも自動的にメンテナンスする方が親切かもしれません。

投稿: エンジニア | 2015年2月28日 (土) 23時48分

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Windows 8.1の自動メンテナンスでSSDがデフラグされてしまう:

« BeagleBone BlackのPRUを試す | トップページ | SearchFilterHost.exeの暴走原因はXml爆弾 »