I have a ZFS RAIDZ2 created out of 10x2TB hard drives using ESXi on an Intel 80GB SSD as a boot drive with OpenIndiana w/ passthrough storage controller hardware. The pool is v28
Performance has been adequate while copying files to and from the server, 90-110MB per second.. Great... but then I had problems.
The Problem
However once I tried to use utorrent, I ran into some game changing write performance issues... It seems that the synchronous writes that utorrent does while writing data to the ZFS pool over the network are very slow writes for ZFS to handle... utorrent would hang on writes, making the download speed of the torrent drop to almost nothing, and upon completion of the file, it would say "flushing to the disk" and take about 5 minutes to write a 500MB file to the pool.
This was unacceptable to me since it was slowing my downloads down to take hour rather than a few minutes.
My Solution
Doing some reading, I realized I needed a ZIL device (ssd write cache) in order to improve the write performance. I don't want to use up my hot swap bays since I will need them for future expansion, so I looked into USB 3.0 devices, then realized that was a bad idea, I finally came up with the following solution: I created a 8GB virtual HDD device on the INTEL boot SSD using ESXi, and passed it to openindiana and added it as a vdev to the pool as a SSD write cache.
My performance in utorrent and other synchronous writes immediately seemed "normal" after adding the device! my utorrent never dropped download speed and flushing to the file system appeared to be immediate! Other file copies to the system also seem to be much more predictable and smoothed out.
So I am presenting this as either a tip for other home users who might run into this problem, but also since I am new to ZFS, what I am doing is possibly a very stupid idea.... Please feel free to correct me if this is a bad idea, but so far it appears to have worked quite well. Is 8GB adequate, or is less or more better? would it be a good idea to do the same thing and pass another 8GB as l2arc (read cache)?
Performance has been adequate while copying files to and from the server, 90-110MB per second.. Great... but then I had problems.
The Problem
However once I tried to use utorrent, I ran into some game changing write performance issues... It seems that the synchronous writes that utorrent does while writing data to the ZFS pool over the network are very slow writes for ZFS to handle... utorrent would hang on writes, making the download speed of the torrent drop to almost nothing, and upon completion of the file, it would say "flushing to the disk" and take about 5 minutes to write a 500MB file to the pool.
This was unacceptable to me since it was slowing my downloads down to take hour rather than a few minutes.
My Solution
Doing some reading, I realized I needed a ZIL device (ssd write cache) in order to improve the write performance. I don't want to use up my hot swap bays since I will need them for future expansion, so I looked into USB 3.0 devices, then realized that was a bad idea, I finally came up with the following solution: I created a 8GB virtual HDD device on the INTEL boot SSD using ESXi, and passed it to openindiana and added it as a vdev to the pool as a SSD write cache.
My performance in utorrent and other synchronous writes immediately seemed "normal" after adding the device! my utorrent never dropped download speed and flushing to the file system appeared to be immediate! Other file copies to the system also seem to be much more predictable and smoothed out.
So I am presenting this as either a tip for other home users who might run into this problem, but also since I am new to ZFS, what I am doing is possibly a very stupid idea.... Please feel free to correct me if this is a bad idea, but so far it appears to have worked quite well. Is 8GB adequate, or is less or more better? would it be a good idea to do the same thing and pass another 8GB as l2arc (read cache)?
Last edited: