I’m not a huge fan of XKCD, but this is classic:
BTW, if you don’t play Call of Duty: Modern Warfare (1 or 2), you should start. Amazing game. Props to my fellow snipers.
I’m not a huge fan of XKCD, but this is classic:
BTW, if you don’t play Call of Duty: Modern Warfare (1 or 2), you should start. Amazing game. Props to my fellow snipers.
Phoronix has quickly risen as my favorite review site (along with Anandtech). They focus more on the *NIX world than other sites and have set the bar for a benchmark review site. In particular thanks to the Phoronix Test Suite, a venerable suite of benchmarks beautifully weaved together. Did I mention they like OpenSolaris? That helps too.
They recently uploaded a presentation by site founder Michael Larabel entitled: The Five Stages of Benchmark Loss. In it Michael shares his collected experiences on how people react when they dislike benchmark results. As he says, when someone comes out the winner in a benchmark they naturally exclaim, “Of course, we’re awesome, thanks.” but if they loose all kinds of pain results, which he lays out into 5 stages.
This is, imho, a must listen to recording. It’s audio only, the quality is horrible, but get some headphones and battle through. It’s absolutely worth it.
This is particularly interesting to me because it strikes at the heart of one of my greatest irritations with the geek world; that is, a total dismissal of benchmarking. Its paradoxical really, as computer scientists we should be preforming experiments with measurable results, analyzing data, using and constructing new tools, etc. But, any time a benchmark result is posted so many dipshits simply exclaim “bullshit, your an idiot” that it makes people incredibly gun shy.
I believe the result is the world of horrible benchmarking tools we have (particularly in the UNIX world) and almost no information on how to effectively benchmark systems and storage. If only we would help each other out by leaving Michael’s Stages 2 & 3, “Denial” and “Discreditation” and instead move directly to Stage 4, “Analysis”, the world would be a much better, kinder, and more informed place.
For instance, “bonnie++” is said to suck. But how many people can tell you why? “iozone” is said to be great. Again, how many people can tell you why? At some point, most particularly in this area, FUD is ingested and regurgitated on folks just trying to learn something, who in turn become bitter and pass on the pain to a whole new generation.
It is, I believe, the single best example of cynical bitterness and stupidity that rages our industry. To be sure it’s part of a larger issue, wherein geeks famously trash this technology or that (consider opinions against Java as another example) which are based in outdated or incomplete information or understanding. It only serves to discourage folks and keep the viral spread of cynicism and stupidity going.
VDbench (so named for its creator, Henk Vandenbergh of Sun Microsystems, formerly StorageTek) is a truly incredible enterprise grade storage benchmark that is free and open source. In celebration of vdbench 5.02′s release I thought it time we discuss it.
One of the things I love about VDbench is that its implemented in Java. Its extremely portable (Windows, Solaris, Linux, AIX, OS/X and HP/UX) and includes a both GUI and CLI interfaces. For tools like this I love having a nice soft GUI to help get your feet wet and then a CLI for the real work… makes learning so much easier.
The GUI is accessed using the “-gui” argument (ie: vdbench -gui). Its use simplistic but helps you grasp the essentials. That is, you select some storage device to benchmark, then you modify a workload/run definition which describes what work will be preformed and how, and finally you execute a run.
The CLI is similar conceptually, you create a configuration file in which you define storage devices, workloads and run definitions. To execute the run you pass the config to “vdbench” and away it goes.
Lets start with a super simple config:
*Example 1: Single run, one raw disk *SD: Storage Definition *WD: Workload Definition *RD: Run Definition * sd=sd1,lun=/dev/rdsk/c0t0d0s0 wd=wd1,sd=sd1,xfersize=4096,rdpct=100 rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1
First notice that we can insert comments with an asterisk. Next, we have 3 lines here:
For simple configurations like that above you’ll likely only have these 3 lines, but as you get more complex you’ll add them. Try this bigger configuration on for size:
sd=sd1,lun=/dev/rdsk/c0t1d0s0 sd=sd2,lun=/dev/rdsk/c3t0d0s0 wd=randomWrite,sd=sd*,readpct=0,rhpct=0,seekpct=100 wd=seqWrite,sd=sd*,readpct=0,rhpct=0,seekpct=0 wd=randomRead,sd=sd*,readpct=100,rhpct=0,seekpct=100 wd=seqRead,sd=sd*,readpct=100,rhpct=0,seekpct=0 wd=randomRW,sd=sd*,readpct=50,rhpct=0,seekpct=100 rd=default * Random Performance Tests rd=default,el=1m,in=6,forx=(4K),forth=(32),io=max,pause=20 rd=run1_randomReads,wd=randomRead rd=run2_randomWries,wd=randomWrite rd=run3_randomMix,wd=randomRW * Sequential Performance Tests rd=default,el=1m,in=6,forx=(512K),forth=(32),io=max,pause=20 rd=run4_seqReads,wd=seqRead rd=run5_seqWrites,wd=seqWrite
Here we use 2 disks instead of one, and we have multiple runs defined. The result is each run going sequentially till its done. So first my random read test goes, when its done my random write test goes, and so on until all 5 runs are done.
Lets look closer at the workloads which may be confusing at first. Consider this: “readpct=100,seekpct=100″ This says 100% Read and 100% Random (seek). So that’s a random read test. Whats strange at first is how you describe a sequential write test: “readpct=0,seekpct=0″. See where you could get confused? There is no “writepct” or “seqpct”. This may be odd but has advantages, for instance if you wanted a 60/40 R/W workload which is 50% random it would simply be: “readpct=60,seekpct=50″.
Here is a view of the output you’ll expect:
# ./vdbench.bash -f benr1
Vdbench distribution: vdbench501fix1
For documentation, see 'vdbench.pdf'.
17:24:39.168 input argument scanned: '-fbenr1'
17:24:39.304 Starting slave
17:24:39.616 All slaves are now connected
17:24:43.007 Starting RD=rd_rg-1; I/O rate: Uncontrolled MAX; Elapsed=10; For loops: threads=64
Jan 26, 2010 interval i/o MB/sec bytes read resp resp resp cpu% cpu%
rate 1024**2 i/o pct time max stddev sys+usr sys
17:24:44.070 1 18382.00 143.61 8192 69.87 3.237 311.373 14.003 61.5 57.8
17:24:45.043 2 16803.00 131.27 8192 70.07 3.399 192.972 13.894 67.3 64.8
17:24:46.042 3 18560.00 145.00 8192 69.68 3.599 207.747 14.271 71.9 69.6
17:24:47.033 4 17956.00 140.28 8192 69.67 3.315 194.255 12.589 72.7 70.6
17:24:48.017 5 19263.00 150.49 8192 69.89 3.346 294.203 13.374 73.6 71.2
17:24:49.023 6 17014.00 132.92 8192 69.72 3.502 220.248 13.466 68.7 66.7
17:24:50.041 7 19367.00 151.30 8192 69.49 3.453 301.330 14.010 72.2 70.0
17:24:51.039 8 15713.00 122.76 8192 69.74 4.011 279.812 16.980 61.0 59.2
17:24:52.039 9 18643.00 145.65 8192 70.44 3.230 226.911 13.323 70.8 68.9
17:24:53.021 10 16376.00 127.94 8192 69.82 3.940 224.594 14.232 69.5 67.2
17:24:53.032 avg_2-10 17743.89 138.62 8192 69.84 3.520 301.330 14.015 69.7 67.6
17:24:53.663 Slave localhost-0 terminated
17:24:53.697 Vdbench execution completed successfully. Output directory: /root/VD/output
In addition to doing raw tests it can also preform filesystem based workloads (similar but more primitive than Filebench in this respect). Using its sister-application “SWAT” you can trace I/O and replay it through vdbench. And all sorts of other crazy fun things. Best of all is that it has a fantastic PDF manual to help you understand all the essentials.
Over the last year or so I’ve become a huge fan of the tool. Particularly for testing raw storage, its simply awesome to get reliable and repeatable results for device capabilities which can then be used for math in architecting solutions. When you pair up this tool with FileBench you can build a very fine-grained and realistic testbed.
Its that time of year again for OpenSolaris Governing Board (OGB) Elections. This is the time of year that we clean up contributor grants within our meritocracy and generally clean house.
The Annual Report was due Feb 4th but is still in the works. Nominations for OGB will open on Feb 15th and close on Mar 1st. If you are seeking a core contributor grant (and the voting rights that come with it) you need to get that approved by Feb 14th, so look sharp.
Voting itself will open on Mar 8th and close on Mar 22nd with results posted the following day. The new OGB will take office on April 1st (no joke… har har).
You may be asking yourself… will this facade of a governance continue now that Oracle is in charge? So far they haven’t taken any steps to intervene or change anything that I’m aware of. Mr. Peter Tribble requested OGB liaison Vincent Murphy to address the matter in January, but if such a response came it happened on the OGB-Private mailing list. (The same mailing list I proposed and voted to have destroyed when I was on the board.)
While I have great respect for many of the people on the board, I maintain that the entity continues to be useless. Attempts on the part of the community to turn the board into a useful platform of leadership have been undermined by persons unnamed time and time again such that for over 2 years its been a complete waste of time. I rejected my nomination to it last year and if nominated this year will do so again. Until the destructive elements within Sun’s ranks are removed and real commitments are made there isn’t any reason to expend the time on a fools errand. I gave a presentation on the topic 2 years ago and stand by it today: OpenSolaris Governance Presntation at Silicon Valley OpenSolaris Users Group (skip to the 1hour mark for my preso)
The message was simple:
Today’s my last day at Sun. I’ll miss it. Seems only fitting to end on a #haiku. Financial crisis/Stalled too many customers/CEO no more
Please post your thoughts on Jonathan’s leaving. Its a mixed emotion… on one hand he set some great goals and put a fire under things. A lot of us believed in him. And yet, he failed to execute and ultimately was responsible for Sun’s demise. Could someone else have done a better job and still kept the culture alive? I don’t know honestly.
I’ll continue to stay neutral on the subject and reserve judgment until the behind-the-scenes stories trickle out over the next months and years. Jonathan screwed up, yes, but I think that Jonathan also got screwed himself, more than we realize. Time will tell.
In other news, Oracle is finally doing what has needed to be done for years: Oracle to Revamp Sun Supply Chain. One of the biggest complaints by customers for years has been inability to get timely delivery of systems. Its good to see signs of that era ending.
Also, Project Darkstar & Kenai are being axed. Project Kenai, a SourceForge like project hosting service provided free by Sun, will close its doors on April 2nd 2010. You have untill then to get stuff out. One of the most important projects there, Immutable Service Containers (ISC) has moved to OpenSolaris.org.
Dear Oracle,
Congratulations on the EU approval of your acquisition of Sun Microsystems, Inc. Many of us in the various Sun communities spent years working closely with Oracle products on Sun technology and feel right at home being part to the Oracle family. The business savvy and dedication to customer success will be a welcome change in the direction of all of Sun’s technologies.
While the strategy webcasts and FAQs have been fantastic, there are many questions customers have regarding the future of Solaris, OpenSolaris and the technologies within. It’s no secret that for several months Oracle has been involved to some degree in Sun engineering directions and therefore it does not seem unreasonable to ask for answers even so soon after the EU green-light.
First, and of foremost concern, is the future of the Solaris product for enterprise customer, currently “Solaris 10″. Will there be a Solaris 11? (It would fit nicely with Oracle’s scheme, btw.) Will it be compatible with existing Solaris technologies (Jumpstart, SysV PKGs, etc) or will the existing path to scrap these technologies in favor of new and unproven solutions created within the OpenSolaris platform be chosen instead?
Please understand that until recently customers could choose the traditional product (Solaris 10), the advanced development product (OpenSolaris Distribution), or use the bridge between these two worlds: Solaris Express Community Edition(SX:CE). However, with SX:CE’s recent retirement Solaris shops are forced to make a choice: go forward and accept uncomfortable and disruptive changes of OpenSolaris Distro or fall back into the technically inferior but fully supported and well understood Solaris 10. Sadly, some are opting to leave all together due to a lack of direction.
Decisions need to be made and customers need guidance in order to make them. Consistent with Sun’s legacy, the OpenSolaris project has been phenomenally successful in empowering customers and driving innovation, however management has continually failed to produce a coherent roadmap for enterprises to bank on.
Therefore, I would humbly ask that Oracle definitively provide guidance on the following:
I look forward to these details which will hopefully put an end to the Solaris FUD and put us back on a path of profitable and productive growth, for the sake of the community, customers, and Oracle itself.
Ben Rockwood
(Open)Solaris Developer & Evangelist