UbuntuはデフォルトでSSDをトリムしません
Ubuntu 14.04では、UbuntuはデフォルトでSSDのTRIMを有効にしたいと考えています。言い換えれば、UbuntuはまだTRIMを使用していないので、SSDは時間の経過とともに遅くなっています。しかし、なぜUbuntuはすでにTRIMを使っていないのでしょうか。?
このニュースは、Ubuntuや他のLinuxディストリビューションがすでにTRIMを使用していると想定していた多くの人々にとって驚くべきことだろう。 TRIMはSSDが時間の経過とともに遅くなるのを防ぎ、SSDのメンテナンスに必要な部分です。.
なぜTRIMが重要なのか
TRIMがなぜ以前に重要なのかを説明しました。古い磁気ハードドライブ上のファイルを削除すると、コンピュータはそのファイルを単に削除済みとしてマークします。ファイルのデータはハードドライブに残ります - 削除されたファイルを回復できるのはそのためです。それは彼らのセクタを新しいデータで上書きするときコンピュータは最終的に削除されたファイルを上書きするでしょう.
ソリッドステートドライブ(SSD)の動作は異なります。 SSDにファイルを書き込むときはいつでも、コンピュータは最初にデータを書き込んでいるセクタのデータをすべて消去しなければなりません。 1回の操作でセクタを単に「上書き」することはできません。最初に消去してから、空のセクタに書き込む必要があります。.
これは、SSDが時間の経過とともに遅くなることを意味します。 SSDのセクターへの書き込みは、最初は早くなるでしょう。いくつかのファイルを削除して、もう一度それを書き込もうとすると、時間がかかります。これは、グーグルのオリジナルNexus 7が時間の経過とともに非常に遅くなった理由の大部分です。 GoogleはAndroid 4.3にTRIMを実装することでこれを修正しました。 (AndroidもLinuxカーネルを使用しています。)
TRIMを有効にすると、オペレーティングシステムはファイルを削除するたびにSSDに通知します。ドライブはファイルの内容を含むセクタを消去することができるので、セクタへの書き込みは将来的には速くなるでしょう。.
言い換えれば、あなたがTRIMを使用していない場合、あなたのSSDは時間が経つにつれて遅くなります。そのため、Windows 7以降、Mac OS X 10.6.8以降、Android 4.3以降などの最新のオペレーティングシステムでTRIMが使用されています。 TRIMは2008年12月にLinuxに実装されましたが、Ubuntuはデフォルトでは使用していません.
デフォルトでUbuntu TRIMを実行しない理由?
UbuntuがデフォルトでSSDをTRIMしない本当の理由は、LinuxカーネルのTRIMの実装が遅く、通常の使用ではパフォーマンスが低下するためです。.
Windows 7および8では、Windowsはファイルを削除するたびにTRIMコマンドを送信し、ドライブにファイルのビットを直ちに削除するように指示します。ファイルシステムが「破棄」オプションでマウントされている場合、Linuxはこれをサポートします。しかし、Ubuntuや他のディストリビューションはパフォーマンス上の理由からこれをデフォルトでは行いません。.
OpenSUSEのWikiには、私たちよりもLinuxカーネルに精通している開発者からの詳細な情報が含まれています。それは少し時代遅れです、しかしそれがパフォーマンスに関してはまだ本当かもしれません:
「11.2、11.3、および11.4でのリアルタイムトリムのカーネル実装は最適化されていません。スペックトリム範囲のベクトル化されたリストをサポートするトリムを要求します、しかしカーネル3.0の時点でトリムは単一の廃棄/トリム範囲と現在の2011年中旬のSSDでカーネルによってのみ呼び出されます。 3.1以前のカーネルでカーネルをリアルタイム廃棄サポートを使用する理由はいくつかあります。カーネル廃棄機能が現在の世代のSSDで有益に機能するように最適化されるのはいつかはわかっていません。」[Source]
言い換えれば、LinuxカーネルはそのようなリアルタイムのTRIMコマンドを、遅くて最適化されていない方法で処理します。 Windowsと同じようにTRIMを有効にする、つまり「破棄」オプションを使用すると、TRIMがまったく使用されていない場合よりも実際にシステムが遅くなります。 Ubuntuや他のLinuxディストリビューションはあなたのファイルシステムのためにデフォルトで「破棄」を有効にしません、そしてあなたはどちらもすべきではありません.
別の方法があります
Linuxカーネルのリアルタイムの「破棄」TRIM操作はうまく機能しないため、Ubuntuを含むほとんどのLinuxディストリビューションは自動的にTRIMを使用しません。 AndroidもAndroid 4.3までTRIMを使用していませんでした.
しかし、TRIMを使う別の方法があります。ファイルが削除されるたびに単純にTRIMコマンドを発行するのではなく、FITRIM機能を使用することができます。これはfstrimコマンドを介して行われます。基本的に、fstrimコマンドはファイルシステムを分析し、どのブロックが不要になったかをドライブに通知するので、ドライブはそれらを破棄できます。これにより、TRIMはリアルタイム操作からスケジュールされたタスクに変わります。つまり、fstrimはTRIMをcronジョブとして実行できます。これをしない理由はありません。何も遅くなりません。これは、システムがスケジュールに従って実行しなければならない別の清掃タスクです。.
実際、これはGoogleがAndroid 4.3で採用したアプローチです。 Androidは単にファイルシステムをトリムするために時々fstrimタスクを実行し、それらすべてのオリジナルのNexus 7sを遅くしていた問題を修正します.
Ubuntuはシステムに定期的にfstrimを実行させることでTRIMを自動的に有効にすることも検討しています。これはUbuntu 14.04の一部となることを願っていますので、UbuntuユーザーはSSDパフォーマンスの低下に対処したり、fstrimを自分で実行したりする必要はありません。.
TRIMを有効にする方法
通常の使用ではパフォーマンスが低下する可能性があるため、「破棄」操作でファイルシステムをマウントすることはお勧めしません。ただし、fstrimコマンドを時折実行するか、スケジュールに従ってfstrimを実行する独自のcronjobを作成することで、自分でTRIMを使用することができます。.
UbuntuでSSDをトリムするには、端末を開いて次のコマンドを実行してください。
sudo fstrim -v /
SSDのパフォーマンス低下を防ぐために、時折上記のコマンドを実行することができます。実行する頻度は、SSDからファイルが削除される頻度によって異なります。 TRIMをサポートしていないドライブでコマンドを実行しようとするとエラーが発生します。.
TRIMを定期的に実行したい場合は、単純にfstrimコマンドを実行するcronjobを作成できます。これは、これを自動的に行う裸のcronジョブを作る方法です。.
まず、次のコマンドを実行して、root権限でnanoテキストエディタを開きます。
sudo nano /etc/cron.daily/fstrim
ファイルに次のコードを入力します。
#!/ bin / sh
fstrim /
Ctrl + Oを押してファイルを保存し、Enterを押して確認します。ファイルを保存した後にCtrl + Xを押してnanoを閉じる.
最後に、次のコマンドを実行してスクリプトを実行可能にします。
sudo chmod + x /etc/cron.daily/fstrim
他のシステムメンテナンス作業と同様に、Ubuntuはスケジュール通りにfstrimを実行します。.
TRIMは最新のファイルシステムでのみサポートされているので、ext4やext2やext2ではなく、ext4のようなものが必要になるでしょう。使用しているファイルシステムがわからなくても心配しないでください - デフォルトではext4が選択されています.
このアドバイスの多くは他のLinuxディストリビューションにも当てはまります。 Linuxはずっと以前にカーネルにTRIMサポートを実装していましたが、Linuxディストリビューションの典型的なユーザのためにそのTRIMサポートはデフォルトで一度も有効にされたことがないようです.
画像クレジット:FlickrのMace Ojala(トリミング)