ウイルス対策ソフトをご利用の場合、「トロイの木馬」を誤検出する記事があります。警告が出た際は、こちらの記事をごらんの上、お知らせいただければ幸いです。

« ひどい断片化にはデフラグを。でもこの断片化は…。 | トップページ | NTLDR is missing. は意外にも…。 »

2009年2月22日 (日)

SSDの耐久性とプチフリーズと断片化。

このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク この記事をクリップ! BuzzurlにブックマークBuzzurlにブックマーク

先の記事で、断片化とSSDの話が出ましたので、ついでに書いておきます。

SSDの耐久テストをしてくれた人がいます。

2009年02月21日 SSD耐久テスト経過報告 その3 ~Mtron MSD-SATA3035032(32GB,3.5インチ)~ :AKIBA PC Hotline! Junk Blog.

こちらは、以下の記事の続編として書かれたもの。

2008年01月20日 SSDの寿命は本当に短いのか :AKIBA PC Hotline! Junk Blog.
2008年04月06日 SSD耐久テスト途中経過報告 その1 :AKIBA PC Hotline! Junk Blog.
2008年10月19日 MTRON専用SSDの寿命診断ソフトを試してみた SSD耐久テスト経過報告 その2 :AKIBA PC Hotline! Junk Blog.

普通に業務のメインPCとして写真の保存や編集、動画編集などでそこそこ酷使し、耐久加速のため毎日デフラグまでかけての1年間だったそうだ。
SSDの場合、「デフラグは寿命を縮めるのでやめた方がいい」と言われていますが、1年間毎日デフラグをかけてこれですので、思ったほど耐久性は悪くないのかもしれません。
SSD自体の容量が大きくなれば、さらに書き込み分散の効果で、寿命が伸びる傾向にあるのでしょうね。

この記事だけ読んでいれば、

「SSDってなかなか良さそうじゃん。俺も買おうかな?」

ってなことになりますが…これで解決?? いやいやいやいや。

-----

先日のトラブルで改めて分かったのは、

Windowsの起動ドライブは、一時ファイルや仮想メモリなんかよりも、OSやその他のソフトの各種ログファイルが頻繁に書き換えられていることで断片化が強烈に発生する

という事実。

断片化が発生すると、ファイルがあちこちにバラけてしまうわけですから、SSDの場合、ブロック単位で消去して書き換えを行う「フラッシュメモリ」の原理上、細かい断片が多数のブロックに分散すると、結局はたった1ファイルの書き換えに多数のブロックを消去しては書き込みを行うため、

見えないところで頻繁に書き換るログファイルなど、平気で数百から数千の激しい断片化が発生するファイルがある状態でも、SSDは自動的に書き込み分散(ウェアレベリング)を行い、断片化が加速されてさらに効率が落ち、プチフリーズとして顕在化してくる

ということになるのは容易に想像できます。

実際、HDDからSSDに乗り換えた人は、かなりの苦労をされているようです。
「プチフリーズ」で検索すると、阿鼻叫喚の地獄絵を見ているようです…。

SSD Eee PCの宿痾か、プチフリーズ略してプチフリの追及と解決の模索 S101編 :EeePC,ネットブック カスタマイズ・改造・便利なオプション紹介 - 電机本舗

※特定チップのSSDと断片化で現象が出る、というところまでわかったらしい。

SSD に換装した PC でプチフリーズが発生した。どうするか :ゆめとちぼーとげんじつと
SSD に換装した PC でプチフリーズが発生したので EWF を導入してみる :ゆめとちぼーとげんじつと
SSD に換装した PC でプチフリーズが発生したので EWF を導入してみた+ FileDisk で補強 :ゆめとちぼーとげんじつと

※EWFとかFileDiskとかのツールでなんとかしている、らしい。

【 2008年12月20日号 】 パラレルIDE-SSDで旧式ノートPCはどれだけアップグレードできるか?(前編) :AKIBA PC Hotline!
【 2008年12月27日号 】 パラレルIDE-SSDで旧式ノートPCはどれだけアップグレードできるか?(後編) :AKIBA PC Hotline!

※HDD→SSDというのは、単なるHDD換装とは違い、いろいろ手間がかかるので、上級者でないと手に負えない、ということらしい。

…うーむむむむむむ。

断片化が引き金になる、ということは、先の「1年間の耐久性チェック」をしていた人は、

毎日デフラグをしていたために、プチフリーズのプの字もなかった

というのは充分納得できるものです。

GoogleがサーバーにSSDを採用というニュースが去年の5月にあったわけですが、まだまだSSD関連の情報は不足気味です。
頻繁な書き換えがない、読み出しが主になる「データドライブ」ならば、プチフリーズは起こりにくいといえますが…。

ミニノート(ネットブック)PCで、にわかに脚光を浴び始めたSSDですが…やはりフラッシュメモリの宿命、「書き換え寿命」問題がウェアレベリングを必要とし、それが激しい断片化を招き、プチフリーズを引き起こす、というマイナス面は、当面は引きずることになるでしょう。

