SSD用にOSを最適化するにはどうすればよいですか?


146

パフォーマンスを最適化し、ドライブの耐久性を最大限に高めるために、ソリッドステートドライブにUbuntuをインストールする前/実行中/実行後に実行する必要がある手順は何ですか?

回答:


108

ソリッドステートであろうと従来のドライブであろうと、Ubuntuがストレージデバイスを使用する方法を改善するために、いくつかの異なる技術をうまく使用しました。

SSDの場合は、読み取りによってドライブが摩耗することはないため、ドライブへの書き込み回数も最小限に抑えたいと考えています。

1)スワップファイルを管理する

コンピュータを休止状態にせず、すべてのアプリケーションを実行するのに十分なRAMメモリがある場合、理論上はスワップパーティションは必要ありません。

SSDとハードドライブが混在している場合は、スワップパーティションをハードドライブのみに配置してください。

2)読み取​​りタイムスタンプの書き込みなし(SSDおよびハードドライブに適しています)

オプションnoatimeおよびnodiratimeを使用してパーティションをマウントすると、ファイルおよびフォルダーを読み取るときにタイムスタンプの書き込みが停止します。muttなどのローカルメールサーバークライアントを使用しない限り、これらのタイムスタンプの書き込みは通常必要ありません。これが一般に悪い考えである理由は、タイムスタンプを更新するときにすべての読み取りが書き込みを生成するためです。これにより、SSDの寿命が短くなります。

/ etc / fstab構成ファイルを編集します(慎重に-fstab構成を壊すとシステムが動作しなくなる可能性があるため、バックアップをとってください)

cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

あなたがそれら(の/ home)を持っている場合は、あなたのルート(/)と他のパーティションを定義する行にテキストnoatimeオプションとnodiratimeを追加して、パーティション用のマウントオプションを編集- メモ:/ homeパーティションを持っている場合、それは単に変更で始まります何かを壊すことが心配な場合は、そのパーティション

# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 /               ext4    noatime,nodiratime,errors=remount-ro 0       1

# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home           ext4    noatime,nodiratime,defaults        0       2

これらの変更を有効にするには、マシンを再起動する必要があります

3)OSおよびアプリケーションからの書き込みを最小限に抑える

ミッションクリティカルな製品サーバーを実行していないと仮定すると、何か問題が発生した場合、ほとんどの人はログを見ません(特に、ほとんどのUbuntuユーザーにとって重大なエラーはまれです)。したがって、すべてのログがSSDではなくRAMメモリに書き込まれるようにUbuntuを構成できます。

注:使用するすべてのソフトウェア(特にApache Webサーバーなど)をインストールした場合にのみ、次の変更を行ってください。そうしないと、/ var / logにディレクトリが見つからないという問題が発生する可能性があります

このアプローチの背景については、ubuntu-eee.comでフラッシュドライブの寿命を延ばすをご覧ください。

エディターで/ etc / fstabを開きます(/ etc / fstabファイルをバックアップしたと仮定)

gksudo gedit /etc/fstab

fstabファイルの最後に次の行を追加して保存します。

# Uncomment these after all server based applications installed - eg. apache
#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
#tmpfs /var/log/apt tmpfs defaults,noatime 0 0
# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0

これらの変更を有効にするには、マシンを再起動する必要があります

こちらもご覧ください:


7
ログなどの最後のビットについては、tmpfs行にコメントが付けられていますが、なぜそれらの行を追加すると違いが出るのでしょうか?コメントなしで追加する必要がありますか?
オックスウィビ

8
これが速度を改善することを意図しているかどうかは理解できますが、あなたが書いたもののほとんどはSSDの寿命を改善することを意図しているようです。最新のSSDでは、これらの改善は無意味なのではないでしょうか?さらに、RAMの使用量が増えます!(たとえば、この他の回答に記載されているリンクを参照してください)
チャンホSuh

7
2)の必要はありません。relatimeは書き込みを非常にうまく防止し、カーネル2.6.30以降デフォルトでアクティブになっています。
ミハイカポタ

3
@MihaiCapotăのコメントに追加するために、noatimeが必要ない理由に関する詳細を含むサーバー障害の回答があります。
カス

