<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>My Wushu Blog &#187; Benchmarking</title>
	<atom:link href="http://www.mywushublog.com/tag/benchmarking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mywushublog.com</link>
	<description></description>
	<lastBuildDate>Wed, 28 Jul 2010 05:05:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>FreeBSD and Multipath</title>
		<link>http://www.mywushublog.com/2010/06/freebsd-and-multipath/</link>
		<comments>http://www.mywushublog.com/2010/06/freebsd-and-multipath/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 06:06:58 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Geekyness]]></category>
		<category><![CDATA[Benchmarking]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[ZFS]]></category>

		<guid isPermaLink="false">http://www.mywushublog.com/?p=985</guid>
		<description><![CDATA[I didn&#8217;t find any blog posts of discussions on FreeBSD and multipath (for storage) that wasn&#8217;t a man page. That means it is up to me to write about it Hardware CPU Machine class: amd64 CPU Model: Intel(R) Xeon(R) CPU E5530 @ 2.40GHz No. of Cores: 16 Memory Total real memory available: 65511 MB Logically [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t find any blog posts of discussions on FreeBSD and multipath (for storage) that wasn&#8217;t <a href="http://www.freebsd.org/cgi/man.cgi?query=gmultipath&amp;section=8">a man page</a>.</p>
<p>That means it is up to me to write about it <img src='http://www.mywushublog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Hardware</h2>
<h3>CPU</h3>
<h3>
<pre>Machine class:	amd64
CPU Model:	Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz
No. of Cores:	16</pre>
</h3>
<h3>Memory</p>
<pre>Total real memory available:	65511 MB
Logically used memory:		3945 MB
Logically available memory:	61565 MB</pre>
</h3>
<h3>Storage</h3>
<p>The storage is a large ~90TB Enterprise class Fibre Channel array, a Data Direct Networks S2A9900. Connected to that are two, dual port QLogic 2532 8Gb HBA&#8217;s. We also have two SSD drives (configured as a RAID1 device) for the ZFS Intent Log.</p>
<p>The storage array was configured from 120 1TB, 7200RPM Hitachi drives. It has 12 volumes in total, composed of 10 of the SATA drives (1 parity, 1 Spare), or ~7TB.</p>
<p>The S2N9900 has two controllers, one controller is responsible for LUN&#8217;s 1-6, the other controller is responsible for LUN&#8217;s 7-12. every LUN is presented to all four Fibre Channel ports. This got a little messy, trying to sort out 48 raw disk devices takes some patience and a decent attention span&#8230;</p>
<p>yeah, I did make a few typo&#8217;s here and there, thankfully creating and clearing disk labels is easy.</p>
<pre># camcontrol devlist|grep lun\ 0
                at scbus0 target 0 lun 0 (pass0,da0)
                at scbus1 target 0 lun 0 (pass6,da6)
                at scbus4 target 0 lun 0 (pass24,da24)
                at scbus5 target 0 lun 0 (pass30,da30)</pre>
<pre># camcontrol inquiry da0 -S
108EA1B10001
# camcontrol inquiry da6 -S
108EA1B10001
# camcontrol inquiry da24 -S
108EA1B10001
# camcontrol inquiry da30 -S
108EA1B10001
# gmultipath label -v DDN-v00 /dev/da0 /dev/da6 /dev/da24 /dev/da30
Done.</pre>
<pre># gmultipath status
             Name  Status  Components
multipath/DDN-v00     N/A  da0
                           da6
                           da24
                           da30</pre>
<p>Now, to do that 12 more times&#8230;</p>
<p>Whew, hard work!</p>
<p>Now, to create a simple ZFS volume across all 12 luns:</p>
<pre># zpool create zfs multipath/DDN-v00 multipath/DDN-v01 multipath/DDN-v02 multipath/DDN-v03 multipath/DDN-v04 multipath/DDN-v05 multipath/DDN-v06 multipath/DDN-v07 multipath/DDN-v08 multipath/DDN-v09 multipath/DDN-v10 multipath/DDN-v11 log mfid1

# zpool status
  pool: zfs
 state: ONLINE
 scrub: none requested
config:

	NAME                 STATE     READ WRITE CKSUM
	zfs                   ONLINE       0     0     0
	  multipath/DDN-v00  ONLINE       0     0     0
	  multipath/DDN-v01  ONLINE       0     0     0
	  multipath/DDN-v02  ONLINE       0     0     0
	  multipath/DDN-v03  ONLINE       0     0     0
	  multipath/DDN-v04  ONLINE       0     0     0
	  multipath/DDN-v05  ONLINE       0     0     0
	  multipath/DDN-v06  ONLINE       0     0     0
	  multipath/DDN-v07  ONLINE       0     0     0
	  multipath/DDN-v08  ONLINE       0     0     0
	  multipath/DDN-v09  ONLINE       0     0     0
	  multipath/DDN-v10  ONLINE       0     0     0
	  multipath/DDN-v11  ONLINE       0     0     0
	logs                 ONLINE       0     0     0
	  mfid1              ONLINE       0     0     0

errors: No known data errors</pre>
<h2>Results</h2>
<p>These results wre obtained from two <strong>similar</strong> servers. The other server is using a Winchester Systems Storage array, and has 24GB of system memory. The Winchester Storage is ~40TB of 2TB SATA disks:<br />
<div id="attachment_999" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2010/06/winsys-fd-sx2318r.jpg"><img src="http://www.mywushublog.com/wp-content/uploads/2010/06/winsys-fd-sx2318r-300x253.jpg" alt="" title="winsys-fd-sx2318r" width="300" height="253" class="size-medium wp-image-999" /></a><p class="wp-caption-text">Another RAID array, just for a comparison</p></div></p>
<p>I used IOZone for the test (iozone -a). The default iozone test is using 64k files to 512MB files, and since I&#8217;m trying to see how the server might actually react to the real worl, I&#8217;m okay with this (ie, I fully understand that a LOT of caching is taking place, and I want that for right now).<br />
<div id="attachment_997" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-frewrite.png"><img src="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-frewrite-300x192.png" alt="" title="2d-frewrite" width="300" height="192" class="size-medium wp-image-997" /></a><p class="wp-caption-text">Forward Re-Write</p></div></p>
<div id="attachment_996" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-freread.png"><img src="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-freread-300x192.png" alt="" title="2d-freread" width="300" height="192" class="size-medium wp-image-996" /></a><p class="wp-caption-text">Forward Re-Read</p></div>
<div id="attachment_995" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-fread.png"><img src="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-fread-300x192.png" alt="Forward Read" title="2d-fread" width="300" height="192" class="size-medium wp-image-995" /></a><p class="wp-caption-text">Forward Read</p></div><br />
<div id="attachment_994" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-bkwdread.png"><img src="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-bkwdread-300x192.png" alt="" title="2d-bkwdread" width="300" height="192" class="size-medium wp-image-994" /></a><p class="wp-caption-text">Backwards Read</p></div><br />
<div id="attachment_993" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-randread.png"><img src="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-randread-300x192.png" alt="" title="2d-randread" width="300" height="192" class="size-medium wp-image-993" /></a><p class="wp-caption-text">Random Read</p></div><br />
<div id="attachment_992" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-reread.png"><img src="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-reread-300x192.png" alt="" title="2d-reread" width="300" height="192" class="size-medium wp-image-992" /></a><p class="wp-caption-text">Re-Read</p></div><br />
<div id="attachment_991" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-recrewrite.png"><img src="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-recrewrite-300x192.png" alt="" title="2d-recrewrite" width="300" height="192" class="size-medium wp-image-991" /></a><p class="wp-caption-text">Rec? Re-Write</p></div>
<div id="attachment_990" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-write.png"><img src="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-write-300x192.png" alt="" title="2d-write" width="300" height="192" class="size-medium wp-image-990" /></a><p class="wp-caption-text">Write</p></div><br />
<div id="attachment_998" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-strideread.png"><img src="http://www.mywushublog.com/wp-content/uploads/2010/06/2d-strideread-300x192.png" alt="" title="2d-strideread" width="300" height="192" class="size-medium wp-image-998" /></a><p class="wp-caption-text">Strided Read</p></div>
<p>The S2N9900 is a pretty nice device. Although you have to use TELNET (yeesh, couldn&#8217;t they spend a few more bucks on a small ARM processor and use ssh?), the controllers have a decent command line environment with HELP pages. What is also nice is the company provides the documentation for their products for free, and no registration is required. Good Job!</p>
<p>As far as raw read and write speeds, that is hard to nail down. I&#8217;ve been using IOZone, and when I run that, and take a look at &#8216;zpool iostat 1&#8242;, the ZFS Pool stays at a constant 200MB/sec for writes. I&#8217;ve seen in pop up higher, like 250MB to 500MB, but 200 seems to be the ceiling. I&#8217;ve done with and without a dedicated log device, with and without gmultipath, and finally, using the SSD RAID1 as a L2ARC cache device. All results are nearly identical. Reads are pretty crazy though, with 64GB of system memory, reading a file is nearly 1GB/sec.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mywushublog.com/2010/06/freebsd-and-multipath/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Samba 3.0.28a vs 3.3.3 on FreeBSD 7.1</title>
		<link>http://www.mywushublog.com/2009/04/samba-3028a-vs-333-on-freebsd-71/</link>
		<comments>http://www.mywushublog.com/2009/04/samba-3028a-vs-333-on-freebsd-71/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 05:30:58 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Geekyness]]></category>
		<category><![CDATA[Benchmarking]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Samba]]></category>

		<guid isPermaLink="false">http://www.mywushublog.com/?p=319</guid>
		<description><![CDATA[!!! UPDATE on 12/29/2009!!! Since this blog post seems to get a good amount or hits from google, if you are reading this, please see my updated post: http://www.mywushublog.com/2009/12/freebsd-8-0-a-great-nas-server/ which has some additional information about FreeBSD 8.0 EOF Lately at work, I&#8217;ve been involved with a very large file system that is being export from [...]]]></description>
			<content:encoded><![CDATA[<p><strong>!!! UPDATE on 12/29/2009!!!</strong><br />
Since this blog post seems to get a good amount or hits from google, if you are reading this, please see my updated post: <a href="http://www.mywushublog.com/2009/12/freebsd-8-0-a-great-nas-server/">http://www.mywushublog.com/2009/12/freebsd-8-0-a-great-nas-server/</a> which has some additional information about FreeBSD 8.0<br />
<strong>EOF</strong></p>
<p>Lately at work, I&#8217;ve been involved with a very large file system that is being export from Solaris 10/ZFS to windows and OS X users via Samba. Even with a very large Sun server (T5220) a lot of users are complaining about the slow performance of the system. I&#8217;m not going to go into details, but what it has prompted me to do is to look into what I use at home (FreeBSD + Samba) for my network storage needs, and see if I can improve the performance of it.</p>
<p>Well, I was checking out the very useful <a href="http://ivoras.sharanet.org/freebsd/freebsd8.html"><em>Whats cooking for FreeBSD 8</em></a>, unrelated to my Samba needs, when I noticed this post on <a href="http://ivoras.sharanet.org/blog/tree/2009-03-06.magical-incantations-for-samba.html">Ivan Voras&#8217; blog</a>. Ivan has some really cool information there, and with this new knowledge I began my update from running Samba 3.0.28a,2 to 3.3.3,0 (the comma represents the Ports version).</p>
<p>Hvala Ivan!</p>
<p>I&#8217;ve discussed my new FreeBSD environment before <a href="http://www.mywushublog.com/2008/06/freebsd-70-zfs-and-iscsi/">here</a>, with that, here are some quick details:</p>
<ul>
<li>OS: FreeBSD 7.1</li>
<li>Intel Core 2 Duo E6750 (2.66Mhz 4MB cache)</li>
<li>Intel S975XBX2 workstation motherboard</li>
<li>AMCC 3Ware 9650SE 4 port SATA RAID controller (4x PCI-e)
<ul>
<li>BatterY backup for the 3Ware so I can enable cached writes</li>
</ul>
</li>
<li>2GB ECC Crucial Memory Kit</li>
<li>ASUS EN6200 LE 16x PCI-e nVidia GFX card</li>
<li>4 Western Digital 1TB Drives</li>
</ul>
<p>The 4 1TB drives create a nice 2.6TB (RAID5) array which I used Samba to share out to my 4 other systems in the house (which is a mix of Windows XP and Vista, sorry, no OS X). I do a lot with this array, any work that Michele and I do like photo editing, word documents, media files, etc.. all gets saved to this volume. Needless to say, this volume is accessed A LOT, and if the house ever caught on fire, I&#8217;d save the server before the family (Hey, I could still look at their pictures and videos&#8230;).</p>
<h3>The Old Configuration</h3>
<p><strong>samba 3.0.28a:</strong></p>
<pre>[root@server samba3]> make showconfig
===> The following configuration options are available for samba-3.0.34,1:
     LDAP=on "With LDAP support"
     ADS=on "With Active Directory support"
     CUPS=on "With CUPS printing support"
     WINBIND=on "With WinBIND support"
     ACL_SUPPORT=on "With ACL support
     AIO_SUPPORT=on "With Asyncronous IO support"
     FAM_SUPPORT=on "With File Alteration Monitor"
     SYSLOG=on "With Syslog support"
     QUOTAS=off "With Disk quota support"
     UTMP=on "With UTMP accounting support"
     PAM_SMBPASS=off "With PAM authentication vs passdb backends"
     CLUSTER=off "With experimental cluster support"
     DNSUPDATE=off "With dynamic DNS update(require ADS)"
     EXP_MODULES=off "With experimental modules"
     POPT=on "With system-wide POPT library"
     PCH=on "With precompiled headers optimization"
     MAX_DEBUG=off "With maximum debugging"
     SMBTORTURE=off "With smbtorture"
===> Use 'make config' to modify these settings</pre>
<h3>The New Configuration</h3>
<p><strong>samba 3.3 config:</strong></p>
<pre>[root@server samba33]&gt; make showconfig
===> The following configuration options are available for samba-3.3.3:
     LDAP=on "With LDAP support"
     ADS=off "With Active Directory support"
     CUPS=on "With CUPS printing support"
     WINBIND=on "With WinBIND support"
     SWAT=off "With SWAT WebGUI"
     ACL_SUPPORT=on "With ACL support"
     AIO_SUPPORT=on "With Asyncronous IO support"
     FAM_SUPPORT=off "With File Alteration Monitor"
     SYSLOG=off "With Syslog support"
     QUOTAS=off "With Disk quota support"
     UTMP=off "With UTMP accounting support"
     PAM_SMBPASS=on "With PAM authentication vs passdb backends"
     DNSUPDATE=off "With dynamic DNS update(require ADS)"
     DNSSD=off "With DNS service discovery support"
     EXP_MODULES=off "With experimental modules"
     SHARED_LIBS=off "With shared libraries"
     POPT=on "With system-wide POPT library"
     MAX_DEBUG=off "With maximum debugging"
     SMBTORTURE=off "With smbtorture"
===> Use 'make config' to modify these settings</pre>
<p>If you have never dealt with FreeBSD&#8217;s Ports system, setting these compile time options is a breeze with &#8216;make config&#8217;. These options are presented in a nurses interface (which is great for ssh or other terminal based sessions) like this:</p>
<div id="attachment_322" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mywushublog.com/wp-content/uploads/2009/04/make-config.jpg"><img class="size-medium wp-image-322" title="make-config" src="http://www.mywushublog.com/wp-content/uploads/2009/04/make-config-300x197.jpg" alt="FreeBSD's make config screen" width="300" height="197" /></a><p class="wp-caption-text">FreeBSD&#39;s make config screen</p></div>
<p>The noticable options that I chose are <strong>AIO=yes</strong> and <strong>ADS=off</strong>. I&#8217;ve always compiled ADS support thinking that I would also get around to configuring Samba as an Active Directory-like server. But you know, there are really only two active users here, myself and Michele, and I don&#8217;t see the benefit right now. It could also slow down samba with the extra system calls so again, I&#8217;m leaving it out. AIO, Asyncronous IO, is new, and it is reported to increase size (oh wait, wrong advertisement) I mean, network IO.</p>
<h3>smb.conf options</h3>
<p>The performance related options in smb.conf are here:</p>
<pre>        socket options=SO_RCVBUF=131072 SO_SNDBUF=131072 TCP_NODELAY IPTOS_LOWDELAY
        min receivefile size=16384
        aio read size = 16384
        aio write size = 16384
        aio write behind = true
</pre>
<p>Again, I got these from Ivan&#8217;s post, plus what I&#8217;ve used for the past 8 years.</p>
<h3>Benchmarking with IOzone</h3>
<p>I ran a simple</p>
<pre>iozone -Ra -b samba3.0.28.xls</pre>
<p>for both versions of samba. I&#8217;d create some nice 3d charts but I really don&#8217;t know excel well enough. So, I&#8217;ll just link these here and you can see for yourself what the substantial differences are. Some quick glances while the tests ran, I saw around 50MB/sec for Samba 3.0.28 here and there, topping out at ~60MB/sec. This was only with 256MB and above files. Smaller files always stayed around 5-10MB/sec.</p>
<p>Samba 3.3.3 &#8211; with AIO enabled started up fine, but iozone crashed after wrting a few small 64K bytes. This was a little disappointing, however, I did continue the benchmark with the new send and recieve sizes.</p>
<p><strong>UPDATE:</strong><br />
After doing a little more reading, I found out I was supposed to load the aio kernel module. After running:</p>
<pre>
$ kldload aio
</pre>
<p>I restarted Samba with the AIO options enabled, re-ran iozone, and it all worked.</p>
<p><a href="http://www.mywushublog.com/wp-content/uploads/2009/04/ufs2-3ware-raid5-freebsd71.xls">ufs2-3ware-raid5-freebsd71</a></p>
<p><a href="http://www.mywushublog.com/wp-content/uploads/2009/04/samba3028.xls">samba3028</a></p>
<p><a href="http://www.mywushublog.com/wp-content/uploads/2009/04/samba333.xls">samba333</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mywushublog.com/2009/04/samba-3028a-vs-333-on-freebsd-71/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
