Ubuntu 18.04のインストールでTRIMは有効になっていますか?


38

14.10以降、毎週TRIMがデフォルトで有効になっていることを知っています。出典:TRIMを有効にする方法 ただし、実行sudo nano /etc/cron.weekly/fstrimすると空のファイルが返されます。またtail -n1 /etc/cron.weekly/fstrim、このファイルが存在しないと言います。

実行lsblk -DするDISC-GRANとゼロ以外の値が返されるDISC-MAX ため、SSDでTRIMがサポートされます。毎週のTRIMはSSDで実際に有効になっていますか?

Kingston SSDを使用しています

回答:


59

18.04 ではデフォルトトリム(fstrim / discard)が毎週実行されるようになっています
破棄操作をサポートするデバイスにマウントされているすべてのファイルシステムで実行するように設定されています。

これは、CRONではなく、systemdを介して管理されるサービスsystemctlです。

ビューのステータスfstrim.timer

$ systemctl status fstrim.timer
● fstrim.timer - Discard unused blocks once a week
   Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled)
   Active: active (waiting) since Thu 2018-07-05 05:45:11 BST; 4h 42min ago
  Trigger: Mon 2018-07-09 00:00:00 BST; 3 days left
     Docs: man:fstrim

スタート/ストップ/再起動fstrim.timer
(起動状態を変更しません)

$ sudo systemctl [start/stop/restart] fstrim.timer

fstrim.timerの有効化/無効化:(
スタートアップへの追加/スタートアップからの削除、現在のアクティブステータスは変更しません)

$ sudo systemctl [enable/disable] fstrim.timer

fstrim.timer構成を表示します

$ systemctl cat fstrim.timer
# /lib/systemd/system/fstrim.timer
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim

[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target

fstrim.service構成を表示します

$ systemctl cat fstrim.service
# /lib/systemd/system/fstrim.service
[Unit]
Description=Discard unused blocks

[Service]
Type=oneshot
ExecStart=/sbin/fstrim -av

:ExecStart = / sbin / fstrim -av
ここで、
-a、破棄操作をサポートするデバイス上のマウントされたすべてのファイルシステムをトリミングします。
-v、詳細な実行。潜在的な破棄のために、ファイルシステムからブロックスタックを介してデバイスに渡されたバイト数を出力します。

関連するsystemdジャーナルエントリを表示します

$ journalctl -u fstrim.timer
Jul 04 14:18:41 user-laptop systemd[1]: Started Discard unused blocks once a week.
Jul 04 21:59:26 user-laptop systemd[1]: Stopped Discard unused blocks once a week.
etc...

$ journalctl -u fstrim.service
Jun 25 10:59:44 user-laptop systemd[1]: Starting Discard unused blocks...
Jun 25 10:59:48 user-laptop fstrim[955]: /: 92.5 GiB (99335237632 bytes) trimmed
Jun 25 10:59:48 user-laptop systemd[1]: Started Discard unused blocks.
-- Reboot --
Jul 02 04:27:41 user-laptop systemd[1]: Starting Discard unused blocks...
Jul 02 04:27:46 user-laptop fstrim[1032]: /: 92.3 GiB (99150807040 bytes) trimmed
Jul 02 04:27:46 user-laptop systemd[1]: Started Discard unused blocks.
etc...

2
参考までに、whenは/lib/systemd/system/fstrim.timerOnCalendar=weekly)で、whatは/lib/systemd/system/fstrim.serviceExecStart=/sbin/fstrim -av)で制御されます。
モイヤドワール

1
素晴らしい投稿!専用のsystemctlコマンドで「cat」コマンドを変更することをお勧めします:cat /lib/systemd/system/fstrim.timer-> systemctl cat fstrim.timer。一般的に、そのコマンドは有効なサービスのバージョンを表示します。これは/ lib / systemdの下にあるかもしれませんが、/ etc / systemdの下にある修正されたバージョンかもしれません。
バナジウム

アクティブな場合、すべてのドライバーに対して実行されますか?たとえば、1つのSSDにUbuntuをインストールしていますが、ext4パーティションとして別のSSDをマウントしています。両方を自動的にトリミングしますか?(ステータスはアクティブであると言います)
エドゥアルド

オンデマンドで有効にする方法は?(たとえば、今、私は昼食に行きたいです)
剃刀

次のコマンドを使用して、systemdサービスを手動で開始/停止/再起動できます。$ sudo systemctl [start / stop / restart] [サービス名] .service
Broadsworde

2

編集:コメントを読んでください、この答えは2つのメカニズムを混ぜています!

古い答え

@Broadswordeの答えを完成させるために追加する必要がある重要なポイントがあります。

私のラップトップでは、すべてのタイマーとサービスが有効になっていますが、fstrimログエントリがありませんでした(のみ:starting… stopping… reboot… starting…など)。

足りないステップ

ファイルシステムを廃棄可能としてマークする必要がある場合があります。ファイルシステムが破棄可能としてマークされていない場合、トリムはそれをスキップします[1]。

ファイルシステムを破棄可能としてマークするには、2つのオプションがあります。

1.オプション: tune2fs

sudo tune2fs -o discard /dev/mapper/ubuntu--vg-root

これにより、破棄オプションがext4デバイスのデフォルトとして設定されます。暗号化を使用しない場合は、/dev/sda代わりに試してください。

2.オプション: /etc/fstab

discard既存のマウントオプションにオプションを追加または追加してください。たとえば、次のようなものです。

/dev/mapper/ubuntu--vg-root / ext4 discard,relatime,errors=remount-ro 0 1

この後のみ、タイマーサービスは実際に何かを行います。

脚注

  • [1]実際には、デバイスはTRIM操作をサポートする必要があります。しかし、Linuxでは、これはファイルシステムフラグです。それでも、ファイルシステムが実行されているデバイスは、TRIM操作をサポートする必要があります。デバイスがサポートしているかどうかを確認するには、次を使用しますsudo hdparm -I /dev/sda | grep -i TRIM

私のインストール(元々18.10、後で19.04にアップグレード)では、ファイルシステムの破棄オプションが有効になっていませんでした。システムでSSDのみを使用しています。また、機械的なHDはありませんでした。tune2fsで有効にしました。システムがデフォルトでそれらを有効にしなかった理由についての考えや説明はありますか?
FedonKadifeli

1
これは正しいとは思いません。discardオプションは、ファイルがファイルシステムから削除されるときにブロックをトリミングします。systemdサービスは、ファイルシステム上の未使用ブロックを定期的に削除します。これらは異なるものです。破棄オプションは一部のシステムのパフォーマンスに悪影響を与える可能性があるため、定期的なシステムの方が間違いなく優れています。
xioxox

1
@xioxoxが正しい。Recent mountマニュアルページには、«discard関数が頻繁にコマンドを発行して、ブロックデバイスがファイルシステムによって解放されたスペースを再利用できるようにすることが記載されています。[...] パフォーマンスに大きな影響を与える可能性があります。(fstrimコマンドを使用して、ユーザー空間からバッチトリムを開始することもできます。)»
Fabio A.

おかげで、私は答えを調整して編集しました。この回答に引き続き賛成票を投じないでください。あなたのコメントは価値があるので、私はそれを維持したいと思います!
ベン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.