1
彼らは、ここでnoatimeはnodiratimeを意味すると言うので、前者のオプションを追加するだけで十分です。
ヤルノ

92

SSDの寿命

一般的に私は気にしません-SSDの寿命についての心配は誇張されています。あなたが本当に心配するべきでない理由に関するこの詳細な記事を読むことができます。要するに、最新のSSD内の回路はウェアレベリングを管理し、彼らはあなたよりもはるかに優れた方法を知っています。

この記事では、80M / sの連続速度で書き込みを受信して​​いるSSDの寿命を計算しています。人生は51年です。これは2007年のテクノロジーに基づいています-SSDの寿命は現在より長くなります。また、ほぼ確実に1日24時間80M / sでSSDに書き込むことはありません。

SSDパフォーマンス

ただし、時間の経過に伴うパフォーマンスの低下が問題になる場合があり、TRIMが解決策です。2つのオプションがあります

  • 自動/オンラインTRIM、別名廃棄
  • 手動トリム

あなたはする必要が自動TRIMを自分で有効にします。(基本的に、discardext4を使用している場合は、マウントオプションにオプションを追加します。)ファイルを削除するときに、廃棄オプションがシステムの速度を低下させるというブログ記事を見つけました。

fstrimを使用して、手動で(またはcronジョブで)実行することができます。パーティションが1つだけの場合、必要なことは次のとおりです。

sudo fstrim /

fstrimは11.10以降でのみ利用可能です。古いシステムの場合、wiper.shスクリプトが必要になります。/usr/share/doc/hdparm/contrib/wiper.sh.gz私のシステムでスクリプトを見つけました。

疑問に思っている場合、Wikipedia説明されているように、TRIMが解決する問題は次のとおりです。

SSDはデータをページにグループ化されたフラッシュメモリセルに保存し、ページ(通常は各4 kB)がブロック(通常はブロックあたり128ページ、合計512 kB)にグループ化されます。NANDフラッシュメモリセルは、空の場合にのみ直接書き込むことができます。データが含まれていると見なされる場合、書き込み操作を確実に実行する前に、コンテンツを最初に消去する必要があります。SSDでは、書き込み操作はページレベルで実行できますが、ハードウェアの制限により、消去コマンドは常にブロック全体に影響します。結果として、SSDメディアへのデータの書き込みは空のページを使用できる限り非常に高速ですが、以前に書き込まれたページを上書きする必要がある場合は大幅に遅くなります。再度書き込む前にページ内のセルを消去する必要がありますが、ブロック全体のみを消去できるため、上書きによって読み取り-消去-変更-書き込みサイクルが開始されます。ブロック全体の内容を保存する必要がありますフラッシュメディア上で効果的に消去される前にキャッシュに保存されると、キャッシュ内の上書きされたページが変更され、キャッシュされたブロックが最新の状態になります。この現象は書き込み増幅として知られています。


8
複数回投票できるといいのですが。これはその答えの1つです。そのリンクは私が長い間持っていた心配を解決しました。ハミッシュに感謝します。
ルイスアルバラード

storagesearch.comの興味深い記事。デートがしたい!それでは、上記の回答は、SSD所有者がTRIMを除き、最初の回答で提案を気にする必要がないことを意味しますか?ファイルアクセス時間はあまり必要ありませんが、2Gのメモリでは、いくつかの写真編集ソフトウェアとChromeなどのメモリを集中的に使用する他のプログラムを実行するときに、スワップパーティションを使用すると便利です。
ローレンスI.シデン

@lsiden:この記事では「後半:-2008年5月」については途中で言及しています。そして、あなたはあなたが最初の記事の他のすべてのことを心配するべきではないことは正しいです。TRIMを有効にして速度を楽しんでください:)
Hamish Downer

2
この記事ではエンタープライズグレードのSSDについて言及しています。彼は200万サイクルの書き込み耐久性を使用しています。民生用SSDのサイクル数は約3000〜5000です。3000サイクルの128 GB SSDでは、57日間の連続80MB / s書き込みが可能です。
LeartS

1
Ubuntu 14.10以降では、fstrimがサポートするすべてのSSDでTRIMmingが毎週自動的に行われます。ref。
KrisWebDev

