Noise canceling headphones

Some 9 months ago I left my noise canceling headphones on a plane. Since then I’ve though I’d just self suffer for my carelessness, and I’d decided the next set I would buy would be Bose. The problem is, Bose make two brands, The over ear 2 model and the on ear 3 model. I could never decide which one to order without first trying. They do offer a return policy but that’s just more hassle.

So eventually I get to the Bose store in the Time Warner building at Columbus Circle, try them both, can’t really decide either way and settle for the over ear 2. Some facts in my decision is basically the case is the same size, the 2 model has a recharger, while the 3 uses AAA batteries.

I then head of the the NY apple store for some smaller purchases, and I notice that all the sample headphones for the iPods are Bose. You can even buy them there. So treking across NY in the rain could have been easier?

In other Apple news, the MacBook Air is not as light as I would have thought, being 3 pounds, still it’s a cool geek thing and I was tempted even though I’d just just purchased my own Macbook recently. And of course they released a new macbook yesterday as well. Go figure.

MySQL graphics and words in use

Not sure during my vacation which part of the creative brain has taken over, but I’ve become rather obsessed with marketing graphics and associated words being used across the MySQL and Sun MySQL websites, (See previous examples here and here).

Here are a number of more interesting references from the front page of the www.mysql.com site.

  • The MySQL website now has a MySQL/Sun logo, noting it starts with the MySQL logo first.
  • MySQL & SUN Come together. Freedom & Innovation Fast, innovative, open database solution now with world class service and support (dolphin jumping at sunset)
  • Unlimited Possibilities. Deploy an unlimited number of MySQL Enterprise Servers for the cost of a single CPU of Oracle Enterprise Edition (two dolphin jumping across a moonlight night scape)

The haven’t got to the MySQL Conference website yet, I guess that’s controlled by O’Reilly still for now.

Words and images remain the property of Sun Microsystems, Inc. Copyright 1994-2008.
Comments on this site reflect the personal opinion of the author and may not reflect the opinion of any present or past employers.

Where is the Sun MySQL Reference Manual?

Yesterday I mentioned the new The official Sun-MySQL WebSite. It interested me with the navigation, graphics and content used to describe MySQL.

Greg of One Free Voice in a comment raised a very valid question, he could not find the MySQL Reference Manual, see comments. (I should also point out Greg it is no shame to reference the MySQL manual even daily, I’m an expert in the field and I easily reference the manual multiple times a week, and for reference the single most important page for me is Option and Variable Reference. I’ve also forgotten when using multiple languages in MySQL what is OFF/ON, simple solution is in the mysql client go SELECT ON; and see it it’s 1 or 0.)

Well, I didn’t find a link to the MySQL reference manual on the Sun Website. I’m sure it’s there somewhere but this leads to the question of design. The MySQL www.mysql.com got an overhaul several months ago, and the navigation was clearly improved down to two clear menus, see below. Now the Sun MySQL page has 4 separate menus (even the forth I missed yesterday), see below. This new menu even discovered another interesting graphic and comment to add to my list yesterday.

  • Community – 11 Million and growing (Picture the bottom have of marathon runners)

Words and images remain the property of Sun Microsystems, Inc. Copyright 1994-2008.
Comments on this site reflect the personal opinion of the author and may not reflect the opinion of any present or past employers.

The official Sun-MySQL WebSite

As already reported the deal is done (see Sun Press Release, Kaj – Ambassador to Sun comments). I’ve had a look at the Official Sun-MySQL website.

Here is a review of the interesting words and images on the new site.

  • Overview – Ultimate Scalability for the Web Economy (dolphin & sunset)
  • Features – It Just works (windsurfer with island view)
  • Tech Specs – Celebrate the Possibilities (skydiver on snowboard)
  • Perspectives – Open, Fast, and Free Just Got Better (snowboarders viewing the mountain scape)
  • Support – Unbeatable Duo – Open Source and Global Support (couple showing the V symbol)
  • Training – Get Trained. Get Ahead. (Cyclists riding into the sunset)
  • Get It – 60,000 downloads a day (surfers on a wave)

