asked Jan 30 '16 at 14:27 by Ridderby (56)

I want to share an experience regarding disks and /tmp in Linux that caused very poor performance of Bitwig and how I solved it.

After a disk crash I decided to move from ZFS to BTRFS as the root and main file system on my Linux box. The differences of importance related to Bitwig is that ZFS eats a LOT of RAM. Of my 16GB RAM most of it was consumed all the time by ZFS for buffering. With BTRFS I am normally consuming 1-2 GB.

The other thing I notices was that Bitwig suddenly started to miss timing a lot and produced short periods of distortion once in a while (several times a minute).

Both ZFS and BTRFS are "Copy on Write" file systems meaning that when a files is written it will always write to a new file first and then remove the old one. This is a very good strategy for my data files to secure no loss of information but not a very good strategy for the socket file used by Bitwig to communicate with the VSTs.

Unfortunately I did not make use of tempfs for my /tmp directory which is a RAM based file system so all the communication between Bitwig and VSTs where constantly securely written to physical disk and new copies where made every time. This seemed to be reason for Bitwig to fail sync.

Once /tmp was making use of correct file system things went really smooth.

There is an easy way to check if /tmp are using tempfs. Open a terminal and write the following (no need to be root):

cd /tmp
df -h

The -h flag is only to make the sizes in G or K "human readable" or you will get blocks instead, nothing too important if left out.
The output shall be something like:

Filesystem      Size  Used Avail Use% Mounted on
tmpfs           7.8G  460M  7.4G   6% /tmp

/tmp is not to be changed once you loged into the graphical environment as there are normally a lot of things created in there. The solution is a litle bit dependant on the Linux distro and I really expect Ubuntu to make proper use of tmpfs.

Insightful, thanks for sharing!


answered Mar 01 '16 at 02:05 by mixmatch (123)

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

Markdown Basics

  • *italic* or __italic__
  • **bold** or __bold__
  • link:[text]( "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: Jan 30 '16 at 14:27

Seen: 1,355 times

Last updated: Mar 01 '16 at 02:05