20

いくつかのポイントがあります:

アライメント:

しばしば指摘されるのは、パーティションの正しい配置です。これはSSDのブロックサイズと等しくなければなりません。安全にプレイし、パーティションをMiBの境界に揃えてください。Ubuntuインストーラーのパーティションツール(MiBではなくMBを使用)でこれを行うことはできませんが、ライブCDを起動し、Gparted(MiBを使用)を使用し、[インストール]をクリックして設定したパーティションを使用できます。

適切なスケジューラー:

重要なポイントはあるべきスケジューラnoopです。このスケジューラーは、カーネルパラメーターelevator=noopまたはecho noop > /sys/block/sda/queue/schedulerrc.localのエントリを介して設定できます。

マウントフラグ:

お勧めnoatimeしますdiscard

Tmpfs

tmpをramdiskに置くと、ssdの寿命を延ばすことができます。これを使用するには、fstabに次の行を追加します。none /tmp tmpfs defaults 0 0

一般的に、このトピックをさらに深く掘り下げたい場合は、この優れたwiki記事をお勧めます。


16

UbuntuでのSSDの高速チューニングコース:

ファイルシステム

Arch wiki では、SSDファイルシステムに適したオプションほとんどありません。そのうちの1つは不安定で、他のオプションはext *のものです。ext4は最良の選択の1つだと思います。
注:ext4の場合、discardマウントオプションを使用できます。

fstab

# <file system> <mount point> <type> <options>                                  <dump>  <pass>
proc            /proc         proc   nodev,noexec,nosuid                        0       0
tmpfs           /tmp          tmpfs  nodev,nosuid,noatime,mode=1777             0       0
/dev/sda1       /             ext4   defaults,noatime,discard,errors=remount-ro 0       1
/dev/sda2       /home         ext4   defaults,noatime,discard,user_xattr        0       2
/dev/sda3       /windows      ntfs   defaults,noatime,discard,umask=007,gid=46  0       0

ここで重要なことはほとんどありません:

  • メモリが2以上のシステムでは、RAMに/ tmpを配置することが望ましいです。
  • swapパーティションなし。現代のマシンにはかなりの量のRAMがあるため、今日では休止状態にのみ必要です。
  • noatimeおよびdiscardオプション。情報はこちらです。

スケジューラー

ほとんどのLinuxディストリビューションではcfq(完全に公平なキューイング)であるデフォルトのスケジューラーから、SSDのnoopまたはdeadlineスケジューラーへの切り替えを検討してください。たとえば、noopスケジューラを使用すると、データが物理的にディスク上のどこに存在するかを考慮せずに、要求が受信された順に単純に処理されます。このオプションは、SSDのすべてのセクターでシーク時間が同じであるため、SSDにとって有利であると考えられています。

以下を/etc/rc.localに追加します。

# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler

情報

1 2


2
なしスワップ、およびと/tmpRAMで、それが取得するのは非常に簡単ですメモリのうち多くのプログラムが使用して、状況/tmp(例えば収納スペースとしてBraseroの DVDイメージを保存するため)。
手配

5
あんまり。tmpfsデフォルトでは、RAMの10%です。sizeただし、オプションを使用してサイズを調整できます。
アンドレイスカイニコフス

1
Braseroのは悪い例ですレナート・ポエッタリングが彼のブログで説明しているように、それは最初の場所でそれを行うべきではありません0pointer.de/blog/projects/tmp.html
LiveWireBT

8

4)自動TRIMを有効にする

SSDがサポートしている場合は、自動TRIMも有効にする必要があります(ここで説明します)。


3

この行をfstabに追加しません。var/ tmpフォルダーは再起動後も存続するためのものであり、問​​題を引き起こす可能性があります。

tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

新しいシステムを構成するとき、何かが起こった場合、すべてのtmpフォルダーをこのようにコメント化したままにしておきます。ログなどを確認できます。次に、メインシステムのセットアップが完了したら、コメントを解除しますが、上記の行を追加することはありません。使用するものは次のとおりです。

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
tmpfs /var/log/apt tmpfs defaults,noatime 0 0

