Here’s how it works:
-
SSDs store data in flash memory cells, which are organized into pages and blocks. Writing data to an SSD is straightforward, but deleting or overwriting data is more complex due to the way flash memory works.
-
When data is deleted from an SSD, the space it occupied doesn’t become immediately available for new data. Instead, the drive marks the pages as “invalid” but doesn’t erase the data until later. This is because SSDs can only write data to empty pages and must erase entire blocks (which contain multiple pages) before they can reuse that space.
-
TRIM helps the SSD understand which blocks of data are no longer in use and can be cleared out. When an operating system (OS) deletes a file or formats a drive, it sends a TRIM command to the SSD, indicating which blocks can be reclaimed.
-
This allows the SSD to proactively erase the invalid data, making the space available for new writes and preventing the need for the drive to perform this cleanup during write operations, which can slow down performance.
-
Performance: By keeping the SSD’s free space organized, TRIM helps maintain fast read and write speeds over time. Without TRIM, an SSD can become slower as it fills up because it must spend extra time erasing blocks before writing new data.
-
Longevity: Regularly erasing blocks through TRIM can help reduce wear on the SSD, potentially extending its lifespan. SSDs have a limited number of write/erase cycles, so efficient use of those cycles is beneficial.
-
Improved Space Management: TRIM can help the SSD manage free space more efficiently, ensuring it operates at peak performance even as files are added, deleted, or modified.
-
When you delete a file or format a drive, the OS sends a TRIM command to the SSD. The command includes information about which blocks are no longer needed.
-
The SSD receives this information and marks those blocks as free. It can then erase these blocks during idle time, ensuring that they are ready for new data when needed.
-
Most modern operating systems support TRIM, including Windows (starting from Windows 7), macOS, and most Linux distributions. However, TRIM must be enabled for it to work.
-
On Linux, you can check if TRIM is enabled using the fstrim command or by examining the mount options for your SSD in the /etc/fstab
file.
✅ Absolutely.
To check if TRIM is enabled for your SSD on a Linux system, you can use the following methods:
fstrim
1)
Open a terminal.
2)
Run the following command:
$ sudo fstrim -v /
/: 12345678 bytes were trimmed
If you see a message indicating that the command was successful, then TRIM is working.
🥳
1)
Identify Your SSD: First, find the name of your SSD using the following command:
$ lsblk -d -o NAME,RO,RM,SIZE,VENDOR,MODEL
This will list your drives. Look for your SSD in the output.
2)
Check for TRIM Support: Use the lsblk
command with the -o
option to check for TRIM support. Replace /dev/sdX
with the name of your SSD (e.g., /dev/sda
, /dev/nvme0n1
):
$ sudo lsblk -o NAME,TYPE,MOUNTPOINT,ROTA,DISC-GRAN,DISC-MAX,DISC-ZERO /dev/sdX
If you see 1
under the ROTA
column, it indicates a rotational drive (HDD), and if it’s 0
, it indicates a non-rotational drive (SSD). The DISC-GRAN
, DISC-MAX
, and DISC-ZERO
columns will show trim capabilities if the device supports it.
NAME TYPE MOUNTPOINT ROTA DISC-GRAN DISC-MAX DISC-ZERO
nvme0n1 disk 0 512B 2T 0
└─nvme0n1p1 part /mnt/nvme01 0 512B 2T 0
1)
Check Mount Options: You can also check if the filesystem is mounted with TRIM support enabled. Use the following command to check your current mount options for your root filesystem:
$ sudo mount | grep ' / '
Look for the discard
option in the output. If it is present, TRIM is enabled.
1)
View System Logs: You can check the system logs for entries related to TRIM by running:
$ dmesg | grep -i trim
If TRIM has been invoked successfully, you may see messages in the output.
If you find that TRIM is not enabled, you can set it up by adding the discard
option to your /etc/fstab
file for your SSD. Here’s how:
1)
Edit /etc/fstab
:
$ sudo vi /etc/fstab
2)
Add discard
Option: Locate the line corresponding to your SSD and add the discard
option. For example:
UUID=your-uuid / ext4 defaults,noatime,discard 0 1
Make sure to replace your-uuid
with the actual UUID of your SSD. You can find the UUID using:
$ sudo blkid
3)
Save and Exit: Save the changes and exit the text editor. Also inform the system about the changes.
$ sudo systemctl daemon-reload
4)
Remount your filesystem:
$ sudo mount -o remount /
Now check if it has the discard
option:
$ sudo mount | grep ' / '
/dev/sde2 on / type ext4 (rw,relatime,discard)
5)
Reboot the system:
$ sudo reboot
After rebooting, TRIM should be enabled for your SSD. You can then use the previous methods to confirm that it’s working.
If your system uses systemd
, you can use a systemd timer
to run fstrim
. This method is preferred in modern distributions.
1)
Create a Service File: Create a file named /etc/systemd/system/fstrim.service
with the following content:
[Unit]
Description=Discard unused blocks on filesystems from /etc/fstab
[Service]
Type=oneshot
ExecStart=/sbin/fstrim --all --verbose
2)
Create a Timer File: Create a timer file at /etc/systemd/system/fstrim.timer
with the following content:
[Unit]
Description=Run fstrim.service weekly
[Timer]
OnCalendar=weekly
Persistent=true
[Install]
WantedBy=timers.target
⚠️ Inform the system about the changes.
$ sudo systemctl daemon-reload
3)
Enable and Start the Timer: Run the following commands to enable and start the timer:
$ sudo systemctl enable fstrim.timer
$ sudo systemctl start fstrim.timer
Check if your timer was created:
$ sudo systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2024-11-04 00:00:00 -03 4 days Mon 2024-10-28 00:25:50 -03 - fstrim.timer fstrim.service
If you wish, you can run the timer manually:
$ sudo systemctl start fstrim.timer
And to check the logs:
$ sudo journalctl -u fstrim.timer
-- Boot 677eb23cca7b4da09409742c76bf14aa --
Oct 30 15:46:38 zion systemd[1]: Started fstrim.timer - Discard unused filesystem blocks once a week.
Oct 30 20:34:47 zion systemd[1]: fstrim.timer: Deactivated successfully.
Oct 30 20:34:47 zion systemd[1]: Stopped fstrim.timer - Run fstrim.service weekly.
Automating TRIM helps ensure that your SSD remains optimized without requiring manual intervention.
In summary, TRIM is a crucial feature for SSDs that helps optimize their performance and longevity by allowing the drive to efficiently manage its storage space. It minimizes the performance degradation that can occur over time as data is written and deleted.
Did you like the content? Check out these other interesting articles! 🔥
Do you like what you find here? With every click on a banner, you help keep this site alive and free. Your support makes all the difference so that we can continue to bring you the content you love. Thank you very much! 😊