ハードディスクと同じと思って差し替えで使っていて、動画再生や音楽再生ごときで、プチフリーズ発生でブチブチと途切れるようでは話になりませんから。

ハードディスクは、ある程度の使用期間や衝撃によるクラッシュの可能性などのマイナス面はあるものの、多少の断片化程度で動画再生や音楽再生に支障など出ません。
HDDのマイナス面は「そういうもの」という意識があるのでまだいいのですが、SSDは寿命やプチフリーズなど、まだまだ不明な点が多いです。
わけもわからず「HDDの差し替え」と飛びついて使うのはまだまだ考え物のようです。


結論:

SSDになって発生している「プチフリーズ」という現象は、どうやら

「SSDは断片化の影響を受けにくい」と言われ、また「デフラグをすると寿命が縮むから」ということで、起動ドライブでのログファイル等の激しい断片化を放置した結果、SSD独自の書き込み分散で断片化がさらに加速することで起こるもの

のようです。
まぁ少なくとも、当面は

脳天気に「これからはSSDの時代だぜ!!イヤッホウ!!」なんて浮かれていてはいけない

ということですね。

-----

追記:

都市伝説によると、

  • 「MLCタイプはダメだけどSLCタイプは発生しないらしい」
  • 「RAID0にすれば気にならないらしい」
とかいったブログ記事や口コミ記事をかなりたくさん目にしますが、
  • 過度の断片化が発生するシステムファイルの存在
  • フラッシュメモリのブロック消去と寿命対策のウェアラベリングの存在
という、WindowsとSSDの原理から言えば、おまじない程度にしかならないと言えます。
いつぞやの記事では寿命の観点で書きましたが、結局フラッシュメモリのフラッシュメモリたるゆえん(「フラッシュ」はブロック消去できるメモリ、という意味から)で、やっぱり

SSDはまだまだ時期尚早

ですね。
なので、Windowsが全ての一時ファイルを別パーティションに追いやれるOS、言い換えれば

起動ドライブの書き込みを一切しない、極論すればCD-ROMででも起動して通常通り利用できるOS

になってしまえば、遅いと言われるMLCタイプのSSDでも全く問題なく使えるわけです。

この理屈から言えば、Ubuntuなど、CD-Rで起動して使えるタイプのLinuxならば、SSDでもプチフリーズとは無縁でしょう。時間があったら検証してみたいですね。
Windows7がそうなれば理想的ですが…きっと無理でしょうね…。

ちなみに、人気blogランキング参加中です。 よろしくお願いします。

このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク この記事をクリップ! BuzzurlにブックマークBuzzurlにブックマーク

2009年02月22日(日) ニュース, ハードウェア不具合関連(ハードディスク), パソコン・インターネット, 企業(メーカー・プロバイダ等)の姿勢, 日記・コラム・つぶやき |

« ひどい断片化にはデフラグを。でもこの断片化は…。 | トップページ | NTLDR is missing. は意外にも…。 »

ニュース」カテゴリの記事

ハードウェア不具合関連(ハードディスク)」カテゴリの記事

パソコン・インターネット」カテゴリの記事

企業(メーカー・プロバイダ等)の姿勢」カテゴリの記事

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

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/13757/44151466/void
↑トラックバックをいただく際は、最後の「/void」を抜いてください。お手数ですがよろしくお願いいたします。

※あまりにも無関係なトラックバックが多いため、当面はトラックバックの公開は承認制にしました。トラックバックを送っていただいてもすぐには反映されません。ご了承願います。

※トラックバックをいただく際は、この記事のURLを記事中に記載(もしくはリンク挿入)願います。
この記事と無関係な内容であったり、明らかな宣伝もしくは宣伝活動目的と判断されるもの、トラックバック元がトップページへのリンクであるもの、もしくは当方が不適切と判断されたものは、公開の承認はなされません。あらかじめご了承願います。

この記事へのトラックバック一覧です: SSDの耐久性とプチフリーズと断片化。:

» SSDと断片化 トラックバック Kyan's BLOG III
セキュリティホール memo経由で,SSDの耐久性とプチフリーズと断片化。 : パソコントラブル出張修理・サポート日記 機械的な可動部がなくて高速なはずのSSDは,ブロック単位で消去して書き込むフラッシュメモリの原理とSSD独自の書き込み分散のために書き換... 続きを読む

受信: 2009/02/23 21:41:32

» re: USBメモリーとシリコンディスク トラックバック Ognacの雑感
re: USBメモリーとシリコンディスク 続きを読む

受信: 2009/03/04 9:47:27

コメント