また、システムに問題がある場合は、それらをコメントアウトして、再起動後またはロックアップ後の強制再起動後でもすべてをチェックできるようにします。

また、nodiratimeは必要ありません。noatimeオプションは両方を自動的に処理します。

TRIMに関しては、もしあなたのhw / swがそれをサポートしていれば、それは必須です、私はfstabでdiscardを使いません。私のPCは常にオンになっているため、これを行うことにより、毎日cronを作成します。

gksu gedit /etc/cron.daily/trim

次に、これをファイルに追加して保存します(ssdに別の/ homeパーティションがない場合、またはssdに他のパーツがある場合は、これを変更する方法を理解する必要があります。

#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG

次に、ファイルを実行可能にします:

sudo chmod +x /etc/cron.daily/trim

rc.localも次のように編集します。

gksu gedit /etc/rc.local

これを「出口0」の上と最後の#の下に追加します。

# Modification for SSD
# you may want to add more folders to be checked/created to this list
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do
  if [ ! -e /var/log/$dir ] ; then
    mkdir /var/log/$dir
  fi
done

ここからコピーして貼り付けることができるので、エラーはありません。素人にとっては、強打から見えますが、そうではありません。

また、ssdドライブの10%を未フォーマットのままにしておくと、寿命を延ばすことができます。私はこれをあまり読みませんでしたので、そうすることが理にかなっているなら保証できません。

これは最高のガイドです。彼は1日間Googleをざっと読んでガイドを思いついたわけではありません。こちらをご覧ください。


通常の/ var / logの下にあるすべてのディレクトリを/etc/rc.localに追加するという考えですか?ディレクトリを追加しないとどうなりますか?新しいパッケージをインストールする場合、追加するディレクトリがさらに必要になると思います。シャットダウン中に/etc/rc.localを更新して、次回起動時にすべてのディレクトリを作成できますか?
jarno

ubuntu 14.04以降では、デフォルトでファイルシステムを毎週トリムするように設定されたcronジョブ/etc/cron.weekly/fstrimがあります。14.04については、こちらを参照してください。Ubuntu 15.10は/sbin/fstrim --all || truefstrimスクリプトで使用します。
ジャルノ

少なくともディレクトリ/ var / log / installerには、Xubuntu 15.10にubiquity-apt-cloneというサブディレクトリがあります。サブディレクトリを再帰的に作成する必要がありますか?
jarno

3

TRIMを使用すると、オペレーティングシステムはSSDに、使用中と見なされなくなったデータブロックや内部で消去できるデータブロックを通知できます。トリミングにより、SSDはガベージコレクションのオーバーヘッドを処理できます。そうしないと、関連するブロックへの将来の書き込み操作が大幅に遅くなります。1

Ubuntu 14.04では、SSDを定期的に自動トリミングする新しい機能がutil-linuxパッケージに追加されましたが、一部の安価なSSDはTRIMの実行時にブロックすることもあるため、デフォルトでTRIMが有効になっているのはIntelおよびSamsung SSDのみです。2/etc/cron.weekly/fstrim Ubuntu 14.04 の内容:

#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e

# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g.  https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all

1 https://en.wikipedia.org/wiki/Trim_%28computing%29
2 トリムはどのように有効になりますか?



2

わかりました「短い話」:

  1. はい。通常のhddのようなものです。以下に概要を示します。
  2. 私がカバーするいくつかの特別なエキストラ。
  3. 結構いい。サーバーで使用します。

ext4インストール中にフォーマットし、1 GBまでの小さなスワップを作成します。インストール後、fstabを編集しsudo gedit /etc/fstabて次の行を追加します

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

これにより、一時ファイル用のRAMドライブが作成され、エージングが低下します。またnoatime,nodiratime,discard、デフォルトの後にext4行に追加します。これにより摩耗も減少し、TRIM機能が有効になります。保存して再起動します。


どうもありがとう。私はいつもデュアルブートLinuxを使用してきたので混乱しています。新しいSSDにLinuxをインストールするのは初めてなので、プロセスとストレージの両方が私にとって新しいものです。でも、UbuntuをHDDにインストールするのと同じようですね。
ヴァルン

同じです。インストール時にパーティションテーブルを作成するように求められる場合がありますが、それはワンクリックです。
gajdipajti

もう1つの質問、DellラップトップのBIOSに変更を加える必要はありますか。今日SSDとUbuntuをインストールしますか?
ヴァルン

いいえ、最新のBIOSはタイプハードディスクを自動検出します。
-gajdipajti

どうもありがとう、非常に役立つ、明日何が起こるかをお知らせします:)
Varun

