Bonnie is available for my PowerBook. I do all my development work on this PowerBook, and I have a really really fast 160GB drive in a no-name external FireWire 400 enclosure that uses the same widely-used chipset that everybody else seems to be using (the OXFW-911 chipset). I was curious as to whether using this drive would speed up my build and test process, which right now runs at about 4 1/2 minutes (almost all of which is the test suite). So, I ran Bonnie on the external drive and the internal drive. Here are the results:
For the external drive (a Maxtor DiamondMax Plus 160GB drive, which spins at 7200 RPM, has an ATA/133 interface, and an 8MB buffer, and is in an enclosure that only does ATA/66 and FireWire 400):-------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 0 6261 70.2 13928 12.9 13832 10.0 7805 74.6 200193 68.4 3976.1 34.8And for the internal drive (a Hitachi IC25N060ATMR04-0 60GB drive, which spins at 4200 RPM, has an ATA/100 interface, and an 8MB buffer):-------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 0 6781 73.4 24717 20.5 23608 19.1 8340 75.0 198159 61.9 1776.9 13.3
The system is a 12" PowerBook G4, 867Mhz CPU, 640MB RAM, running Mac OS X 10.3.5 and both drives have a journaled HFS+ filesystem on them.
Wow. I had never looked up the specs for the internal drive before I wrote this. Aside from the 4200 RPM bit, this is actually a really nice drive. I didn't expect an 8MB buffer in a little laptop drive. The seek time is 12ms average, compared with the Maxtor drive's average seek time, which is 9.8ms. The external drive is bottlenecked by the Firewire 400 interface (40MB/sec max) while the internal drive gets to run at ATA/100 speed (100MB/sec max). So, the internal drive wins on everything except random seeks. Note that although the "average seek time" rating provided by drive vendors is for cylinder-to-cylinder seeks (physical movement of the drive heads across the platter surface), the Bonnie seek time is for logical seeking within the test file, which would map to a smaller number of physical movements since some of that seeking is accomplished by waiting for the right part of the cylinder to spin around under the head. I'm guessing that this is where the 7200 RPM vs. 4200 thing is paying off for the Maxtor drive; it takes less time for the physical head seek, and then about half as much time for the right sector to rotate under the head. I don't believe that 200MB/sec sequential read number, though. 40MB/sec and 100MB/sec are the theoretical hardware maxima for the external and internal drive, so there's no way that both drives are doing 200. I assume that the Darwin port of Bonnie is just failing to bypass the disk cache in this case, and this is a useless figure.
Some other stuff was running at the time, but it was all idle. I thought about quitting everything to allow for a more perfect benchmark, but in reality I'm going to run all sorts of apps while I'm working so I decided that for my purposes it was better to just run the benchmark while other apps were open as well.
I decided to benchmark my Debian Linux server as well, since it has a pair of mirrored 80GB 7200RPM ATA/100 drives and an ATA/100 160GB hard disk, all on an ATA/133 controller, and each on a separate ATA/133 bus, and all of which have a ReiserFS (v3.6) filesystem on them, so this system should absolutely kick unholy ass on this benchmark. Sadly, the CPU overheated (>105C!!) during the putc() test, and the server halted. God dammit. This is even with a new CPU fan and with both sides of the case removed (which is the only way this server has been stable in the last 8 months or so). I give up. I've got to stop wasting my valuable time trying to fix this box, and just buy a new case/mobo/CPU/RAM combo for $400 or whatever and get a ridiculously fast new server that doesn't threaten to melt down every time I push it a little.
OK, I ran Bonnie again, this time with a 1.5GB test file instead of a 100MB test file. Apparently Bonnie doesn't actually bypass the OS's disk cache like I thought someone told me it did. So, these results are probably accurate:
Internal drive:-------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 0 6861 75.0 19583 17.3 7667 6.3 6767 65.2 15175 6.9 71.0 2.3External drive:-------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 0 6105 67.4 13519 12.5 6732 5.9 7015 66.8 13415 7.1 103.7 4.8
Once again, these are nowhere near the theoretical maxiumum transfer rates of the interfaces being used. This is probably a combination of filesystem overhead (both filesystems are journaled, so there's a lot of extra work happening each time a file is created or deleted) and plain old drive performance limitations (waiting for moving parts to finish moving so that data transfer can take place). The random seeks per second number is dramatically lower, also. Still, the external drive does a lot better on that test, probably for the same reason that it did with the 100MB test file.
So, I guess I'm not convinced that the Firewire 400 interface is a bottleneck, compared to actual drive performance. I guess if I had an external RAID array, I would be bumping up against that bottleneck.
It'd probably still be faster to compile stuff on the external drive, though, due to spindle contention issues. The internal drive and external drive are roughly the same speed, but the internal drive has the virtual memory swap file on it, as well as all of the application binaries and logs, so that disk has to do a lot of work just to run an app, regardless of whether that app then does something disk-intensive. I'll test that and post results later.
Q: How do you know someone's on crystal meth? A: You see them waiting for a bus, doing calisthenics and sit ups and running in place. Waiting for a bus. Very energetically exercising. Looking like they haven't bathed in a month. At 10:45pm on a Thursday night.
Here's someone who might benefit from some tweaking: "My mother is insane" (not my mother, some other guy's mother). Warning: 5MB of pictures are on the other end of that link.
Even hackers need hair care products.
Bobby will help you make sure your web pages are "accessible", if you're interested in that sort of thing. You probably should be.
Kim and I just got back from our trip to New York City, Buffalo, Niagara Falls, Toronto, and Clifton Park. We were in Toronto to see Alaina Hardie and in Clifton Park to see Kim's sister Lori, and her husband Steve. We had lots of fun and ate too much yummy restaurant food, and got rained on several times (but it was OK since we had Maid of the Mist rain gear on). There are pictures to be seen, of course.
We stayed with Kim's cousin Victoria and her husband Tom one evening while we were in NYC. I fully expected that people would stay up late talking, since we're not out there all that often. So, I bought a large coffee at Dunkin' Donuts on the way over, at about 10pm or something. I expected it to be on a par with the faux-large stuff at a typical yuppie coffee establishment. No. The "large" at Dunkin Donuts is on the scale of a Super Big Gulp. Of coffee. I was in a hurry to leave and it was cheap so I decided I'd just drink part of it and pour it out later. Didn't happen. I wasn't paying attention, and suddenly it was all gone. God damn, I just drank a half gallon of coffee at 11pm. Everybody basically went to sleep at a normal time and there I was, wired as hell, and still on Pacific time. I stayed up until about 2:30am, all by myself. At least I got some work done since I had brought my laptop (which has a full application development environment on it) and had my cell phone internet thing goin'.
After the funeral and burial on Thursday we flew out of JFK for Buffalo airport. It was a total zoo because of the storm in Florida. In fact, it was so packed with delayed passengers that the free wireless internet access was full; I could get a signal but no DHCP address. I asked a couple of other laptop users nearby and they agreed that they saw open wireless, but nothing past that was working. Fortunately I had the cell phone internet hookup going (bought the day before we left, in anticipation of lots of seat of the pants travel planning) so that worked. I saw a surprising number of people using similar devices. I seem to be about 2-3 years ahead of the market in terms of the services that seem obvious to me and that I'd be happy to pay for, vs. what is actually available. 3G wireless phones will be very very nice, whenever they finally arrive.
Niagara Falls was fun, mostly because it was raining so nobody was there. The Maid of the Mist is a must-do for any tourist. You get to sit at the bottom of Horseshoe Falls and look at the thundering power of all that water. The "cave of the winds" or whatever was totally drenched so we passed on that one. We also passed on the restaurant that had the sign saying "Fine Dining... and OTB!" Uh, yeah, sure. Fine dining and off track betting. Right. I bet their other location has stock investing seminars and live nude dancers.
Getting into Canada thru customs was a joke. "Where are you going?" "Toronto." "What for?" "To visit friends." "What are you bringing your friends?" Huh? "Uh, nothing." "OK, go ahead." They didn't even look in the vehicle or ask for our passports.
Toronto traffic is bad. Bad, I tell you. The travel guide will tell you the traffic is bad. I too am telling you it's bad. You won't really grasp it until you get there, though. Bad.
Our laughably oversized sport utility behemoth (which was provided to us even though I reserved a "compact" car) was due at a downtown rental location, which has an after-hours drop box. It's not really a rental car place; it's one of those little downtown franchise-y travel agent places that also has a rental car counter. Well, the parking deck had a 6' clearance limit, and the truck is something like 6'10" tall. Kim looked in the deck and said there wasn't even a drop box. So, we had to return it to another location. Ridiculous. More ridiculous was the runaround I got on the phone when trying to ask them what they wanted me to do with the truck (where to take it, etc.). They basically had no clue what to do, told me to call the airport location (who didn't pick up the phone), and said that they had lots of Florida storm callers who were more important. I still haven't gotten a credit card charge for the truck so I'm not sure how hard this will be to iron out. Fortunately, I didn't do anything wrong, and I have a paper receipt from the place I dropped off the truck at, so it'll work out OK in the end.
Toronto is a very cool city. It's unfortunate that we only had a couple of days to spend there, but that's the way our schedule worked out right now. I hope we can go back soon, as long as it's not during the winter. We met a lot of nice people and had fun.
We also had a very good time with Lori and Steve. The drive from Toronto to Albany was pretty boring, but we ate at the Little Thai House in Sycracuse, and that was downright yummy. Once in Clifton Park (outside of Albany) we stayed with them and went to Six Flags Great Escape which was lots of fun. Once again it was overcast so there weren't that many people there. My favorite attraction was the spitefully-inspired coin-operated water jets near one of the water rides. As people slowly ride along, you can zap them with a water cannon. "Eek, where did that come from?" etc. Evil fun! Once again it was sad to only have a couple of days to spend with them.
Anyway, we're back now so it's back to work and school and stuff. *sigh*
Kim's grandfather passed away on Sunday and so we flew to New York on Monday. Today we went to pick up a rental car. I had reserved the smallest possible car. They gave us, I kid you not, an Expedition.
Fatkins is really funny.
George Carlin used to have a comedy bit about inventions: you can get rich in this country by nailing together any two things that have never been nailed together before. Well, last night while flipping between Falling Down and The Tron guy on Jimmy Kimmel Live, I saw this example of what he was talking about: The Robo Maid. Take that little pseudo-robotic ball / pig / hamster toy that you can see in a little pen at the front of any mall toy store — you know, the one that bumps into a wall and turns around or flips over or whatever — and attach it to a Swiffer. I so, so wish I had thought of that. even if I had, I probably wouldn't have thought anyone would buy it. (This wouldn't be the first time that I thought of something and decided it was unmarketable then and someone else decided to try and market it).
Kim and I joined Maggie and Jason and Carla to see Outfoxed at the Odeon Bar last Thursday. Wow. I tuned out Fox News a long time ago based on the fact that their "news" reporting is basically flag-waving fluff punctuated by shrill shouting matches. I never really listened to the content of those shouting matches, nor did I really think about what the motivation was behind the flag waving and dramatic images of war machines. An interesting site to monitor going forward is News Hounds - slogan: "We watch FOX so you don't have to."
Pushing a different agenda, which is honestly pretty hard to get a grip on (mentally) is the entertaining booket entitled Children of Satan III: The Sexual Congress for Cultural Fascism. From who else could this come but Lyndon LaRouche?
Weight Watchers Cards used to be pretty scary. Fortunately we now have a web site that makes fun of them.