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.
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.
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.
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.
[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.
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:
Be the first to like.
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.
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.
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.
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.