Well, they have very colorful images!







Words and images remain the property of Sun Microsystems, Inc. Copyright 1994-2008.
Comments on this site reflect the personal opinion of the author and may not reflect the opinion of any present or past employers.

MySQL Monitoring 101 – Graph your results

The problem

Hands up those that don’t monitor their production MySQL web server. I’m a little surprised by this, but I’ve visited several clients that have absolutely no monitoring other then “the customers will tell us when something is wrong”. The lack of system monitoring is one of the topics in my book “101 ways to screw up a successful startup”.

Why is monitoring important? First it can tell you when something is wrong, most monitoring systems introduce some level of constraints that trigger notifications via email, SMS or red flashing screens. Second, and I consider more important, is it allows you to analyze change and compare results over time. Let’s say you added more memory to your server, and then remembered to also increase the MySQL buffers appropriately. How much improvement did it make? Rather then “it seems faster”, you can have hard and fast numbers to back it up.

The Monitoring

If you have zero monitoring, you need to implement at least the following. Create the following script and run daily at midnight via cron. I’ve made the script as simple as can be.

#!/bin/sh
SCRIPT_NAME="monitor"
DATETIME=`date +%Y%m%d.%H%M`
HOSTNAME=`hostname -s`
LOG_DIR="/tmp"

vmstat 5 17280 > $LOG_DIR/os.vmstat.5.$HOSTNAME.$DATETIME.log &
iostat -x 5 17280 > $LOG_DIR/os.iostat.5.$HOSTNAME.$DATETIME.log &
exit 0

If you don’t have iostat installed, you will find iostat/sar as part of the sysstat package that most distributions will have generally available.

The results

vmstat output of relative idle system.

$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 304332 289484 435052    0    0     3     4  206  177  1  0 98  0
 0  0      0 304108 289496 435072    0    0     0    45  411  736  5  0 95  0
 0  0      0 304116 289500 435072    0    0     0    13  395  716  3  0 97  0

vmstat of system under disk load

$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 1  0      0 234784 289844 516800    0    0     3     4  206  177  1  0 98  0
 1  1      0 101636 289988 645552    0    0     1 33190  448  626 35  5 31 29
 1  2      0  33092 280888 723276    0    0     4 17233  469  616 24  4  6 66
 1  0      0  62876 177444 797056    0    0     2 14846  837  938 33  5 31 30
 1  1      0  33252 168440 834064    0    0     1 30376  969  904 31  6 22 41

iostat of system under load

 iostat -x 5
Linux 2.6.22-14-generic (newyork)       02/16/2008

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.31    0.00    0.29    0.15    0.00   98.26

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.83     5.82    0.71    0.94    13.04    53.56    40.53     0.09   52.60   2.08   0.34
sr0               0.00     0.00    0.00    0.00     0.00     0.00    10.40     0.00  237.00 235.00   0.01

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          41.30    0.00    5.70   29.00    0.00   24.00

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00  5153.60    0.60   75.80     4.80 42774.40   559.94    81.57 1354.93  13.09 100.00
sr0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          30.63    0.00    4.10   61.36    0.00    3.90

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00  3850.00    0.20   60.00     1.60 39763.20   660.54    83.68 1450.90  13.86  83.44
sr0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          22.10    0.00    3.80   42.30    0.00   31.80

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00  7645.80    0.40   66.80     3.20 44009.60   654.95   100.34 1192.33  14.14  95.04
sr0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

The analysis

The below graph shows CPU usage over a few hours. What was only observed via the graph was a spike of CPU that occurred every 5 minutes. In fact it occurred just on one server of several servers, and this enabled analysis to find a rouge cron job running every 5 minutes.

The below graph shows CPU idle usage over a 24 hour period. The colors represent different usage patterns such as during the day, batch processing overnight etc.

The below graph shows IO utilization over the same 24 hour period.

