自動TRIMと手動TRIM


13

私は現在、新しいTPでトリミングする方法を見つけようとしていますが、手動トリミングとオンライントリミングの違いについて疑問に思っていました。

私のセットアップは次のとおりです。

SSD Samsung 830、128GB、およびXubuntu 12.10を搭載したThinkPad T430sは、システムでトリムが機能するかどうかを確認するための出力です(http://wiki.ubuntuusers.de/SSD/TRIMから入手できます

root@eike-tp:~# sudo hdparm -I /dev/sda | grep -i TRIM
   *    Data Set Management TRIM supported (limit 8 blocks)

まず、オンライントリミングを試しました。TRIMを有効にする方法は?

破棄が挿入された私のfstab:

UUID=d6c49c17-a4f1-466c-9f7e-896c20db3bba /  ext4  discard,noatime,errors=remount-ro  0  1
# swap was on /dev/sda5 during installation
UUID=a0322f5f-c6c1-4896-863f-668f0638d8cf none  swap  sw  0   0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

私はそれが動作するかどうかをテストしようとしました(ただし、/ dev / sdaで試してもゼロは得られません)が、この方法はSSDタイプ2でのみ可能であり、タイプ3のようです。動作するかどうかわからない。

Ubuntuwiki(最初のリンク)は手動トリミングを推奨しているため、破棄する代わりに毎日cronjobを設定します。

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

ウィキの記事では、毎週または毎日を提案しています。今私の質問に:

自動トリムはどのくらいの頻度で実行されますか?推奨される頻度は?オンライントリミングと手動トリミングのどちらですか?

ご協力ありがとうございました

回答:


4

自動トリムと手動トリムの違いは、自動トリム(discardマウントオプションを使用)は、ファイルの削除後に同期時に解放されたブロックをトリムし、手動トリム(を使用fstrim)はすべての空き領域を一度にトリムすることです。

テスト中

自動トリムが機能しているかどうかをテストできる1つの方法は、大きなファイルを作成および削除することです。

user@host:/somewhere$ dd if=/dev/urandom bs=1M count=100 of=bigfile
user@host:/somewhere$ sync
user@host:/somewhere$ rm bigfile
user@host:/somewhere$ sync

自動破棄が機能している場合、手動で再度トリミングしても多くのブロックはトリミングされません。すでにトリミングされているはずです。sudo discard -vファイルシステムで実行し、トリミングされたブロックの数を確認します。

勧告

推奨されるもの:私の経験では、自動トリムはパフォーマンスを低下させます。ただし、これはおそらくハードウェアに依存します。ドライブで問題ない場合があります。

手動トリムを使用している場合、頻度については、SSDの空き領域の量と比較して、典型的なワークロードでデータを書き込む速度を考慮してください。削除されたデータでディスクがいっぱいになる前に、十分な頻度でトリムしたい場合。SSDの大部分が空き領域であるか、ディスクのワークロードが軽い場合は、時折(毎週またはそれ以上)トリミングするだけで十分です。SSDのほとんどがいっぱいになっている場合や、ビデオファイルを頻繁に編集する場合などは、より頻繁にトリミングする必要があります。


2

私はストレージエンジニアではないので、自分自身に関連する心配はありますが、スケジューリングについては役に立つ提案をすることができます。TRIMがSSDの面倒な摩耗を引き起こさないと確信しています。ディスクのブロックのリサイクルを開始する前に、最終的にディスクを処理する必要があるのはハウスキーピングです。バッチTRIMmingの最適なスケジュールは、使用方法によって異なります。書き込み頻度と空き領域の関数、私は考える必要があります。それを念頭に置いて、私はcronジョブfstrim -vを数日間手作業で取り外します。

私が思うトリックは、通常の書き込み操作を実行するために使用済みブロックをリサイクルする前にバッチTRIMが書き込み用にSSDを準備するスケジュールを作成し、パフォーマンスを低下させることです。24時間待ってからfstrim。空きスペースよりもはるかに少ないブロックをトリムしたと主張する場合、おそらくそれよりも少ない頻度でバッチTRIMmingが提供されます。



2

起動するたびにSSDをトリミングします。起動から20秒後に呼び出されるshファイルを作成しました。ログファイルではなくシステム通知でfstrimからの出力を表示することを選択しました。

最初にディレクトリにtrim.shファイルを作成します~/bin

#! /bin/sh
notify-send "TRIM" "$(sudo fstrim -v /)"

ここで、パスワードを入力する必要がないように、fstrimを実行するためのユーザー特権を与える必要があります。visudoでsudoersファイルを開き、次の行を追加します。

yourusername  ALL=(ALL) NOPASSWD: /sbin/fstrim

home/yourusername/binフォルダーを自分のフォルダーに含める場合$PATHは、パスワードを必要とせずにコマンド「trim」を使用してターミナルで手動でトリミングすることもできます。

これで、スクリプトを起動アプリケーションに追加し、遅延を指定できます。新しいsudoersエントリがロードされるように、再度ログアウト/ログインする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.