2

いくつかの良い情報を微調整してからのUbuntu、LinuxのミントのためにSSDを最適化する方法がありますhttp://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.htmlあなたがかもしれません興味がある

プリロードを使用する

Ubuntu、Linux Mint、またはDebianベースのディストリビューションにプリロードをインストールするには

# apt-get update && apt-get install preload

スワップをオフにします

swappiness設定を変更するには:

$ su -
# nano /etc/sysctl.conf

そして、この行をsysctl.confファイルに追加します。

vm.swappiness = 10

2

UPSが必要です。/etc/sysctl.confファイル内

vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10

構成ファイルデーモンを見つけます。通常は/etc/syslog.confили /etc/rsyslog.d/で、フォームのすべてのパスは、/var/log/way..before mail.errの前にマイナス記号( "-")を書き込むことで変更します。

/var/log/mail.err


mail.err -/var/log/mail.err

FS btrfsを使用し、-o ssdオプションを使用します

詳細http://vasilisc.com/speedup_ubuntu_eng#speedup_fs


1

Ubuntu、Linux Mint用にSSDを調整および最適化する方法

TRIMを有効にする

TRIM(Trimコマンドは、使用されていないSSDブロックをOSに通知し、クリアできます)

何か問題が発生した場合に備えて、まずfstabをバックアップします。

# cp /etc/fstab ~/fstab.bk

fstabファイルを編集

# nano /etc/fstab

ext4の後、ssdドライブまたはパーティションに廃棄を追加します

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1
Adding noatime and nodiratime

noatimeとnodiratimeは、Linuxファイルシステム用のLinuxのマウントオプションです。noatimeはファイルシステムのatime更新を無効にし、nodiratimeはディレクトリシステムのatime更新を無効にします。noatimeとnodiratimeを追加すると、ssdの負荷が大幅に削減され、パフォーマンスが向上します。

fstabファイルを編集

# nano /etc/fstab

ext4の後に、sadドライブまたはパーティションにnoatime、nodiratimeを追加します

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1

0

ブート時に読み込まれるものだけをSSDに読み込むことをお勧めします。読み込みに時間がかかるアプリケーションや、通常のHDDにあるデータやログ、その他の重要ではないもの。ブート時にSSDからの大きなinitramfsであり、ssdへの変更を書き戻しません。これには、このパーティションへの変更が永続的ではないという利点があります。これは、ブートシステムの保護のようなものです。

たとえば、SSDにパーティション/、/ etc、/ usr、/ boot、/ lib 32/64を配置します。

/ opt、/ bin、/ sbin、/ root、/ home、さらにHDDのスワップ(RAMを増やす!!!)

ウィキペディアによると:

Linuxカーネルは、バージョン2.6.33以降のTRIM機能をサポートしています。「discard」パラメーターを使用してマウントされた場合、ext4ファイルシステムがサポートされます。最新のディスクユーティリティ(およびそれらを使用するインストールソフトウェア)も適切なパーティションアライメントを適用します。

バックアップには多くの方法がありますが、最も簡単なのは(r)syncとcronジョブです。


各場所が何に使用されているか知っていますか?ほとんどの読み取り専用であるため/root/homeを除くすべての言及された場所、およびスワップは速度のためにSSDに置かれるべきです。速度を上げるため/varに、SSDも装着してください。
レーケンシュタイン

高速化する対象とSSDの大きさによって異なります。120 GBで十分ですが、大丈夫ですが、SSDが小さい場合は簡単に境界に到達できます。
マイケルK

/Kubuntu Oneiric のパーティションはSSDで4.5GBを使用します。/マイナスには20GBで十分です/home。ファイルシステムのレイアウトを微調整し、複数のパーティションに広げる努力は価値がありません。
レーケンシュタイン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.