やみくもにデフラグしていませんか?SDカード,USBメモリではご法度です。

シェアする

2016062001

PCには、デフラグ (defrag) 機能があります。デフラグは、フラグメンテーション (fragmentation) を減らす処理を意味します。フラグメンテーションとは、日本語では断片化と言います。

ではフラグメンテーション(断片化)とは何か。
ユーザがファイルを書いたときに、メディアに記録する内容としては、ファイル名・ファイルサイズ・ファイルの更新日時などがあります。さらに一番大きい情報量としては、ファイルの中身です。
写真やビデオなどではファイルの大きさがかなり大きくなります。ファイル本体は複数のブロックに記録されます。(ブロックはそのメディアの記録単位です)
一般的には、複数のブロックは連続していると思いますが、ファイルの削除や、コピーなどを何度も繰り返していると、中途半端な連続サイズしかなくなり、連続したブロックを割りあてられなくなり、飛び飛びのブロックを使ってしまうことが発生します。これがフラグメンテーション状態です。

本当のところ、ファイルの本体だけでははなく、FATファイルシステムではファイル名の部分でもそのようなことが起きます。例えばディレクトリにもサイズが表示されますが、そのディレクトリの下のファイルを作ったり削除したりを繰り返すと、ファイルが1つもなくても、そのディレクトリのサイズは普通よりもかなり大きいことがあると思います。これもある意味、断片化しています。

先の話に戻り、ファイル本体を飛び飛びのブロックを使うことで何が問題なのかというのを説明します。
今はほとんどありませんが、Walkman CDがあったころ、音飛びというのがありました。それは、音楽のファイルは連続したブロックを使って書いているのに、CDを読み取り部分が振動などで別なところに飛んでしまうということで起きていました。 よって、CDなどでは、読み取りが連続でないと音が飛ぶという現象がおきたというのを聞いたことがあると思います。
今のストレージメディア(HDD、SSD、フラッシュメモリと呼ばれるすべて、光ディスクと呼ばれるものもすべて)は連続ブロックを読むのはいいのですが、不連続なブロックを読むとき、どうしても少し時間がかかることになります。それを感じない程度の時間か、または感じないように工夫しているかはそれぞれの機器に依存します。
フラッシュメモリなどの、SDカード・USBメモリも、不連続なブロックを読むとどうしても時間がかかってしまうことになります。メモリだから速いのでそんなことは光ディスクと比べて時間がかからないのではと思うかもしれません。しかし、実はフラッシュメモリは容量が多くなってきて、いろいろな機能(ウェアレベリングとよばれる平準化、MLC、TLCなどによる、ブロックサイズが大きくなってきていること)により遅くなってきています。SSDはこれを発生しないようにしています。しかしながら、SDカードやUSBメモリなど、電力容量が少なく、抜き差しされ易いメディアではフラッシュメモリが遅くなってしまうところを穴埋めできません。
どうしてもこれらSDカードやUSBメモリのメディアで断片化すると遅くなってしまいます。
したがって、SDカードやUSBメモリでは断片化が起きないように使うのがもっとも良いことになります。

どうやったら断片化が起きにくいか。
書いたファイルを削除しない、容量がいっぱいになったらバックアップをとってクイックフォーマットして必要なファイルだけ戻せばほぼ断片化も起きない状態となります。
カメラなどでは、細かく写真を消すことをしないで、いっぱいになる前までにバックアップを取りクイックフォーマットをする、という方がメディアにとって良いはずです。

デフラグは、不連続なブロックとなっているファイルを連続になるように再配置する処理です。一時的に空いている領域にファイルをコピーして、再配置となるので、少なくともファイル1回分の書き込みが多く発生します。場合によってはその数倍以上の書き込みが発生することがあります。

本題のやみくもにデフラグをしないほうが良い理由は、フラッシュメモリのへたり、または寿命が減るのが速くならないようにするためです。

SSDなどはいろいろな機能が入っていますのでこの程度でどうのということはないように作られていると思ってください。通常はフラッシュメモリではデフラグはご法度です。

Translate »