Skip to content

ZFS performance metrics with iozone

26-Dec-11

I ran iozone on many different ZFS pool configurations, to get an idea of which drives are best for L2ARC (cache) and the ZIL. I also wanted to get an idea of whether using gpart affects performance.

The configurations shown in the tables below have the formation [cache]_[gpart/gnop]_[zil]. Where [cache] is the L2ARC type. [gpart/gnop] says whether it’s set up under gpart, or direct. I call the direct method gnop since I have to initially use gnop to force a 4K sector size (I’m using the Western Digital Advanced Format drives for my pool). When I use gpart, I layer gnop on top of the initial creation to force 4K sector size. [zil] specifies the ZFS intent log device.

The disk types are:

Sandisk-2x8GB: these are two 8GB SATA SSD’s connected to the same controller (a PCI SATAII controller).
STT-2x8GB-usb: these are two USB 3.0 8GB drives connected to USB 2.0 ports.

I ran iozone using the command iozone -a -g 8G, and then looking only at the file sizes 1G or above. I have the whole results to make sure nothing funny happens for smaller file sizes. The results below are the average over all file sizes 1G or above and all record sizes performed at those file sizes.

Config Writer Re-Writer Reader Re-Reader Random Read Random Write Backward Read Record Rewrite Stride Read Fwrite Re-fwrite Fread Re-fread
STT-2x8GB-USB-cache_gnop_no-zil 75582 68640 57186 48690 35297 67435 43228 1018166 38217 68893 67935 53560 44769
SanDisk-2x8GB-cache_gnop_no-zil 76220 71511 73913 76134 72732 70053 60786 1001725 75326 69631 70712 67502 70613
corsair-16GB-usb-cache_gnop_no-zil 76683 72090 57963 49971 36033 68870 44593 1028012 37445 69079 71713 55417 46366
no-cache_gnop_no-zil 78223 72358 77134 78507 45160 67282 54004 1002780 44819 69790 70766 73954 72714
Kingston-64GB-sata-cache_gnop_SanDisk-2x8GB-zil 60654 53490 84669 93001 94166 60960 68226 1048091 88588 54835 54295 83393 90911
Kingston-64GB-sata-cache_gnop_no-zil 77465 72126 85473 93171 94973 69970 62113 995109 95945 71804 72567 75761 82436
Kingston-64GB-sata-cache_gpart_SanDisk-2x8GB-zil 60144 55071 87213 94107 95649 59756 65990 1012787 86949 55410 55610 83307 91718
Kingston-64GB-sata-cache_gpart_no-zil 76406 72145 82577 90769 92336 70305 64775 1019952 97475 72893 72343 75447 85428

I also computed the delta in bandwidth for a re-action versus action. For example, Delta Re-Write is throughput of re-write – throughput of write.

Config Delta Re-read Delta Re-Write Delta Re-fwrite Delta Re-fread
iozone_STT-2x8GB-USB-cache_gnop_no-zil -8495 -6941 -958 -8791
iozone_SanDisk-2x8GB-cache_gnop_no-zil 2220 -4709 1081 3111
iozone_corsair-16GB-usb-cache_gnop_no-zil -7991 -4593 2634 -9051
iozone_no-cache_gnop_no-zil 1372 -5865 975 -1239
iozone_Kingston-64GB-sata-cache_gnop_SanDisk-2x8GB-zil 8331 -7164 -539 7517
iozone_Kingston-64GB-sata-cache_gnop_no-zil 7697 -5338 762 6674
iozone_Kingston-64GB-sata-cache_gpart_SanDisk-2x8GB-zil 6893 -5072 200 8410
iozone_Kingston-64GB-sata-cache_gpart_no-zil 8192 -4260 -550 9980

Despite some things I’ve read, USB 2.0 devices can adversely affect the performance. One can see that many cases with the USB devices used as caches, the re-read delta is 8MBps slower.

Another curiousity is that the ZIL devices actually slow things down for writes (and re-writes). I’m not sure if iozone uses synchronous writes, but I did see that the ZIL devices had activity during the tests, so I must conclude that something is going on there. Since I’m using this mostly as a Samba server, I’m probably going to skip the ZIL in my setup.

Be the first to like.

Creating static adaX mappings for FreeBSD drives

17-Dec-11

I recently had a problem with ZFS. I went back to not using glabel, mainly because I wanted to force 4KB sector alignment on my drives and therefore used a gnop trick. About a month after doing so, I shuffled my drives around. I had ada4 and ada5 set up in a mirror configuration. At some point, I moved a drive around and ada4 became ada3 and ada3 became ada2. I could have (and should have) used the methods below to re-assign ada3/ada4 to their right positions. Anyway, I’m doing it now.

More…

Be the first to like.

USB 3.0 (SuperSpeed) flash/SSD drive tests

15-Dec-11

I ran these on my (8GB RAM) Sandy Bridge Core i7-2600K (not overclocked) H67 machine. I compared a newly bought USB 3.0 16 GB drive to an internal Kingston SATA and a previously purchased 8GB USB 3.0. I also compare the USB 3.0 drives to their performance with USB 2.0 port speeds.

