Solid State Drive tweaks: Difference between revisions

From WickyWiki
m Disable Zeitgeist
mNo edit summary
 
(6 intermediate revisions by the same user not shown)
Line 4: Line 4:
* https://wiki.ubuntu.com/MagicFab/SSDchecklist
* https://wiki.ubuntu.com/MagicFab/SSDchecklist


=Prepare=
==Prepare==


# check for ssd firmware updates
# check for ssd firmware updates
Line 11: Line 11:
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.
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=
==Format SSD==


'''Update: it is better to have journaling enabled for possible fault correction. Skip this section.'''
'''Update: it is better to have journaling enabled for possible fault correction. Skip this section.'''
Line 35: Line 35:
</syntaxhighlight>
</syntaxhighlight>


=Access time=
==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.
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.
Line 44: Line 44:
</syntaxhighlight>
</syntaxhighlight>


Notice the location of '''noatime,''', do not change anything other:
Notice the location of 'noatime,'. Do not change anything else:


<blockquote>
<blockquote>
Line 52: Line 52:
</blockquote>
</blockquote>


=TRIM=
==TRIM==


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


==Manual TRIM==
===Manual TRIM===


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Line 64: Line 64:
Tip: use this tool to TRIM for example every 30 minutes using crontab. See [[MySQL#Schedule_a_backup_with_crontab]] for an example.
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==
===Discard TRIM===


'''Note: this method will cause trimming with every deletion and can slowdown deletions.'''
'''Note: this method will cause trimming with every deletion and can slowdown deletions.'''
Line 84: Line 84:
* http://askubuntu.com/questions/18903/how-to-enable-trim
* http://askubuntu.com/questions/18903/how-to-enable-trim


=Swap=
==Swap==
Lower the likelyness of swap
Lower the likelyness of swap
Line 100: Line 100:
</syntaxhighlight>
</syntaxhighlight>


=I/O scheduler=
See also
* [[Ubuntu freezing with high memory usage]]
 
==I/O scheduler==


Change I/O scheduler strategy to "noop" (or "deadline")
Change I/O scheduler strategy to "noop" (or "deadline")
Line 123: Line 126:
Reboot
Reboot


=Temporary files=
==Temporary files==


Use in-memory disk for temporary files to reduce the number of writes to the SSD.
Use in-memory disk for temporary files to reduce the number of writes to the SSD.
Line 144: Line 147:
</syntaxhighlight>
</syntaxhighlight>


Move firefox cache to the earlier created /tmp
'''Move firefox cache to the in-memory disk /tmp'''
 
In Firefox go to url "about:config"


# in firefox go to url "about:config"
* Look for the setting "browser.cache.disk.parent_directory"
# filter for "browser.cache.disk.parent_directory" Set the value to "/tmp"
* Create this setting as a New String if it does not exist.
* Set the value to "/tmp".
* Restart Firefox
* Folders as "/tmp/Cash/0", "/tmp/Cash/1", "/tmp/Cash/2" etc will be created by Firefox.


=ZeitGeist=
==Zeitgeist==


Zeitgeist is an activity logger that regularly writes to a database in your home folder. The following will prevent this without removing this functionality for all users:
Zeitgeist is an activity logger that regularly writes to a database in your home folder. The following will prevent this without removing this functionality for all users:
Line 157: Line 165:
</syntaxhighlight>
</syntaxhighlight>


The file will be recreated an be almost empty, then:
The file will be recreated and be almost empty, then:


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Line 171: Line 179:
</syntaxhighlight>
</syntaxhighlight>


=Monitor I/O activity=
==Monitor I/O activity==


To monitor I/O activity, user left/right to change sort order:
To monitor I/O activity, user left/right to change sort order:

Latest revision as of 19:24, 20 March 2017

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 else:

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

See also

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 in-memory disk /tmp

In Firefox go to url "about:config"

  • Look for the setting "browser.cache.disk.parent_directory"
  • Create this setting as a New String if it does not exist.
  • Set the value to "/tmp".
  • Restart Firefox
  • Folders as "/tmp/Cash/0", "/tmp/Cash/1", "/tmp/Cash/2" etc will be created by Firefox.

Zeitgeist

Zeitgeist is an activity logger that regularly writes to a database in your home folder. The following will prevent this without removing this functionality for all users:

rm ~/.local/share/zeitgeist/activity.sqlite

The file will be recreated and be almost empty, then:

chmod -rw ~/.local/share/zeitgeist/activity.sqlite
zeitgeist-daemon --replace

To enable again do:

chmod +rw ~/.local/share/zeitgeist/activity.sqlite
zeitgeist-daemon --replace

Monitor I/O activity

To monitor I/O activity, user left/right to change sort order:

sudo apt-get install iotop
sudo iotop -a

Monitor files open for writing, in this example:

  • firefox
  • zeitgeist
sudo lsof -c firefox -c zeitgeist -r 5 | grep -e "[[:digit:]]\+w"

Startup problems without journal

Note: not needed if you do not turn of the journal.

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