SSD/NVMe Tweaks (TRIM/Discard)
Note, within the examples in the following sections, /dev/sda
refers to a SSD device while /dev/nvme0n1
refers to a NVMe device.
Get Full SSD/NVMe Device Info
For SSD devices use:
smartctl -x /dev/sda # -x, --xall; -a, --all
hdparm -I /dev/sda # doesn't support NVMe
For NVMe devices use:
smartctl -x /dev/nvme0n1 # -x, --xall; -a, --all
nvme smart-log -H /dev/nvme0n1 # apt install nvme-cli
References
- SmartMonTools: NVMe support
- Percona: Using NVMe Command Line Tools to Check NVMe Flash Health
- Unix and Linux: How to evaluate the wear level of a NVMe SSD?
- NVMexpress.org: NVMe Current Specifications
Set the automatic TRIM job to daily
sudo systemctl enable fstrim.timer
sudo mkdir /etc/systemd/system/fstrim.timer.d
sudo nano /etc/systemd/system/fstrim.timer.d/override.conf
[Timer]
OnCalendar=
OnCalendar=daily
Reboot the system or do daemon-reload and check the updated value.
sudo systemctl daemon-reload
systemctl cat fstrim.timer
# /lib/systemd/system/fstrim.timer
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim
ConditionVirtualization=!container
[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true
[Install]
WantedBy=timers.target
# /etc/systemd/system/fstrim.timer.d/override.conf
[Timer]
OnCalendar=
OnCalendar=daily
Undo the change if you need.
sudo rm -v /etc/systemd/system/fstrim.timer.d/override.conf
References
- Easy Linux Tips Project: SSD – How to optimize your Solid State Drive for Linux Mint and Ubuntu
Tweak the AMP value of SSD
Most Linux distributions use Linux Kernel’s “Advanced Power Management (APM)” API to handle configuration, optimize performance, and ensure stability of storage devices. These devices are assigned an APM value between 1 and 255 to control their power management thresholds. A value of 254 indicates best performance, while a value of 1 indicates better power management. Assigning a value of 255 will disable APM altogether. By default, SSDs are assigned an APM of 254 when the system is running on external power. In battery mode, the APM level is set to 128, reducing the read and write speeds of SSDs. This article explains how to increase SSD APM levels to 254 when your Linux laptop is running on battery mode.
sudo hdparm -B254 /dev/sda
Get the current AMP value.
sudo hdparm -B /dev/sda
Test the performance.
sudo hdparm -tT /dev/sda
References
- AskUbuntu: Ubuntu SSD – Was fast, is now extremely slow
- LinuxHint.com: How to Improve SSD Performance in Linux Laptops
See also
- Linux Swap and Swapfile
- Preload Tool for Better System Performance
- Arch Linux Wiki: Improving performance (Need to read carefully!)
- Arch Linux Wiki: Ext4 (Need to read carefully!)
- Website for Students: Improve Nginx Cache Performance with
tmpfs
on Ubuntu