Автоматичний TRIM проти TRIM вручну


13

На даний момент я намагаюся дізнатися, як обрізати свою нову ТП і цікавився різницею ручної / онлайн-обрізки.

Ось моя настройка:

ThinkPad T430 з SSD Samsung 830, 128 ГБ і Xubuntu 12.10, ось декілька виходів, щоб перевірити, чи буде обробка працює на моїй системі (отримана звідси: 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 (перша посилання) рекомендує обробляти вручну, тому я встановлюю щоденну роботу без заміни:

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

у статті вікі пропонується щотижня або щодня. Тепер до моїх запитань:

Як часто виконується автоматизована обробка? Як часто рекомендується? Інтернет проти ручної обрізки?

Дякую за твою допомогу

Відповіді:


4

Різниця між автоматичною та ручною обрізкою полягає в тому, що автоматична обробка (за допомогою параметра discardкріплення) обрізає звільнені блоки під час синхронізації після видалення будь-якого файлу, тоді як ручна обробка (за допомогою fstrim) обрізає весь вільний простір відразу.

Тестування

Один із способів можна перевірити, чи працює автоматична обробка - створити та видалити великий файл:

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 залежатиме від використання; Функція частоти запису і вільного простору, я повинен подумати. Маючи це на увазі, я б відключив роботу крон і fstrim -vвручну протягом декількох днів.

Трюк, який я думаю, полягає в тому, щоб скласти графік, коли пакетна TRIM готує SSD для запису перед тим, як використані блоки повинні бути перероблені, щоб виконати нормальну операцію запису, тим самим погіршуючи продуктивність. Зачекайте 24 години і fstrim. Якщо він стверджує, що обрізав набагато менше блоків, ніж вільний простір, ви, мабуть, добре обслуговували пакетне TRIMming рідше, ніж це.



2

Я обробляю свій SSD на кожному завантаженні. Я створив файл sh, який викликається через 20 секунд після запуску. Я вирішив відображати вихід із fstrim у системному повідомленні замість файлу журналу.

спочатку створіть trim.shфайл у своєму ~/binкаталозі

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

Тепер нам потрібно надати користувачеві привілеї для запуску fstrim, тому нам не потрібно вводити пароль. Відкрийте свій файл sudoers візуально та додайте наступний рядок:

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

Якщо ви додасте свою home/yourusername/binпапку до своєї, $PATHви також можете вручну обрізати в терміналі команду "обрізати" без необхідності введення пароля.

Тепер ви можете додати свій скрипт до запуску програм і вказати затримку. Вам потрібно знову вийти з системи / увійти, щоб завантажувати вашу нову запис для судорів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.