NOTE: Color’s added manually to highlight points.
These past two graphs highlight a number of things that require further analysis, but as in this example, it only shows part of a bigger picture. For example only CPU idle is graphed, not Wait I/O for example which as you can see from the I/O is excessive at times.

Still, these graphs were created from grep’ing the appropriate data into a CSV file, loading into Open Office, and click just the graph button, about a 60 second process for each type of data. This alone gave a better picture of what was happening then no picture.

What’s next

This level of monitoring is impractical for production systems, especially if you are monitoring more then one system. You need to monitoring more things, compare different results at the same time, and get better results at hand instantly. In my next topic “Monitoring 201″ I’ll talk about a number of easy and practical options.

Microsoft, Yahoo and Open Source

There has been plenty of press this week regarding Microsoft making a bid for Yahoo. This week the Wall Street Journal Article From Uncertain Future To Leading Yahoo Bid has prompted me to the following observations. I quote several points:

The bid, he said on the call, is “the next major milestone in Microsoft’s companywide transformation” to incorporate online services.

as Microsoft pushes the bid and, if successful, tries to meld Yahoo with Microsoft.

Microsoft had been negotiating to buy online ad company DoubleClick Inc. but lost that deal to Google, which paid $3.1 billion. Microsoft in May countered, spending $6 billion on online ad company aQuantive Inc.

While Microsoft should continue investing in its own online services, it needed to speed things up through acquisitions.

Once a company had a critical mass of buyers and sellers on its online-ad system, it could hold sway over much of the industry. In computers, Microsoft achieved that position with its Windows operating system. But on the Internet, Google was quickly taking on that role.


The Alexa Ratings has Yahoo as the number 1 real-estate property, outstripping Google. What’s important to realize that Yahoo along with many top traffic websites not only use Open Source, but their business is run on Open Source. At the database, there is MySQL powering Yahoo, Facebook, Wikipedia, YouTube, Fotolog and Flickr for example. Google also uses MySQL within critical components (not the search engine).

One can only hope that if such a bid is successful, much like the Sun acquisition of MySQL , that strong components of the Open Source ideal infects the much larger host.

I was thinking of taking this popular Tux & Microsoft Office image and badging Tux with a Yahoo logo, or perhaps he needs to be planting a big neon sign in the center.

Solid-State Drives Press

I read yesterday in The Wall Street Journal an interesting article in Personal Technology, “Solid-state drives challenge hard drives in speed, but not value”. While the title does sum up nothing new, the barrier to entry to embracing new technology is always cost, and early adopters may not have deeper pockets, but it’s also about being a alpha geek.

As the article states “Solid-state drives have some key advantages. Because that lack moving parts, they are faster, draw less power, and harder to damage and are quieter”. It also backed this up with some results.

What I did not realize, is the new MacBook Air has a 80GB HHD version at $1,799 and as 64G SSD version at $2,798. Testing showed that there was little difference in battery life between these models, however with the Toshiba Portege R500 and the right battery there was a 36% battery life increase. That’s interesting news for those that spend a lot of time on planes,trains and airports. Tests clearly showed faster cold startup and reboots, up to 40% faster.

Kevin Burton has had a lot to say recently about MySQL and SSD, and Matt Yonkovit has also just published some results with Mtron SSD Sysbench/MySQL results, DBT2 MySQL SSD Results and More Details on MySQL & SSD drive performance…. It seems that Mtron SSD was the brand reviewed by Matt and Kevin (See 24 Hours with an SSD and MySQL).

Where do we go from here, MySQL as with any database has certain characteristics, large amounts of storage needed, fastest access possible, but generally sequential and random writes, but random reads. Certain MySQL storage engines may benefit with sequential writes, such as PBXT. As with any architecture today, multiple layers, caching and different approaches to storing and retrieving data within your application or website will ultimately be required to maximum the strengths of underlying technologies and minimize the weaknesses.

More information at Wikipedia Solid State Drives.