<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Lotsa FreeBSD</title>
	<link>http://blogs.freebsdish.org/ivoras</link>
	<description>Just another FreeBSD Developer's weblog</description>
	<pubDate>Fri, 04 Jul 2008 21:48:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>nfs+sshfs+samba dance</title>
		<link>http://blogs.freebsdish.org/ivoras/2008/07/04/nfssshfssamba-dance/</link>
		<comments>http://blogs.freebsdish.org/ivoras/2008/07/04/nfssshfssamba-dance/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 00:43:25 +0000</pubDate>
		<dc:creator>ivoras</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<category><![CDATA[NFS]]></category>

		<category><![CDATA[Samba]]></category>

		<category><![CDATA[sensawunda]]></category>

		<category><![CDATA[sshfs]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/ivoras/2008/07/04/nfssshfssamba-dance/</guid>
		<description><![CDATA[	Todays wow, this really works! moment brought to you by: NFS, sshfs (from FUSE) and Samba.

	There&#8217;s a NFS file server in my office, from which I mount stuff into my home directory on my workstation. There&#8217;s a small FreeBSD server in my living room which, among other things, serves Samba to my Windows desktop machine. [...]]]></description>
			<content:encoded><![CDATA[	<p>Todays <i>wow, this really works!</i> moment brought to you by: <span class="caps">NFS</span>, sshfs (from <span class="caps">FUSE</span>) and Samba.</p>

	<p>There&#8217;s a <span class="caps">NFS</span> file server in my office, from which I mount stuff into my home directory on my workstation. There&#8217;s a <a href="http://fit-pc.com">small</a> FreeBSD server in my living room which, among other things, serves Samba to my Windows desktop machine. Using sshfs on the home server, I mounted my home directory from my workplace as a subdirectory of my local user, and I&#8217;m accessing it from my Windows desktop over Samba.</p>

	<p>Before the bytes hit the drives on the server, here&#8217;s the path they must take:<br />
<code><br />
[Home desktop, Windows] -- Samba -- [Home server, FreeBSD] -- sshfs -- [Work desktop, Linux] -- NFS -- [Work server, FreeBSD]<br />
</code></p>

	<p>And it works. Really. I&#8217;m editing OpenOffice files on my Work server right now.</p>

	<p>Of course it <i>should work</i> &#8211; all of these individual components in the chain are tested and known to work so there&#8217;s practically no real concern, but seeing all this in operation made me think how many standards, interoperability specs and engineering went into making this possible, especially since the actual connections between the components are very varying: <span class="caps">ADSL</span>, Ethernet of various speeds and I&#8217;m sure there&#8217;s still <span class="caps">ATM</span> somewhere in the telco&#8217;s infrastructure. The number of different operating systems the bytes go through (if &#8220;embedded&#8221; ones on routers and similar equipment is also counted) is probably huge.</p>

	<p>We live in great times.</p>

	<p>(Of course, I won&#8217;t try anything that depends on file locking <img src='http://blogs.freebsdish.org/ivoras/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>

	<p>The only problem is that sshfs basically hangs the system when the IP changes on the <span class="caps">ADSL</span> side (file system lookups hang).</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/ivoras/2008/07/04/nfssshfssamba-dance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How many failed drives can take down a RAID5 array?</title>
		<link>http://blogs.freebsdish.org/ivoras/2008/06/13/how-many-drives-can-take-down-raid5/</link>
		<comments>http://blogs.freebsdish.org/ivoras/2008/06/13/how-many-drives-can-take-down-raid5/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 14:49:06 +0000</pubDate>
		<dc:creator>ivoras</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<category><![CDATA[disaster recovery]]></category>

		<category><![CDATA[RAID]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/ivoras/2008/06/13/how-many-drives-can-take-down-raid5/</guid>
		<description><![CDATA[	The answer, of course, is &#8220;two or more&#8221;. And it&#8217;s not nice when it happens.
Two of the drives on a nice shiny FC array failed at approximately the same time (possibly within about two minutes of each other), and both were in the same RAID5 array. Definitely not good. On the other hand I confirmed [...]]]></description>
			<content:encoded><![CDATA[	<p>The answer, of course, is &#8220;two or more&#8221;. And it&#8217;s not nice when it happens.<br />
Two of the drives on a nice shiny FC array failed at approximately the same time (possibly within about two minutes of each other), and both were in the same <span class="caps">RAID5</span> array. Definitely not good. On the other hand I confirmed that PostgreSQL can run off <span class="caps">NFS </span>(both server and client on FreeBSD) without problems so far (this is the temporary setup until we get a new array).</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/ivoras/2008/06/13/how-many-drives-can-take-down-raid5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Weekend hack: adfsd, a kqueue-assisted rsync tool</title>
		<link>http://blogs.freebsdish.org/ivoras/2008/06/08/weekend-hack-adfsd-a-kqueue-assisted-rsync-tool/</link>
		<comments>http://blogs.freebsdish.org/ivoras/2008/06/08/weekend-hack-adfsd-a-kqueue-assisted-rsync-tool/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 22:44:09 +0000</pubDate>
		<dc:creator>ivoras</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<category><![CDATA[adfs]]></category>

		<category><![CDATA[kqueue]]></category>

		<category><![CDATA[NFS]]></category>

		<category><![CDATA[rsync]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/ivoras/2008/06/08/weekend-hack-adfsd-a-kqueue-assisted-rsync-tool/</guid>
		<description><![CDATA[	I created a small program to help me synchronize files in sort-of real-time between two directories (the idea is that one of them is on a NFS server). There are no replicated file systems for FreeBSD and the canonical way to do this is usually to use rsync or something like it. The problem here [...]]]></description>
			<content:encoded><![CDATA[	<p>I created a small program to help me synchronize files in sort-of real-time between two directories (the idea is that one of them is on a <span class="caps">NFS</span> server). There are no replicated file systems for FreeBSD and the canonical way to do this is usually to use rsync or something like it. The problem here is that rsync always traverses both directory structures, compares files and then copies them (via a variety of smart algorithms but it&#8217;s still very resource-intensive).</p>

	<p>So I created a daemon that uses <tt>kqueue(2)</tt> to monitor which files changed and feed only those files to rsync (it&#8217;s not exactly a new idea, I&#8217;m sure somebody has also mentioned it somewhere on the FreeBSD lists). This is in many ways a suboptimal solution since it needs to keep an open file descriptor for all the monitored files (which ties in kernel resources and memory) so it won&#8217;t scale for really large directories, which could actually benefit the most from this approach. It will work reasonably well for a small number of files (up to several tens of thousands), with modifying <tt>kern.maxfiles</tt> and <tt>kern.maxfilesperproc</tt> sysctls and login session limits (if applicable).</p>

	<p>Anyone who&#8217;s interested can <a href="http://ivoras.sharanet.org/stuff/adfs.tgz">download the adfs daemon</a> and try it. This was hacked together over the weekend so it probably has some problems. I&#8217;ll fix those problems that prevent me from using it, but I&#8217;ll update the online archive only if there are interested users.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/ivoras/2008/06/08/weekend-hack-adfsd-a-kqueue-assisted-rsync-tool/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The real power of &#8220;scripting&#8221; / interpreted languages</title>
		<link>http://blogs.freebsdish.org/ivoras/2008/06/08/the-real-power-of-scripting-interpreted-languages/</link>
		<comments>http://blogs.freebsdish.org/ivoras/2008/06/08/the-real-power-of-scripting-interpreted-languages/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 18:03:17 +0000</pubDate>
		<dc:creator>ivoras</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/ivoras/2008/06/08/the-real-power-of-scripting-interpreted-languages/</guid>
		<description><![CDATA[	I&#8217;m writing a small project in C (will talk about it later) and I really miss the expressiveness that dynamic languages like Python offer. There&#8217;s one more thing in addition to elusive &#8220;elegance&#8221; and similar nontangible properties: the ability to easily use and implement better algorithms. Yes, since Turing it was obvious that the actual [...]]]></description>
			<content:encoded><![CDATA[	<p>I&#8217;m writing a small project in C (will talk about it later) and I really miss the expressiveness that dynamic languages like Python offer. There&#8217;s one more thing in addition to elusive &#8220;elegance&#8221; and similar nontangible properties: the ability to easily use and implement better algorithms. Yes, since Turing it was obvious that the actual programming language in use is more-or-less syntactic sugar, but you wouldn&#8217;t exactly like to spend your days programming infinite tapes of symbols, would you? <img src='http://blogs.freebsdish.org/ivoras/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

	<p>In this (again, emphasis on &#8220;small&#8221;) project, there were a couple opportunities where I could make use of a fast data-access structure like a hash table (since I need to store and retrieve a lot of data entries) or dynamic memory allocation (since I don&#8217;t want to artificially limit the number of these entries) but I just didn&#8217;t feel like writing all that code to implement a hash table in C (or use a heavy external library) and deal with memory reallocation and track all those pointers. Yes, I&#8217;m lazy. In a more abstract language I could just instantiate a dictionary and say <tt>d[i] = something</tt> and this would actually be very efficient and take care of memory allocation automagically. Since I limited myself to basic C, I chose simpler algorithms like linked lists and evil static arrays on stack. Ironically, these structures would be comparatively significantly more inefficient in Python.</p>

	<p>Of course, at its roots this can be stripped down to be simply a choice between using pre-packaged routines instead of writing your own (aka the <span class="caps">NIH</span> problem), but in this case it would actually make my simple program faster and more efficient &#8211; despite the overhead of an interpreted, dynamic language.</p>

	<p>There are many more similar cases &#8211; programmers write bubblesorts in C because they are easy to implement, while going to a higher level of abstraction they could just write <tt>mylist.sort()</tt> and would get QuickSort or some other efficient algorithm for free, etc. etc.</p>

	<p>Does anyone know of a library / collection of algorithms for C similar to <tt>glib</tt> only <span class="caps">BSD</span>-licensed? (Yes, I know about C++ algorithms, I don&#8217;t want to use C++).</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/ivoras/2008/06/08/the-real-power-of-scripting-interpreted-languages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FreeBSD on Subversion!</title>
		<link>http://blogs.freebsdish.org/ivoras/2008/06/01/freebsd-on-subversion/</link>
		<comments>http://blogs.freebsdish.org/ivoras/2008/06/01/freebsd-on-subversion/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 11:12:44 +0000</pubDate>
		<dc:creator>ivoras</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/ivoras/2008/06/01/freebsd-on-subversion/</guid>
		<description><![CDATA[	The day has finally come &#8211; FreeBSD is using Subversion instead of CVS for the base source tree! Congratulations to everyone involved, especially Peter Wemm  

	FreeBSD&#8217;s source CVS is one of the oldest and biggest in existence; it&#8217;s approximately 12 years old and has apparently had something like 180,000 commits over the years, or [...]]]></description>
			<content:encoded><![CDATA[	<p>The day has finally come &#8211; <a href="http://lists.freebsd.org/pipermail/cvs-src/2008-June/091764.html">FreeBSD is using Subversion instead of <span class="caps">CVS</span></a> for the base source tree! Congratulations to everyone involved, especially Peter Wemm <img src='http://blogs.freebsdish.org/ivoras/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

	<p>FreeBSD&#8217;s source <span class="caps">CVS</span> is one of the oldest and biggest in existence; it&#8217;s approximately 12 years old and has apparently had something like 180,000 commits over the years, or on average slightly more than 41 commits daily. A checkout of <span class="caps">RELENG</span>_7 branch holds more than 42,000 files (in 482 MB as du sees it).</p>

	<p>This move was discussed extensively during the DevSummit at <span class="caps">BSD</span>Can 2008; there have been many issues with <span class="caps">CVS</span> over the years, most of which are minor enough to be overlooked, but some of which are just nasty (the inability of <span class="caps">CVS</span> to move/rename files, bad handling of branching in the event of constant new development and additions to the directory tree, non-atomic commits) and have frequently required manual interventions in the <span class="caps">CVS</span> repository (&#8220;repocopy&#8221; is one of the relatively frequently requested operations to the <span class="caps">CVS</span> admins).</p>

	<p>Old infrastructure, of which <tt>cvsup</tt> / <tt>csup</tt> is probably the most important part, will continue to work as code will continually be mirrored from <span class="caps">SVN</span> to <span class="caps">CVS</span>, until suitable replacements or upgrades to the above tools are created. This is also the reason the name &#8220;CVS&#8221; will be present for some time in the system infrastructure, until all of it is updated. Ports will continue to use <span class="caps">CVS</span> for the foreseeable future.</p>

	<p>To make a source base this large work efficiently on <span class="caps">SVN</span>, version 1.5 had to be used, since it creates its database files in a hash-tree of directories on the file system instead of one huge directory with all the files in it.</p>

	<p>Also see <a href="http://www.freebsd.org/news/newsflash.html#event20080603:01">the official announcement of Subversion</a> and <a href="http://people.freebsd.org/~peter/svn_notes.txt">Peter Wemm&#8217;s notes about Subversion</a> (very useful to developers).</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/ivoras/2008/06/01/freebsd-on-subversion/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BSDCan: final day</title>
		<link>http://blogs.freebsdish.org/ivoras/2008/05/18/bsdcan-final-day/</link>
		<comments>http://blogs.freebsdish.org/ivoras/2008/05/18/bsdcan-final-day/#comments</comments>
		<pubDate>Sun, 18 May 2008 04:52:32 +0000</pubDate>
		<dc:creator>ivoras</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<category><![CDATA[debian]]></category>

		<category><![CDATA[random]]></category>

		<category><![CDATA[random.debian]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/ivoras/2008/05/18/bsdcan-final-day/</guid>
		<description><![CDATA[	It was a really great conference! I have so many good impressions it&#8217;s just hard to sort them all out and write them down. Instead of that, here&#8217;s a treat for the geeky-minded  

	In accordance with the specification expressed here:

	

	... I&#8217;ve created a device driver that implements the functionality in kernel. In honour of [...]]]></description>
			<content:encoded><![CDATA[	<p>It was a really great conference! I have so many good impressions it&#8217;s just hard to sort them all out and write them down. Instead of that, here&#8217;s a treat for the geeky-minded <img src='http://blogs.freebsdish.org/ivoras/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

	<p>In accordance with the specification expressed here:</p>

	<p><img src="http://ivoras.sharanet.org/stuff/random-debian.jpg"></p>

	<p>... I&#8217;ve created a device driver that implements the functionality in kernel. In honour of the operating system by which this work was inspired, I name the driver <tt>random.debian</tt>. The kernel module creates a device entry (<tt>/dev/random.debian</tt>) which is a infinite source of random data with entropy compatible with the above specification. The <a href="http://ivoras.sharanet.org/stuff/random-debian.tgz">source code tarball for the Debian-like random data source</a> is of course available under the <span class="caps">BSD</span> license. This will work on any recent version of FreeBSD.</p>

	<p>As much as I would like to have though of this first, the idea was actually put out by <span class="caps">PHK</span> or Robert Watson while we were waiting for dinner, so that part of the credit goes to them. <img src='http://blogs.freebsdish.org/ivoras/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

	<p>This DevSummit+BSDCan was very fun and educational and will definitely try to be here in the next years also.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/ivoras/2008/05/18/bsdcan-final-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>DevSummit: day 1</title>
		<link>http://blogs.freebsdish.org/ivoras/2008/05/14/devsummit-day-1/</link>
		<comments>http://blogs.freebsdish.org/ivoras/2008/05/14/devsummit-day-1/#comments</comments>
		<pubDate>Wed, 14 May 2008 21:31:04 +0000</pubDate>
		<dc:creator>ivoras</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/ivoras/2008/05/14/devsummit-day-1/</guid>
		<description><![CDATA[	It was a nice day in Ottawa, Canada today, though judging by the clouds tomorrow might not be. Not that we noticed, spending all the time within the conference room. Various talks kept developers interested, and the lack of Internet connectivity (web is not the Internet&#8230;) kept them focused on the issues at hand. I [...]]]></description>
			<content:encoded><![CDATA[	<p>It was a nice day in Ottawa, Canada today, though judging by the clouds tomorrow might not be. Not that we noticed, spending all the time within the conference room. Various talks kept developers interested, and the lack of Internet connectivity (web is not the Internet&#8230;) kept them focused on the issues at hand. I gave my talk about finstall among the first in the morning and gathered very positive feedback and many new ideas. It&#8217;s unfortunate that the project isn&#8217;t sponsored any more (Google SoC for it was not extended to this year) so this might encourage people or organizations to support the project financially. Among other interesting talks (my personal, unobjective choice) were presentations on VImage (network virtualization) by my colleague from University, Marko Zec, the DTrace talk by John Birrell, and various talks about the ongoing network stack optimizations (many people here). Unfortunately the Release packaging BoF didn&#8217;t happen due to lack of interest apparently, so there&#8217;s one missed chance to discuss finstall.</p>

	<p>All together, it was a very nice spent day with many opportunities to learn new things and speak to like-minded people working on interesting things.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/ivoras/2008/05/14/devsummit-day-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>finstall alpha4</title>
		<link>http://blogs.freebsdish.org/ivoras/2008/05/11/finstall-alpha4/</link>
		<comments>http://blogs.freebsdish.org/ivoras/2008/05/11/finstall-alpha4/#comments</comments>
		<pubDate>Sun, 11 May 2008 21:35:00 +0000</pubDate>
		<dc:creator>ivoras</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<category><![CDATA[finstall]]></category>

		<category><![CDATA[install]]></category>

		<category><![CDATA[pxe]]></category>

		<category><![CDATA[remote install]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/ivoras/2008/05/11/finstall-alpha4/</guid>
		<description><![CDATA[	Here&#8217;s another build of finstall, alpha4. The most important change this time is native support for remote / headless installs via systoold network daemon.

	This enables headless installs of FreeBSD in the following fashion:

	
	Insert the CD with the finstall in the server (obviously, the server needs to have a CD/DVD reader; USB ones are mostly fine). [...]]]></description>
			<content:encoded><![CDATA[	<p>Here&#8217;s another build of <a href="http://ivoras.sharanet.org/stuff/freebsd7-finstall-alpha4.iso.bz2">finstall, alpha4</a>. The most important change this time is native support for remote / headless installs via <tt>systoold</tt> network daemon.</p>

	<p>This enables headless installs of FreeBSD in the following fashion:</p>

	<p><ol></p>
	<p><li>Insert the CD with the finstall in the server (obviously, the server needs to have a CD/DVD reader; <span class="caps">USB</span> ones are mostly fine). The server can be <em>headless</em>, i.e. without a monitor, a keyboard or a mouse.</li><br />
<li>Connect the server to a <span class="caps">LAN</span>. No remote-network hops (routing) are allowed since <span class="caps">UDP</span> broadcasts are used to locate the headless nodes. Boot off the finstall CD.</li><br />
<li>On another machine (one that has monitor+keyboard+mouse or equivalent <span class="caps">X11</span> devices) start the installer front-end.</li><br />
<li>In the front-end, opt to connect to a remote finstall node, choose the one you want. At this point you can see boot-time <em>dmesg</em> data from the nodes so you can locate the right one in case there are many of them.</li><br />
<li>Proceed to use the front-end <span class="caps">GUI</span> just like it was a local install.</li><br />
<li>Reboot, configure, use the server, etc.</li><br />
</ol></p>

	<p><p align="center"><img src="http://ivoras.sharanet.org/stuff/connectserver.png" width="400"></p></p>

	<p>As described, the primary usage for this is to setup headless servers.</p>

	<p><span class="caps">PXE</span> is supported in theory, but not tried. The idea is that, since the whole finstall setup is actually a live FreeBSD system, <span class="caps">PXE</span> can be configured manually once the CD is booted somewhere (possibly on a virtual machine), and remote systems can be booted from this CD-based file system, then installed as if they are booted locally. This is experimental and untried.</p>

	<p>This mode of installation has many side-effect uses, such as scripting the remote install, etc.</p>

	<p>More about this and other features of finstall will be presented on <span class="caps">BSD</span>Can 2008.</p>

	<p><strong>Update:</strong> The original <span class="caps">ISO</span> image posted above had a trivial but unfortunate bug. Download the new <span class="caps">ISO</span> image with <span class="caps">MD5</span> fingerprint a9eebbdc546565a9eb9c6622bb948d75.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/ivoras/2008/05/11/finstall-alpha4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Just how fast FreeBSD 4.x was?</title>
		<link>http://blogs.freebsdish.org/ivoras/2008/04/15/just-how-fast-freebsd-4x-was/</link>
		<comments>http://blogs.freebsdish.org/ivoras/2008/04/15/just-how-fast-freebsd-4x-was/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 11:23:38 +0000</pubDate>
		<dc:creator>ivoras</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<category><![CDATA[mdcached]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[vimage]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/ivoras/2008/04/15/just-how-fast-freebsd-4x-was/</guid>
		<description><![CDATA[	Background: I&#8217;m developing something that should eventually become a high performance network server, with high transactions/s rate (basically a database cache). Currently I&#8217;m experimenting with various modes of using SMP facilities for the server (thread usage, binding, etc.). A big problem is that, while I temporarily have a server on which to test it, I [...]]]></description>
			<content:encoded><![CDATA[	<p>Background: I&#8217;m developing something that should eventually become a high performance network server, with high transactions/s rate (basically a database cache). Currently I&#8217;m experimenting with various modes of using <span class="caps">SMP</span> facilities for the server (thread usage, binding, etc.). A big problem is that, while I temporarily have a server on which to test it, I don&#8217;t have a client machine which could push the server to the limits. I currently have a &#8220;dumb&#8221; multithreaded benchmark client, spawning N threads (N is 40 in these tests), each of which is a blocking network client (i.e. one thread per connection). This setup, when run via local Unix sockets on the server, can achieve 125,000 trans/s, but I believe the result should be much better if the client doesn&#8217;t task the <span class="caps">CPU</span> of the server.</p>

	<p>Marko Zec helped me with that, temporarily providing me a machine which dual boots 7.x and 4.x with his <span class="caps">VIMAGE</span> patches, as well as without the patches. Originally I just used the 7.0 system, and achieved something like 62,000 trans/s, which is too low for me. On his insistence I booted 4.11 and ported the client-side benchmark on it. Without any significant modifications except those needed for the difference between gcc 2.9x and gcc 4, the <strong>same</strong> client code rocketed to 81,000 trans/s! This is using libc_r, meaning the whole 40-threaded thing is visible to the kernel as one process (4.x doesn&#8217;t have kernel support for multithreading)! This number is still too low and I&#8217;ll probably need to find several machines that could work at the same time to overtax the server (which will be very hard) but just the raw difference between 4.x and 7.x is staggering. Network card is bge, gigabit, directly connected to the server via crossover cable.</p>

	<p>On the bright side, <span class="caps">VIMAGE</span> patches don&#8217;t influence the performance noticeably.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/ivoras/2008/04/15/just-how-fast-freebsd-4x-was/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Portsnap propagation</title>
		<link>http://blogs.freebsdish.org/ivoras/2008/03/09/portsnap-propagation/</link>
		<comments>http://blogs.freebsdish.org/ivoras/2008/03/09/portsnap-propagation/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 21:55:32 +0000</pubDate>
		<dc:creator>ivoras</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/ivoras/2008/03/09/portsnap-propagation/</guid>
		<description><![CDATA[	If you&#8217;re wondering how long it takes to propagate a commit made on ports to portsnap servers, the answer is: about two hours  
 ]]></description>
			<content:encoded><![CDATA[	<p>If you&#8217;re wondering how long it takes to propagate a commit made on ports to portsnap servers, the answer is: about two hours <img src='http://blogs.freebsdish.org/ivoras/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/ivoras/2008/03/09/portsnap-propagation/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