そーです、浮かれてはいけません。
ただいま正月よりSSD動作中です。
実験用に1台、MLC型32GBをシステムとして導入したらバッキバキにプチフリーズで使い物にならなかったのでもう1台買ってRAID0にて使用中です。
RAID0でプチフリーズが消えるとかウワサを聞いたもので・・・
結果、見事プチフリーズは消えました!がRAID化から1ヶ月、チラリホラリとプチフリーズが出てまいりました。
途中からできるだけテンポラリや一時キャッシュはRAMDISKへ逃がし、ページファイルは切ったりHDDに逃がしたりしているんですがやはり起きるようになります。
で、今日この記事を読んで「SSDなので気にもしていなかった」デフラグ分析をしたら「デフラグする必要はありません」とXPさんに褒められました。
しかし・・・もっとも断片化されたファイル29個の内、17個がAVG8のログでした(笑)
ログ恐るべし。
AVG8のオプションには吐き出し先の指定はないし・・・
この程度の断片化でプチフリーズが発生するとなると、1ヶ月に1度のでフラグが必要になってしまうのか?と心配にはなります。

まぁためしにデフラグしてみます。

投稿: ぶいち | 2009/02/23 21:06:53

ぶいち さん
コメントありがとうございました。
RAID0でもダメ、という話は他でもいくつか見受けられましたので、記事に追記しておきました。
結局のところSSDは、「フラッシュメモリ」ではない、ビットないしバイト単位で書き換え・消去ができる「EEPROM」でなければ、今のWindowsでは、セキュリティ対策ソフト併用なので、プチフリは不可避ということです。
追記したとおり、システムドライブの書き込みを完全禁止状態、それこそWindowsそのものをファームウェア状態にでもしないとダメですね。

でも、マニアのオモチャ的に「いじることを楽しむ」分には、パフォーマンスアップも図れるので、大変面白いデバイスではありますが。

投稿: ささもと | 2009/02/24 9:55:05

