But on a test installation of Buster on a 120 GB SSD I don't see fstrim active.Enable weekly trim (not needed on buster)
Found no further info ....
But on a test installation of Buster on a 120 GB SSD I don't see fstrim active.Enable weekly trim (not needed on buster)
Code: Select all
# apt install util-linux
# systemctl enable --now fstrim.timer
systemctl list-timers
That wiki page is full of dubious advice. For example, there hasn't been any need to reduce writes to the SSD for a while now because drive longevity is greatly improved compared to the early production models.kalle123 wrote:But that is contrary to what that wiki article says
Not only that page. Same, when you start looking for advice on the sources.list on Buster.Head_on_a_Stick wrote:That wiki page is full of dubious advice. For example, there hasn't been any need to reduce writes to the SSD for a while now because drive longevity is greatly improved compared to the early production models.kalle123 wrote:But that is contrary to what that wiki article says
Yes, that can be a problem with public wiki resources, I grew bored of fighting with the ArchWiki maintainers some time ago but the same problem exists there as well.kalle123 wrote:Different wiki pages give different information
What about TRIM, defragmentation and proper alignment ?Head_on_a_Stick wrote:FWIW, just treat the SSD as if it were a spinning rust drive, they don't need any special treatment.
I think fstrim.timer should be sufficient, check fstrim(8) for more on this.p.H wrote:What about TRIM
Isn't fragmentation a spinning rust "feature"?p.H wrote:defragmentation
Don't most disk partitioning utilities align to the 4K standard automatically?p.H wrote:proper alignment
Code: Select all
$ sudo parted /dev/sda align-check opt
Partitionnumber? 1
1 aligned
Code: Select all
- Add the "noatime"
(or "relatime") mount option in /etc/fstab, to disable (or significantly reduce) disk writes whenever a file is read.
Code: Select all
$ sudo cp /usr/share/doc/util-linux/examples/fstrim.{service,timer} /etc/systemd/system
$ sudo systemctl enable fstrim.timer
Code: Select all
$ systemctl status fstrim.timer
View fstrim.timer status:
$ 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
Start/Stop/Restart fstrim.timer:
(immediate activate/deactivate/reactivate, does not change startup status)
$ sudo systemctl [start/stop/restart] fstrim.timer
Enable/Disable fstrim.timer:
(add to/remove from startup, does not change immediate active status)
$ sudo systemctl [enable/disable] fstrim.timer
View fstrim.timer configuration:
$ 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
View fstrim.service configuration:
$ systemctl cat fstrim.service
# /lib/systemd/system/fstrim.service
[Unit]
Description=Discard unused blocks
[Service]
Type=oneshot
ExecStart=/sbin/fstrim -av
View related systemd journal entries:
$ 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...
Code: Select all
$ grep . /sys/block/sd?/queue/rotational
/sys/block/sda/queue/rotational:1
/sys/block/sdb/queue/rotational:1
/sys/block/sdc/queue/rotational:0 <=== Only this is SSD!
Code: Select all
# echo deadline > /sys/block/$YOURDRIVE/queue/scheduler
Code: Select all
$ grep . /sys/block/sd?/queue/scheduler
/sys/block/sda/queue/scheduler:noop deadline [cfq]
/sys/block/sdb/queue/scheduler:noop deadline [cfq]
/sys/block/sdc/queue/scheduler:noop [deadline] cfq <== That is!
^ Absolutely not needed, relatime has been the default for ext4 since kernel 2.6.30 and that should be sufficient, even if excess writes were a concern (which they're not with any modern production SSD[1]).kalle123 wrote:- Add the "noatime"
The wiki might be referring to the fact that fstrim.timer does not have to be copied manually from /usr/share/doc/util-linux/exampleskalle123 wrote:On https://wiki.debian.org/SSDOptimization I find this note
But on a test installation of Buster on a 120 GB SSD I don't see fstrim active.Enable weekly trim (not needed on buster)
Found no further info ....
util-linux (2.32.1-0.2) unstable; urgency=medium
... * debian/util-linux.README.Debian: Add information about the fstrim.timer
I read it the other way, but English is not my native language.bw123 wrote: The wiki might be referring to the fact that fstrim.timer does not have to be copied manually from /usr/share/doc/util-linux/examples
IIUC your message #2, fstrim.timer is not enabled by default.Head_on_a_Stick wrote:I think fstrim.timer should be sufficient
Fragmentation is a filesystem feature and also exists on SSDs (and any other kind of random access storage). It just has a lower impact on performance thanks to the much lower access time.Head_on_a_Stick wrote:Isn't fragmentation a spinning rust "feature"?
No. Worse, it is undesirable because it causes extra workload and writes for no benefit.Head_on_a_Stick wrote:I don't think defragmentation is needed for an SSD, am I wrong?
Actually 1 MB. Any hard disk is fine with 4-KiB, but a SSD needs a bigger alignment size depending on its write page and erase block sizes. Watch out if you clone an old disk with cylinder aligment to an SSD.Head_on_a_Stick wrote:Don't most disk partitioning utilities align to the 4K standard automatically?
According to the mount(8) man page, relatime is a filesystem-independant mount option and is the default for any filesystem type, not only ext4.Head_on_a_Stick wrote:relatime has been the default for ext4 since kernel 2.6.30
That reduces my list a bit on Busterkalle123 wrote: - ENABLE weekly trim
- CHECKING trimCode: Select all
$ sudo systemctl enable fstrim.timer
Code: Select all
$ systemctl status fstrim.timer View fstrim.timer status: $ 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 Start/Stop/Restart fstrim.timer: (immediate activate/deactivate/reactivate, does not change startup status) $ sudo systemctl [start/stop/restart] fstrim.timer Enable/Disable fstrim.timer: (add to/remove from startup, does not change immediate active status) $ sudo systemctl [enable/disable] fstrim.timer View fstrim.timer configuration: $ 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 View fstrim.service configuration: $ systemctl cat fstrim.service # /lib/systemd/system/fstrim.service [Unit] Description=Discard unused blocks [Service] Type=oneshot ExecStart=/sbin/fstrim -av View related systemd journal entries: $ 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...
Code: Select all
~$ grep . /sys/block/sd?/queue/rotational
/sys/block/sda/queue/rotational:0
/sys/block/sdb/queue/rotational:1
/sys/block/sdc/queue/rotational:0
/sys/block/sdd/queue/rotational:0
Code: Select all
$ grep . /sys/block/sd?/queue/scheduler
/sys/block/sda/queue/scheduler:[mq-deadline] none
/sys/block/sdb/queue/scheduler:[mq-deadline] none
/sys/block/sdc/queue/scheduler:[mq-deadline] none
/sys/block/sdd/queue/scheduler:[mq-deadline] none