What you will achieve
Separate SSD myths from what modern Linux actually does — TRIM, discard mount options, and why you probably should not obsess over journaling anymore.
1) Enable periodic TRIM
sudo systemctl enable --now fstrim.timer
systemctl status fstrim.timer
On Fedora this is usually enabled by default. Runs weekly discard for supported mounts.
2) discard mount option (optional)
grep discard /etc/fstab
Continuous discard can add write amplification on some drives. fstrim.timer is the safer default for most setups.
3) Myths debunked
- Noatime:
relatimeis already default — marginal gains fromnoatime. - Disable journaling: never on ext4 root — corruption risk outweighs tiny wear savings.
- Manual over-provisioning: leave unpartitioned space only if vendor docs recommend it.
4) Check drive health
sudo apt install smartmontools
sudo smartctl -a /dev/nvme0n1
Verify
sudo fstrim -v /
lsblk -D
5) I/O scheduler
cat /sys/block/nvme0n1/queue/scheduler
Modern kernels pick sensible defaults (none/mq-deadline for NVMe). Manual scheduler tuning rarely matters on SSDs.
6) ext4 mount options
mount | grep ' / '
Defaults include relatime. discard vs periodic fstrim — pick one strategy, not both aggressively.
7) NVMe health monitoring
sudo nvme smart-log /dev/nvme0
Watch percentage used and media errors — Linux tuning cannot fix dying hardware.
What actually matters
Adequate free space (keep 10–15% free), firmware updates from vendor tools, and backups beat superstition about tmpfs and manual wear leveling.
8) RAID and SSD
MD RAID and some HBAs hide SMART from OS — use vendor tools for physical health when smartctl cannot see drives directly.
Prerequisites
Know if drive is NVMe vs SATA SSD (lsblk -d -o NAME,ROTA,MODEL). Root for fstrim timer. smartmontools optional. Avoid urban myth tweaks from 2010 HDD era forums.
Benchmark sanity
sudo hdparm -Tt /dev/sda
Compare before/after tuning — if numbers unchanged, your tweak did nothing measurable.
LUKS overhead negligible
With AES-NI, encrypted SSD throughput within few percent of plain — do not skip LUKS for mythical performance savings.
Datacenter NVMe
Enterprise NVMe with power loss protection handles fsync differently — database tuning docs still recommend noatime defaults only. Multi-actuator drives need no special Linux scheduler tweaks — kernel mq-deadline scales. Monitor nvme smart-log percentage used crossing 80% for procurement lead time.
USB-attached SSD
UASP enclosure matters for trim pass-through — lsusb -t shows UASP vs Bulk-Only Transport. fstrim may silently skip poorly implemented USB bridges — monitor write speed degradation as wear indicator instead.