私はコメントにあるぶいちさんより早く、昨年11月に仕事で使用しているPC(WindowsXP SP3)をSSDに換装しましたが、今のところプチフリーズと呼ばれる現象に一度も遭っていません。
購入モデルを選ぶにあたって2chのスレッドと、そのまとめサイト(http://www11.atwiki.jp/flashssd/ )を参考にサムソン製のSLCタイプを使用中です。
ちなみにディスクの分析結果は、こちらの前回記事のスナップショットと類似して断片化したファイルが細かくバーコード上に並んでいました(断片化トップは8MBのファイルが1000個強)。デフラグは換装後からしていません。
5400回転のHDDと比較すると全ての点で今のSSDの方がパフォーマンスに優れており、買って良かったと思っています。

プチフリーズしないと言われているSSDはどれなのかを選ぶ手間、今後プチフリーズが起こるかもしれないリスク、及び現在のSSD製品のコスト(1MB当たりをHDDと比較)を総合すれば、PCを自作したことがないような一般ユーザにとってはまだまだ時期尚早ということなんでしょうね。

投稿: choco | 2009/02/24 12:04:24

少し調べたら分かる事ですが、プチフリーズは特定メーカーのコントローラーチップのバグとも言われてる事も述べて欲しかったです。
廉価SSDの9割以上が同メーカーのチップを安いという理由だけで載せています。

投稿: とおりすがり | 2009/02/24 12:46:05

choco さん
SLCタイプでの成功事例をいただきありがとうございます。
実際、あちこちのサイトをいろいろ見ていると、やはり
「安価なMLCタイプでプチフリーズを食らって唖然」
というパターンが多いようですね。
でも、中には「ちょっとは出るけど気にならない」「たまに出るから気になる」なんて書いてあるのもチラホラ見かけます。
「プチフリーズ」という言葉の定義も難しいのかもしれません。
やはり広く一般向けとなると時期尚早だと思います。

記事でも書いたとおり、「起動ドライブに書き込みを発生させないOSに変わっていく」というふうになっていくといいんじゃないかと思ってます。
OSによる起動ドライブへの恒常的な書き込みがなければ、寿命やプチフリーズなんて無縁になり、安価なMLCで充分なんですから。
でも、そうなるとパソコンの価格が上がらないので、やはりそう簡単にそっちへはいかないのでしょうけど…。

とおりすがり さん
まぁある程度調べてますので、そういう話があるのは知ってますが、この記事を見てくれた人のブログなどでの反応も、「SSDは知ってるけどプチフリーズだなんて初めて知った」というコメントが少なくないのが現状です。
プチフリーズという言葉が出始めて結構経ちますが、明確に「特定のコントローラーチップの不具合」なら、とっくに改善されててもおかしくないはずです。
今シーゲイトのハードディスクなんかは実際大騒ぎですし、数年前も同じく突然死するHDDコントローラーチップの存在が多数のメーカーを巻き込んで大騒ぎになっていたことも記憶に新しいです。
しかし、今回のSSDプチフリーズの場合は、他メーカーのニュースリリースの状況から言って、そういうわけではないように見受けられます。
チップの問題ではなくファームウェアの問題では?と思うのですが、やはり情報不足という感が否めません。
いずれにせよプチフリーズ騒動が一段落するまでは、SSDは「当面はいじくりまわして楽しむ人向けデバイス」といわざるを得ません。一番言いたいのはそれなんです。

投稿: ささもと | 2009/02/24 14:46:45

追記
MLCでなくても、SLCでもパフォーマンス低下はあるようです。
http://d.hatena.ne.jp/Lansen/20090211/1234373179
ファイルの断片化ではなく、空き領域の断片化が影響するようです。
しかも、OS標準のデフラグでは、空き領域の最適化は限界があるので、条件によってはパフォーマンスは回復できないようです。

結局は、ウェアレベリングが必要な「フラッシュ」ゆえの宿命と言えます。
でも、ランダムライトの速いSSDには当てはまらない、ともあります。
ただ、速い分、寿命がどうなるのかが気になるところではあります。

投稿: ささもと | 2009/02/24 21:26:57

お疲れ様です。
ブッチャケ、週間アスキーを立ち読みしてたら言い切ってました。
SSDのプチフリーズが頻発するのは「某メーカーのコントローラチップ」が一個だけで動作しているタイプ、と。 (ホンマかいな?)

しかし素人さんがそんなそとこまでわかるはずもなく(笑)。
自作もできる玄人さん向けの一情報にすぎないかなあ~、と思いました。
ましてSSD搭載のメーカー製PCを買った人たちは「今更そんなこと言われても…」とパニックを起こしかねないです。
やっぱり、構造上・運用上の観点から、「SLC」と「MLC」なら前者の方が若干速くて長持ち、というくらいなんでしょうか。

ちなみにWindows7評価版をSATAのHDDで試してみてます。(SEAGATEの7200rpm、パーテーション区切って60GBのGドライブ)
まだ対応品が無い為、セキュリティソフトは入れてないのですが、スピードは全く問題ないと思います。
でもエクスペリエンススコアは1.0~7.9中3.0でした…。そんなもん?w

年度末で時間ないんですが、勉強の為にいろいろお試し中&フィードバック中です。

投稿: kei | 2009/02/24 23:37:34

ささもとさん、素人向けのブログという立場であれば時期尚早といわれるのは仕方がないですね。
しかしSSD=フラッシュメモリとするところに多くの誤解があります。

プチフリとかスピードとか耐久性、いずれの問題もフラッシュだから駄目なのではなく、上でも指摘があるコントローラチップや、キャッシュメモリを含めたパッケージ全体の出来が良くないのです。
高価ですが優れた性能のSSDでは、大容量キャッシュに、高機能のコントローラの組み合わせで、フラッシュメモリの欠点を回避しています。

EeePCのカスタムチューニングでEWFというものがありますが、これはメインメモリ上に全ての書き込みをキャッシュしてしまい、メモリがいっぱいになる前に適時SSDにキャッシュバックするという究極のテクニックです。

出来のいいSSDであれば同様の機能があって当然でしょう。コントローラとキャッシュでフラッシュメモリの欠点を吸収しますから、極端な話、SLCだろうがMLCだろうが関係なくなります。
インテルに代表される最近の製品では、MLCでもSLC並みの性能を持ったものもあります。

MLCで性能の悪いSSDというのは、コントローラチップにも問題がありますが、キャッシュも足りていません。
本当に安かろう悪かろうの製品であると考えるべきです。

最近出たレッツノートの新製品では、わざわざインテルSSD採用とアピールしています。高価ですが、こういう製品であれば安心だと思います。

投稿: mfigure | 2009/02/25 2:25:20

kei さん
いや、まさしくそうですね。
最初からSSD搭載のメーカー製PCの場合は、選択の余地ないですから、「今さらそんな!」ですよねぇ…。
普通に使ってたら、1分ほど反応なし、が頻発。
普通の人の反応なら、「これって不良品?ウイルス?」ですよねぇ。

mfigure さん

>プチフリとかスピードとか耐久性、いずれの問題もフラッシュだから駄目なのではなく、上でも指摘があるコントローラチップや、キャッシュメモリを含めたパッケージ全体の出来が良くないのです。

いや、おっしゃることごもっとも。
だからこそ時期尚早だと…。

>EeePCのカスタムチューニングでEWFというものがありますが、これはメインメモリ上に全ての書き込みをキャッシュしてしまい、メモリがいっぱいになる前に適時SSDにキャッシュバックするという究極のテクニックです。

記事でもそれ書いてますし、単なる書き込みキャッシュですし、それで寿命が延びるわけじゃないですから、究極とも言えませんけど…。

>MLCで性能の悪いSSDというのは、コントローラチップにも問題がありますが、キャッシュも足りていません。
>本当に安かろう悪かろうの製品であると考えるべきです。

「SSDだから爆速!」なんて話ばかり先行してますが、ふたを開けてみたら、書き込みキャッシュが必要とか一時ファイルを徹底的に別ドライブにとか、実は断片化の影響を喰らいやすいとか、やたらと手間がかかるだけ。
だからこそ、手間をかけて満足するマニアのためのオモチャと捉えられる人以外は時期尚早だ、と書いてますけど。
本来は、mfigure さんのおっしゃる「出来のいいSSD」、要は性能的にも寿命的にも「HDDと普通に置き換えの利くもの」以外は要らないと思うんですけど、いかがでしょう?

「出来の悪いSSD」が9割以上、というなら手を出さない方が賢明だと考えるのが普通だと思いませんか?

投稿: ささもと | 2009/02/25 3:15:51

組み込み系の開発をやっています。

最近は(リアルタイムOSでもないのに)客先よりWin系のUIを求められることが多くなり、仕方なくEmbeddedのXPを搭載したりして対処しています。
仕様によっては起動ストレージにHDDを搭載せざるを得ない場合もあり、その意味で機械的な部分の無いSSDには期待する所が大です。

ですが、展示会で関連企業にコンタクトしてみても「様子見」な所が多いですね。
信頼性についてはどこも確証を持てないでいるのが本音のようです。
コンシューマ向けとは少し事情が異なりますが、「最低でももう一年ぐらい様子を見てから判断しようか」と考える同業者が多いように感じています。

話は変わりますが、リードオンリーのOSについて面白い製品がありますね。(御存知でしたらすみません)
http://www.rom-win.co.jp/hp2009/RW/indexRW.asp
弊社内でも評価をしましたが、2GBのCFにフル機能のXPが入り、動作中に電源ケーブルを引っこ抜いてもOSが飛ばない! と、社内で大受けでした。
個人的なFileの保存等が必要であればUSBメモリを使えばいいし、ネットブックに最適ではないかと個人的に思っています。

投稿: FA屋 | 2009/02/25 10:19:12

追記です。

Rom-Winを使ってOSをROM化してしまえば、どんなウィルスがやって来ようと再起動するだけで元の未感染のOSが立ち上がります。
又、システムを散々いじり回して(見かけ上)壊してしまっても、同じく再起動すれば復旧します。

ささもと様のお仕事では不特定多数のお客様の所にお伺いすると思いますが、ROM化したWin系OSを搭載したノートPCを一台持っていれば何かと便利ではないでしょうか?

投稿: FA屋 | 2009/02/25 10:35:36

無用な掣肘かとは思いますが、横から失礼します。

販売する側からの視点ですが、やはりSSDをデスクトップPC用に使うにはまだ早いでしょうね。
確かに一部のコントローラのものならとても速いですが、
総じて容量が少ないか、
非常に高いかのどちらかが目立つと思います。

で、安価なものですが。
今のならだいたいシーケンシャルリードが170Mでライトが90Mくらいでしょうか。
これは、あくまでメーカーの公称値ですが、
実値としても近似値が出ているようです。
HDDがだいたいリード120でライト100だとすれば、
十分なスペックだと思います。
これに加えて、衝撃耐性、低発熱、低消費電力、ほぼ無音動作という、
SSDのメリットを考えればノートPCや音楽専用、
ブラウジング専用のPCにはうってつけでしょうね。
ただし、長く快適に使用するにはMLC専用の知識が必要になります。
ウェアレベリングようにドライブ容量は幾分かはあけておかないといけませんし、
ガーベージコレクション用にキャッシュ容量は大目のものを選ばないといけません。
更にはOS自身に書き込み回数を減らしたり、
キャッシュをRAMDISK等に保存したりするなどのカスタマイズも必要なのです。
こうなってくると"SSDって美味しいの?"というお客様には、
お勧めできなくなってきます。

次世代の窓的なOSがSSDに適した動きをしてくれるという話もありますが、
それは現段階ではOSの管理とSSDの管理で整合性が取れていない事でして、
高価なSLC製品かつ、高価なコントローラを積んだ物以外は、
気軽に速くなりますよーっと売れないのが現状ですね。

それでもUMPCなどには安価なSSDは非常に相性が良いですね。
実際のお客様も、換装対象としてはモバイル製品が多いようです。
こういうニーズがあるので個人的に不要とは言えませんが、
まだまだ"将来に期待の製品"であるのは確かですね。

基本的に、技術的な刷新がアナウンスされていない物なら、
欲しい時に買うというのが正しい商品の買い方だと思いますが、
買い物運が無い私は買った翌日とかにアナウンスされたりします。
なのでWindows7とFeNANDが出るまで我慢な日々です。

投稿: CFG | 2009/02/25 11:19:46

プチフリーズが起きなかった人が頻繁にデブラグをする人だった
→結論!SSDのプチフリの原因はファイルの断片化!

安直にも程がありませんかい?

投稿: tuwa | 2009/02/25 11:52:21

SSDが初心者に勧められる物ではない事については同意です.
ただ,コントローラー問題と同じよう情報が少ない状況で「断片化がプチフリーズの原因」と確定情報かのように見える書き方をしている事に違和感を覚え,現状では情報不足である以上,今ある他の情報も併記すべきでは?と思ったんです.

投稿: とおりすがり | 2009/02/25 13:09:10

FA屋 さん
おもしろそうな情報をありがとうございます。
後ほど確認してみます。

CFG さん
まったくそのとおりですね。
いじれる人にとっては、あれこれ情報をあさりながら、あれこれいじくりまわして、あれこれツールを使って…と、面白いことこの上ないデバイスと言えますが、「メンドクサそうだけど、手間に値するものなの?」って聞かれると「うーん…」ですから。

tuwa さん
その2行でまとめるのはどうかと…。

とおりすがり さん
フラッシュメモリが「フラッシュ」であるが故に、書き込み寿命を延ばすために、コントローラーは意図的に物理的な断片化を起こして使っているが、起動ドライブにシステムが勝手に書き込むファイルで発生する論理的な断片化とごっちゃになり、それをさばき切れずに時間のかかってしまう、出来の悪いコントローラーがなぜかかなり多い。
「フラッシュ」であるが故の宿命でもあり、コントローラーの改善でまだ何とかなる範囲かもしれないけど、まだまだ情報不足。
こういうことですよね。
ただ、起動ドライブの断片化がなければ、問題も起こらないのもまた事実ではないでしょうか?
「SSDには断片化は関係ない」という勝手な思い込みで、断片化原因説を否定する人はいるかもしれませんが…。

投稿: ささもと | 2009/02/25 15:29:24

>見えないところで頻繁に書き換るログファイルなど、平気で数百から数千の激しい断片化が発生するファイルがある状態でも、SSDは自動的に書き込み分散(ウェアレベリング)を行い、断片化が加速されてさらに効率が落ち、プチフリーズとして顕在化してくる

>ということになるのは容易に想像できます。

というのが分かりません。
SSDでは書き込みは16~32KB程度のページ単位で行われるようです。
ですから、ファイルシステムのクラスタサイズがこの単位よりも小さい場合、フラグメンテーションやアロケーションのしかたによってページ境界を踏み越える確率が高くなり、書き込み効率が低下する、というのは分かります。
しかし、「ウェアレベリングに断片化が加速される」というのはよく分かりません。
SSDにおけるウェアレベリングは「ページ」と言っているからにはTLBによるアドレス変換のようなものだと思っているのですが、そうだとするとそのようなアドレス変換機構がついたからといってそのオーバーヘッド以上に遅延が発生することは無いように思います。
「ウェアレベリングに断片化が加速される」とはどういうことなのでしょうか。

投稿: m11m | 2009/02/25 21:31:35

SSDの挙動としてまず、書き込みと消去の祭、
アクセスの範囲が異なります。
書き込み範囲をページとし、消去範囲をブロックとすると、
ページサイズはブロックサイズの百分の一以上に
小さいサイズになっているようです。
そして既にデータのあるページ内の1ブロックへ書き込む時、
SSDは一度、その領域を消去してその上で書き込みをするそうです。
つまり、上書きができないので消去の分、書き込みが遅くなるということですね。
それが1ブロックだけへの書き込みであれば、
その百倍以上あるブロックをいったん消去するわけですから
書き書きする総合時間も数百倍に膨れ上がります。
これを踏まえて、小さなデータのランダムライトが膨大な数に達し、
ガーベージコレクションが間に合わなかった場合に、
OSの出す答えを考えると。。。

デフラグによるプチフリの改善はまとまった空き領域ができて、
ウェアレベリングし易くなるからではないでしょうか。
単なるデフラグより、空き領域の結合を重視したデフラグの方が
ランダムライトの性能が格段にあがったという話もあります。
なので直接的な原因としてはファイルの断片化ではなく、
空き領域の断片化が原因ではないか、なんて考えてます。

商品の種類が増えるのは良いですが、
ガーベージコレクションを一回行うのに
数回も読み書きしないといけないキャッシュ容量や、
挙動のおかしなファームウェアというのがまだ生息している現状、
選ぶのも一苦労ですね。

ちなみに、記憶装置を買いにこられる方にはMLCvs1万回転HDDな方が多いです。
SLCは見てにやにやするものだそうです。

投稿: CFG | 2009/02/26 1:38:04

「SSDのウェアレベリングにより断片化が加速される」という説の信頼性についてはm11m氏の述べるとおりだと思います。
HDDのようなランダムアクセスに弱い構造のストレージと違い、SSDではウェアレベリングによりファイルが連続していようとも断片化していようとも、"理論的には"パフォーマンスに変化はないはずです。そもそもウェアレベリングは書き込みを均等に分散させるものなので、外から見れば連続した領域でも、内部ではバラバラに記録されているので、仮に「(SSDに書き込まれる物理的なレベルで)断片化が加速され」ていようとも、仮想メモリにおけるTLBのようなものですからアクセス時間のオーダに変化はないはずです。
そして、ウェアレベリングレベルでの断片化と、デフラグで解消できるファイルシステムレベルでの断片化は全く別のものです。
「毎日デフラグをかけていたSSDはプチフリーズ(?)を起こさなかった」という一例から、「SSDのパフォーマンスが悪いのは断片化(どのレベルか明示されていませんが)が原因」と決めつけるのは、いささか論理的でないと思うのですが。

投稿: おおつか | 2009/02/26 2:30:49

m11m さん
ウェアレベリングは、書き換え回数限界のあるメモリ素子(フラッシュメモリ)の書き換え回数を節約するために、同じところに何度も書き込みをさせないように、OSの管理としてのファイル位置(論理レベル)とは別に、実際に書き込みをする場所(物理レベル)を、書き込みのたびに変えてしまうことと解釈しています。
ご指摘のTLBは、CPUとメモリの関係において使われるだけですので、ウェアレベリングとは目的が全く違いますし、断片化の管理レベルも違いすぎますので比較になりません。
参考:
http://nabe.blog.abk.nu/0252
http://www.kyoto-sr.co.jp/products/fugue/techinfo/if-wl.html
http://blackfin.s36.coreserver.jp/index.php?id=176

つまり、SSDのフラッシュメモリは、メモリコントローラーによって、書き込みの際にビット単位ではなくブロック単位で実施しますが、特に上書きの場合、ウェアレベリングにより書き込み数の少ない別のブロックに書き込みを行い、元のブロックは消去するわけですから、OSからはデフラグで「きれいにそろった状態」に見えていたとしても、SSD内では物理的にはブロック単位でバラバラ状態です。
それが論理的にも激しい断片化が加わっていると、ウェアレベリングで物理的な断片化が加わるので、物理的な書き込み位置は、OSから見えている以上にズタズタのバラバラです。
ハードディスクとSSDが決定的に違うのはここです。

そのバラバラのファイル管理は、OSに対してはハードディスクと同じように振舞わねばならないので、SSDのメモリコントローラー以外ではできません。
それがコントローラーの管理能力を超えてしまったり、ブロック書き換えのための充分な空き領域がない状態だったりすると、当然ながら時間がかかることになってしまう…というのは容易に想像できる、ということ。
断片化が激しければウェアレベリングのためにも大量の空きブロックが必要ですし、それが足りなかったり極端に分散してたりすると遅くなるのは目に見えてます。
Windowsのデフラグも15%以上の空き領域がなければ、デフラグできないorとんでもなく時間がかかるのはご存知の通りですが、それと同じです。

要するに、荷物の多い部屋の片づけをするためには、「それ相応の空き場所」が必要だし、SSDはそれを普段から細切れであちこち動かしまくっている、ということ。
その「空き場所」がなくなったり、極端な断片化をしている時に「プチフリーズ状態」に陥るのじゃないか?ということです。

なんか間違ってますかね…?

投稿: ささもと | 2009/02/26 5:26:39

CFG さん
だいたい私の考えているところと同じようですね。
しかし、

>SLCは見てにやにやするものだそうです。

そんなもんなんですか?(笑)

おおつか さん
SSDの読み出しだけなら、おっしゃるとおりハードディスクと違い断片化の影響を受けにくい、と考えられます。
しかし、それだけで「パフォーマンスに影響がない」と決め付けるのは、いささか論理的とはいえません。
残念ながら、書き込みに関する観点が欠落しているように思います。
実際の利用シーンでは、SSDへの書き込みと読み出しを細かく交互に繰り返すことはかなり頻繁に発生しています。特にログファイルはしょっちゅう書き込みが発生します。
読み出しだけを延々やっているわけではありません。
ですので、実際の使用感とベンチマークの数値はイコールとは限りません。
だからこそ、「起動ドライブに書き込みが発生しないOSだったらいいのに」と書いています。
お気づきでないですか?

それに、ウェアレベリングは書き込みにおいて「意図的な」断片化をさせながら、客観的にSSDをHDDのように振舞わせる必要があるんです。TLBとは違うんです。

投稿: ささもと | 2009/02/26 6:00:31

SSDにおいて
・ブロック単位で消去が行われる
ことと
・ブロック単位でウェアレベリングが行われる
ことは分けて考えるべきではないでしょうか。

以下では書き込みについてのみ考えます。
ウェアレベリングがされない場合でも、ブロック境界を踏み越えた書き込みがされればその分書き込み効率が落ちます。
たとえばファイルシステムのクラスタサイズが4KBの場合には8KBを書き込むときでもその書き込み要求がブロック境界にまたがっていると2ブロックに対して書き込む必要があります。
フラグメンテーション(空き領域の断片化のこと)によって書き込む論理アドレスの範囲が広がると当然書き込み速度は低下するものと考えられます。
>細かい断片が多数のブロックに分散すると
とおっしゃっている部分です。

ここでウェアレベリングがされている場合を考えます。
コントローラレベルでのウェアレベリングはブロック単位で論理アドレスに物理アドレスをマッピングすることで実現されるようです。
ブロック単位でマッピングされるのでこれによって書き込むべきブロック数が増えることは無いように思います。
先の例で言うと8KBを書き込む際にブロック境界を越えているので2ブロックに対して書き込む必要がありますが、ウェアレベリングがされている場合でも書き込む必要があるブロック数は2ブロックです。
当然、書き込み先の探索などのオーバーヘッドがかかりますがその速度は断片化している、していないにかかわらず一定のはずです。

よって、断片化によって書き込み効率が低下する原因は「ブロック単位で消去が行われる」からであって「ウェアレベリングが行われる」からでは無いのではないでしょうか。

と先のコメントでは言いたかったのでした。
(長文失礼します)

上記をふまえるとこの問題の根本的な原因はSSDのブロックサイズに対してファイルシステムのクラスタサイズが小さいことではないでしょうか。
ですから、解決方法としては

>Windowsが全ての一時ファイルを別パーティションに追いやれるOS

ではなく
SSDのブロックサイズにファイルシステムのクラスタサイズを合わせてやることだと思います。
寿命はともかく書き込み速度に関しては低下しないはずです。
現状クラスタサイズを1MBに設定することは容量の少ないSSDでは難しいでしょう。
ただ、クラスタサイズをそれなりに大きくしてやることである程度改善が見込めるのではないでしょうか。

と妄想しますがSSD高くて買えないという・・・orz

TLBの例は機構がよく似ているということから引きました。
定性的に見いただければあながち間違ってもいない気がするのですが。

投稿: m11m | 2009/02/26 12:20:42

ウェアレベリングのマッピング単位はページ単位でした。
「SSDのウェアレベリングにより断片化が加速される」
上記納得しました。
ありがとうございました。

投稿: m11m | 2009/02/26 12:42:20

m11m さん
大体伝わったようで。
フラッシュメモリは他のメモリと全く異なるプロセスで書き込みがなされる、というのが大きなポイントです。

読み出しだけなら、おっしゃるとおりTLBと似たようなものですが、SSDの場合、書き込みにおいては、何度も書いてますがブロック単位での「意図的な断片化」を自ら行ないます。TLBはそれをしないと思いますが…。

そのうえ、ハードディスクと同じように振舞う必要があるため、自ら引き起こした「物理的に激しい断片化」をしているフラッシュメモリから、「論理的に激しい断片化」をしているハードディスクに見えるように再現しなければならないという、とんでもない無駄を強いられることになっています。
そこへ同時に「意図的な断片化」を起こすように、書き込み回数の管理をしながらあっちこっち書き込む場所を探して…なんてやってたら、そりゃ安物のコントローラーではお手上げでしょう。

だからこそ、システムドライブは書き込みをせず読み出しのみにして断片化を起こさないようにすれば、不要な無駄が発生せず、安価なコントローラーとMLCで、安全な運用が可能となります。
これはハードディスクでも同様で、書き込みがなければ断片化の進行はありえませんから、より安定したシステム運用が可能なはずです。

>SSDのブロックサイズにファイルシステムのクラスタサイズを合わせてやることだと思います。
>寿命はともかく書き込み速度に関しては低下しないはずです。

これは「ハードディスクと見せかけること」が前提の考え方ですので、根本的な解決とはなりえません。
システムドライブにログファイルや一時ファイルを書き込まなければならない必要などどこにもなく、書き込み用ドライブやキャッシュメモリを別に用意すれば済む話です。
システムドライブを読み出し専用・書き込み不可にできれば、ウイルス感染のリスクも激減しますし、いいことづくめなんですけどねぇ。

投稿: ささもと | 2009/02/27 4:54:11

なにやら専門的な話、勉強になります。

プチフリが出始めたトランセンドMLC32GB RAID0環境をデフラグしてみました。
結果改善はされましたが、解消はされませんでした。
このへんが空き領域の断片化が要因なのでしょうか。
フラグメントはデフラグの一因ではあるが、ほかにも要因はあることが体感できました。

しかしAVG8はログを吐き続けています。
で、ちょいとレジストリを調べてみました。
レジズトリをいじればログファイルの吐き出し場所が変えれそうな感じです。
AVGのログさえHDDに吐ければ、RAMDISKなどの活用でログによる断片化は結構減らせそうな感じです。

が、しかし、ハードルのやや高いシロモノであることには間違いありません(笑)

投稿: ぶいち | 2009/02/27 22:01:10

お疲れ様です。
このネタ、もうええやんと思われるかもしれませんが、図解でちょっと載せているところがあったのでURL貼っておきます。
よろしかったら見てみてください。
http://www.dosv.jp/other/0903/12_index.htm

投稿: kei | 2009/02/28 23:57:43

コメントを書く




※Spam対策のため、コメント公開時E-Mailは非表示となります。









※当面コメントは承認後の公開となります

« ひどい断片化にはデフラグを。でもこの断片化は…。 | トップページ | NTLDR is missing. は意外にも…。 »