Solid State Drive tweaks: Difference between revisions

From WickyWiki
Line 35: Line 35:
</syntaxhighlight>
</syntaxhighlight>


== TRIM and access time ==
== Access time ==


The TRIM function prepares (wipes) free space for faster writing. Enable the TRIM command support using the "discard" mounting option.
The "relatime" option writes the time-of-access to disk and causes unnecessary additional writes to disk. Mount volumes using the "noatime" option in stead of the "relatime" option.


<syntaxhighlight lang=bash>
sudo cp /etc/fstab ~/fstab-backup
sudo gedit /etc/fstab
</syntaxhighlight>
Notice the location of '''noatime,''', do not change anything other:


The "relatime" option writes the time-of-access to disk and causes unnecessary additional writes to disk. Mount volumes using the "noatime" option in stead of the "relatime" option
<blockquote>
<syntaxhighlight lang=bash>
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /              ext4    noatime,data=writeback,errors=remount-ro 0      1
</syntaxhighlight>
</blockquote>


<syntaxhighlight lang=bash>
== TRIM ==
sudo cp /etc/fstab ~/fstab-backup
 
The TRIM function prepares (wipes) free space and prevents significant slowdown of writes as the drive is used.
 
===Manual TRIM===
 
<syntaxhighlight lang=bash>
sudo fstrim -v /
</syntaxhighlight>
 
Tip: use this tool to TRIM for example every 30 minutes using crontab. See [[MySQL#Schedule_a_backup_with_crontab]]] for an example.
 
===Discard TRIM ===
 
'''Note: this method will cause trimming with every deletion and can slowdown deletions.'''
 
<syntaxhighlight lang=bash>
sudo gedit /etc/fstab
sudo gedit /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /              ext4    noatime,discard,data=writeback,errors=remount-ro 0      1
</syntaxhighlight>
</syntaxhighlight>
 
Notice the location of '''discard,''', do not change anything other:
 
<blockquote>
<syntaxhighlight lang=bash>
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /              ext4    noatime,discard,data=writeback,errors=remount-ro 0      1
</syntaxhighlight>
</blockquote>


Reboot. To test if TRIM is working look here:
Reboot. To test if TRIM is working look here:

Revision as of 21:51, 12 September 2013

Prepare

  1. check for ssd firmware updates
  2. Enable SATA AHCI mode in the BIOS (if available)

Note: in a dual boot configuration with Windows 7, Windows will not boot after changing AHCI. You will need to make some changes in Windows before proceeding.

Format SSD

Update: it is better to have journaling enabled for possible fault correction. Skip this section.

Format drive as ext4, journaling disabled.

MAKE SURE WE ARE TALKING ABOUT THE RIGHT DRIVE HERE

Physical drive: "sdb", partition "sdb1"

	
sudo fdisk -l /dev/sdb | grep sectors
255 heads, 63 sectors/track, 7297 cylinders
	
sudo fdisk -H 255 -S 63 /dev/sdb
 "d" delete partition
 "n" new partition, primary, 1
 "w" to write partition table and exit
sudo mke2fs -t ext4 -O ^has_journal /dev/sdb1

Access time

The "relatime" option writes the time-of-access to disk and causes unnecessary additional writes to disk. Mount volumes using the "noatime" option in stead of the "relatime" option.

sudo cp /etc/fstab ~/fstab-backup
sudo gedit /etc/fstab

Notice the location of noatime,, do not change anything other:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /               ext4    noatime,data=writeback,errors=remount-ro 0       1

TRIM

The TRIM function prepares (wipes) free space and prevents significant slowdown of writes as the drive is used.

Manual TRIM

sudo fstrim -v /

Tip: use this tool to TRIM for example every 30 minutes using crontab. See MySQL#Schedule_a_backup_with_crontab] for an example.

Discard TRIM

Note: this method will cause trimming with every deletion and can slowdown deletions.

sudo gedit /etc/fstab

Notice the location of discard,, do not change anything other:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /               ext4    noatime,discard,data=writeback,errors=remount-ro 0       1

Reboot. To test if TRIM is working look here:

Swap

Lower the likelyness of swap

	
sudo gedit /etc/sysctl.conf

 # add/edit these lines

 # minimum swappiness
 vm.swappiness=0

 # weak inode cache schrinking
 vm.vfs_cache_pressure=50

I/O scheduler

Change I/O scheduler strategy to "noop" (or "deadline")

Note: there are alternatives to add this option to grub or to install a "sysutils" package

cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
	
sudo gedit /etc/rc.local

Add these lines before exit 0 for drive "sda"

	
 echo noop > /sys/block/sda/queue/scheduler

Reboot

Temporary files

Use in-memory disk for temporary files to reduce the number of writes to the SSD.

sudo gedit /etc/fstab

Add after the last line (exact text)

tmpfs   /tmp  tmpfs  nodev,nosuid,noexec,mode=1777  0 0

After reboot, using df you should see a line like

df
 ...
 tmpfs xxxxxx yyyyy zzzzzz n% /tmp
 ...

Move firefox cache to the earlier created /tmp

  1. in firefox go to url "about:config"
  2. filter for "browser.cache.disk.parent_directory" Set the value to "/tmp"

Other

Did this from other Ubuntu and then it booted

sudo tune2fs -o journal_data_writeback /dev/sdb1

Moved aMule and Vuze folders to Data drive, NB: aMule will reset the folder when it is not found