More…

Be the first to like.

Putting current directory in xterm/rxvt title

09-Dec-11

From http://www.ibiblio.org/pub/Linux/docs/HOWTO/Xterm-Title

Here’s mine (tcsh):


switch ($TERM)
case “xterm*”:
case “rxvt*”:
case “screen*”:
set prompt=”%{\033]0;%n@%m:%~\007%}tcsh%# ”
breaksw
default:
set prompt=”tcsh%# ”
breaksw
endsw

Instead of casing screen, I should probably check for $DISPLAY. Someday.

Be the first to like.

Python script for engineering format

21-Oct-11

[cce_python]
# -*- coding: cp1252 -*-
from math import tan, pi, sqrt, log, floor

def eng(x, sigfigs=3):
m = floor(log(x)/log(10)/3)*3
LUT = {
-18: “a”,
-15: “f”,
-12: “p”,
-9: “n”,
-6: “µ”,
-3: “m”,
0: “”,
3: “k”,
6: “M”,
9: “G”
}
return (“{0:.{1}g}{2}”).format(x*10.0**(-m), sigfigs, LUT[m])
[/cce_python]

I’m not sure what grief the µ character is going to cause people. Feel free to change it to “u”.

Be the first to like.

DHCP trouble in DD-WRT due to broken dnsmasq

20-Oct-11

I’ve been debugging why my printer won’t receive an IP from my dd-wrt router. (This is a beta version of Buffalo’s branded dd-wrt firmware: DD-WRT v24SP2-EU-US (05/25/11) std – build 17135.) I actually “upgraded” to the beta version while debugging this problem. Originally, I had the release version of Buffalo’s DD-WRT.

Anyway, to summarize, it seems like using dnsmasq as the DHCP server breaks things. When I set it back, all my clients get DHCP licenses. I learned this the hard way. First, my printer wasn’t getting an IP. So, I finally gave it a static IP. Then, an Android phone wasn’t getting an IP. At that point, I started dhcpdump and started snooping. Basically, it’d get an “address not available” error. I finally traced it down to the setting for dnsmasq on the dd-wrt page. Once I chose the regualar DHCP server (udhcpd) rather than dnsmasq, everything worked well:

Turn off "Use dnsmasq as DHCP"

 

Be the first to like.

My dd-wrt crontab

12-Oct-11

here it is:

0 0 * * * root [ ! -f /tmp/wrtbwmon ] && wget “http://pastebin.ca/raw/2088536″ -O /tmp/wrtbwmon && sed -i -e”s/.$//” /tmp/wrtbwmon && chmod +x /tmp/wrtbwmon
*/5 * * * * root /tmp/wrtbwmon setup br0
*/30 0-3 * * * root /tmp/wrtbwmon update /tmp/usage.db peak
*/30,59 4-8 * * * root /tmp/wrtbwmon update /tmp/usage.db offpeak
*/30 9-23 * * * root /tmp/wrtbwmon update /tmp/usage.db peak
45 */2 * * * root /tmp/wrtbwmon publish /tmp/usage.db /tmp/www/usage.htm
0 0 * * * root [ ! -f /tmp/ct2htm ] && wget http://pastebin.ca/raw/2089248 -O /tmp/ct2htm && sed -i -e”s/.$//” /tmp/ct2htm && chmod +x /tmp/ct2htm
* * * * * root /tmp/ct2htm

Couple of customizations here. First, I’ve modified the wrtbmon script to not rely on sort, since it doesn’t exist in Buffalo’s DD-WRT. Also, I’ve set up a small script to format ip_conntrack as HTML. This is so I can keep tabs to see if my QoS settings are working.

Be the first to like.

HP L7600/L7650 and Samba/FreeBSD

02-Oct-11

This all-in-one printer can scan to a Windows share. I have a Windows share hosted by Samba on FreeBSD.

Unfortunately, the printer/scanner intermittently (and pretty often) says it can’t find my FreeBSD machine when I–or more importantly my wife tries to scan a document.

I went pretty deep on this and took a packet capture:

More…

Be the first to like.

Fixing CrashPlan (in the presence of native JDK/JRE)

14-Sep-11

I recently installed subsonic, which has a Java dependency. The www/subsonic port installed Java.

Unfortunately, this (or something else I did) broke CrashPlan (which uses the Linux Java in the java/linux-sun-jre16 port).

I had to take a few unexpected steps to fix this.
More…

Be the first to like.

ZFS / NFSv4 ACL’s for a public Samba share

27-Aug-11

I’ve finally taken the time to figure things out step-by-step. NFSv4 ACL’s, which are supported by ZFS on FreeBSD (and Solaris) are pretty cool. However, I’ve never really understand how they work. By taking the time to use the command-line, I’ve figured out what I think is a good approach for a public share–one where I store old Recorded TV shows.

More…

1 person likes this post.