Ubuntu SSD Tweak

Tweak fstab
=Do I have TRIM support?= To find out if you have TRIM support (not enabled or disabled), do this, it should say TRIM supported. $ sudo hdparm -I /dev/sda | grep TRIM *	Data Set Management TRIM supported (limit unknown)

=Mount tmp in RAM via fstab=

With sudo nano -w /etc/fstab, add line (nodiratime isnt needed as noatime susperceeds it) tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0


 * Note, Add 'noatime' mount option to stop file access time stamping


 * Note, Add 'discard' mount option to SSD drive IF your drive supports TRIM (if not it is ignored anyway)

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults,discard,noatime 0 0

After rebooting you should see something like this from dmesg $ dmesg | grep "discard" [   2.943009] EXT4-fs (sda1): re-mounted. Opts: discard,errors=remount-ro

Note, even in Ubuntu 12.04 you need to set this fstab mount option (I have seen written that you dont, but this appears to be not the case)

If TRIM is working, then the following should be 0, (assuming / is mount point of the SSD, i.e. /dev/sda mounted on /)
 * Note, If just enabling and rebooting it probably wont be 0 the first time you do it.

$ sudo fstrim -v / /: 0 bytes were trimmed

Keep retrying it every few minutes when computer is in use, it should always be 0.

Tweak filesystem to stop it writing stuff
From a Live CD to keep it clean

Removing /var/log assumes you don't need logging after a reboot, which for a desktop seems fairly sensible.

Empty entirely the /tmp folder, but dont delete it, if you do by mistake remember it needs everyone to have full access to it when created. (This will still let the system work if incorrect/missing tmpfs entry in fstab)

rm -rf /tmp/* rm -rf /var/tmp rm -rf /var/log rm -rf /home/xxxxx/.cache
 * 1) Clear tmp
 * 1) Chrome cache etc uses this by default

Link stuff back to /tmp ln -s /tmp /var/log ln -s /tmp /var/tmp ln -s /tmp /home/xxxxx/.cache

udev way
Create (or edit)

/etc/udev/rules.d/60-schedulers.rules

containing;

ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop" ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="deadline"
 * 1) set deadline scheduler for non-rotating disks
 * 1) set cfq scheduler for rotating disks

Grub way
sudo nano -w /etc/default/grub, edit

old SSD with no trim GRUB_CMDLINE_LINUX="elevator=deadline"

new SSD with trim and decent scheduler GRUB_CMDLINE_LINUX="elevator=noop"

Then run this to generate a new grub.cfg with elevator settings in.

sudo update-grub

As a one liner; sudo sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="elevator=noop"/g' /etc/default/grub && sudo update-grub