Wednesday, November 30, 2005

Could someone please explain Baselines to me?

I see the word baseline used a good deal these days. Enterprise Manager or Grid Control (or whatever it's called this week) either has or will have the ability to collect baselines, I'm told.

My first problem with this is that I don't know the definition of a baseline, let alone a baseline for a database-centric system. If somebody has a good definition, please let me know. How exactly does a baseline rise from the collection of, say, statspack reports?

My second problem with baselines is that I cannot see the usefulness of them, but that could easily be because of my first problem.

Here's my background for putting this topic forward:

1. As mentioned, I see the word used, but I never see any examples of an implementation of baselining.

2. If everything in a system is slow (controller died, disk system exploded, months' end, etc.) then I want to know how a baseline can pinpoint the reason.

3. If a batch job or a report or a form is slow, then I'd like to know how (if) a baseline can find the reason.

21 Comments:

Anonymous Anonymous said...

Maybe the word baseline isn't so good to be used but if you have statspack reports (which you used in your example) when the system was actually fine, isn't it good comparison for when things ain't anymore so fine?

Of course if your system was setup in way that everything went straight to hell from day one then having any baselines wont help most likely. Maybe i've had just good luck but usually its just one or two problems, not everything.

What are the things in database where you could use those "baselines" anyway apart from statspack reports? If you have baseline of your table/index stats which are good and never updated? :) Of course if they are updated for whatever reason you could always fall back to the "baseline" to fix the problem..

11:55 PM  
Blogger Moans Nogood said...

Hi Simon -

Well, I'm not saying that Statspack baselining isn't a good thing. I have just never seen how to actually use them for it.

What things in the Statspack reports would you compare? And what conclusions would you draw?

1:16 AM  
Anonymous Anonymous said...

Hi,

I'd just go with the traditional waits and tablespace/disk usage perhaps. Of course it could be applied to almost all other parts aswell, if suddenly some sql statement pops out which never has been in the statspack reports and takes 90% of the time its easy to see.

Then again for that I don't think there is need for baseline. :)

I'd say that the problem with baselines is that if you manage couple databases and know the systems well then you can keep the baselines and monitor specific things pretty easily, but if the amount of databases goes up it might be more difficult to keep track how things have been and what parts matter.

For me this seems to work since I don't know all the v$ tables so well (as maybe I should!) and statspack reports provide rather easy way to track things.

1:49 AM  
Anonymous Anonymous said...

As with everything you can put diferent meanings and depth with words. You could mean a 'system-wide' baseline, for what this is worth, or a more specific baseline.

Monitoring the elapsed_time and the hash_plan_value (or plan_hash_value) in V$SQL to see if something is changing (mentioned in a previous post) is to some extent using a baseline.

2:17 AM  
Anonymous Anonymous said...

i think the only use for a baseline i've found to to tell people who complain to me that the system is slow that it's not because it's running "to the baseline".

keeps damagers off my nether reagions.;-)

5:46 AM  
Anonymous Anonymous said...

Well, one question I like to ask, when told of a performance problem, is "What makes you think you have a problem?"

Okay, I may put it slightly more diplomatically, but the underlying questions is: "When was performance good, and what did things look like then?"

Hardly anyone can quantify a performance problem, but then hardly anyone collects metrics during "good" or "normal" times and tags them as such. Which would be a baseline, of course.

But, if they did, they would at least have something to which to compare, and a basis for quantifying a performance problem.

Does this seem unreasonable to you?

A comparison will not necessarily tell you what the cause of a problem is, but certainly can give you an idea of where the problem lies, and correlated behaviour, etc.

Perhaps most important, it gives you a way to declare success when you imagine you have solved the problem.

Like that Beatles song about "Jojo".

6:37 AM  
Anonymous Anonymous said...

Ah yes: baselines. Right up there with: "How do I set this laser printer to stun?" in my scale of annoyance.

In the old days when engineering was a career instead of just a suffix for "re", a baseline was very simply a known state of a dynamic system that could reliably be returned to and therefore used to make measurements against.

Kinda like the 0 in the Celsius temp scale: all you gotta do to return to it is freeze water. And you use it as a reference point to measure against. Say, for example: you measure the expansion of mercury in a capillary tube at water freezing, measure again at water boiling point, then divide the distance between the two into 100 and *convention* that you'll call each division one degree Celsius.

Then you extrapolate from there and hope like crazy mercury will still expand linearly at 1000. But, I digress...

In IT, it is mostly a vague term used to imply that at some stage someone has taken a measurement in time and unilaterally decided to call that the "0C" in the scale.

Of course, few bother to then explain what kind of "water" is being used, what was used to "freeze" it or indeed what is "freezing", what is the "boiling point" that one can use to then divide the scale into 100ths, etcetc.

Some guys (like C. Millsap and most of the Oakies) actually DO bother to consider all that. But like a fisho friend of mine used to say when I asked him if they were biting:

"They are, but there is a lot of water between them..."

5:06 PM  
Anonymous Anonymous said...

So, Nuno, does that mean baselines are useless, or engineers mostly suck?

6:05 PM  
Anonymous Anonymous said...

Baseline: A measure so low that when you move indexes to 32k blocks you look like an expert.

7:18 PM  
Anonymous Anonymous said...

Rog:
both. Or in other words: I'm still learning how to boil water, one thing at a time!

7:44 PM  
Blogger Moans Nogood said...

Thanks for your comments, folks. Very useful.

Nuno: I think perhaps you nailed my problem with your: "...a known state of a dynamic system...". How can you have a known state of a dynamic system?

Simon: I agree that you could look at the top 5 waits and see if they change, but could it not still mean either that the system is doing better, the same, or worse, even if they change in size or individual distribution?

Shrek/Roger: You're the best - good stuff I can use for many years.

My next topic will be the utter uselessness of Statspack, I think :-).

2:35 AM  
Anonymous Anonymous said...

Easy. Deliberately misconfigure the Oracle SGA. [ You may be lucky. This may already be the case. ] Run an aribtrary, artificial benchmark. Get some meaningless performance metrics and proudly state this is the 'baseline'. Tune the application, tune the I/O, tune the O/S, tune the database. Re-run the benchmark. Gleefully proclaim that you have obtained a 2,345,678 improvement in system throughout over the 'baseline'.

4:43 AM  
Anonymous Anonymous said...

Hey Mogens:

I'm an Oracle DBA and advid beer connoisseur as well.
I visited your miracle breweries site and it looks like a great operation!
Is the beer flowing? What types of beer do you brew? Any plans to export to the USA?:)

Cheers

Joao

6:17 AM  
Blogger Moans Nogood said...

Andy C: Excellent suggestion. You've got all the basics covered, I can tell :). Unfortunately, you are much too realistic, ie you're describing what is often happening in the real World... You are therefor, of course, officially fired for this :-).

Joao: Yep, the beer is flowing, and so far the brews have been good, and people tend to like it, so that's good. We've only made the German type of beer known as Alt-bier, which would be sort of a German ale. I'm looking into bringing a keg or two with me for the RMOUG Training Days conference in Denver in February, but who knows what American Tax and Customs authorities can come up with in that connection.

Unfortunately, we're always completely sold out, so we're doing the classical mistake of selling something we don't have, ie we're promising our friends beer that isn't finished in the tanks yet. Man, when one of the brews fail we'll have lots of angry Danes attacking us with ancient farm tools and throwing empty beer glasses at us.

10:35 AM  
Anonymous Anonymous said...

At least the angry Danes won't be drunk, angry Danes. On the other hand, sober Danes might be the greater threat.

7:35 PM  
Anonymous Anonymous said...

Another good way to use a statspack is to see how a physical change has effected your application(s). Say you switch your archive logs to a faster disk (or slower). Take a baseline before, take some snapshots after and see if the appropriate wait times have changed, in aggregate, for the application.

7:21 AM  
Anonymous Anonymous said...

Baselines can be useful in a certain context. I work on a number of systems, so when I get a call saying, "The system seems a bit slow!", I want to know if it actually is, or if the person on the other end of the line is being more impatient than usual. By comparing the current performance to a baseline I can quickly make a decision whether to drop my current work to investigate/fix the issue, or ignore it. It's like a triage thing.

Of course, the thing being baselined is important. I usually use tests of a functional area, not reads and writes.

If you are working on one system, or you have time on your hands, then what's the point. If you have many systems it's handy in organising your priorities.

Just a thought.

Cheers

Tim...

12:47 AM  
Blogger oakleyses said...

oakley sunglasses, michael kors outlet, louboutin outlet, prada handbags, air max, burberry outlet, louis vuitton outlet, ray ban sunglasses, tory burch outlet, cheap uggs, michael kors outlet, michael kors outlet, chanel handbags, burberry outlet, oakley sunglasses, kate spade outlet, uggs outlet, oakley sunglasses cheap, prada outlet, longchamp handbags, gucci outlet, air max, louis vuitton, ray ban sunglasses, nike shoes, jordan shoes, nike free, polo ralph lauren, michael kors outlet, polo ralph lauren outlet, ray ban sunglasses, oakley sunglasses, michael kors outlet, christian louboutin, tiffany and co, louboutin, tiffany and co, rolex watches, longchamp outlet, louis vuitton outlet, longchamp handbags, ugg boots clearance, michael kors outlet online sale, uggs, ugg outlet, louis vuitton outlet stores, louboutin shoes, replica watches, louis vuitton handbags

4:35 PM  
Blogger oakleyses said...

vanessa bruno, air max, michael kors uk, coach outlet, michael kors, sac guess, true religion outlet, nike free pas cher, nike free, kate spade handbags, timberland, lululemon outlet online, michael kors outlet, north face, abercrombie and fitch, coach purses, ralph lauren, polo lacoste, oakley pas cher, north face, new balance pas cher, sac hermes, coach outlet store online, converse pas cher, longchamp, nike tn, air max pas cher, hollister, sac burberry, air max, michael kors pas cher, nike air force, hogan outlet, ray ban pas cher, louboutin, polo ralph lauren, true religion jeans, mulberry, sac longchamp pas cher, replica handbags, true religion outlet, nike blazer, vans pas cher, ray ban sunglasses, nike roshe, true religion jeans, nike roshe run pas cher, hollister, nike air max, air jordan

4:38 PM  
Blogger te12 said...

qzz0727
giuseppe zanotti sneakers
yeezy shoes
oakley sunglasses wholesale
air jordan uk
off white jordan 1
canada goose jackets
coach factory outlet
longchamp handbags
louboutin shoes
longchamp outlet

2:04 AM  
Blogger yanmaneee said...

goyard
lebron 11
kyrie 5
michael jordan shoes
curry 4 shoes
golden goose outlet
nike air max 2018
supreme clothing
yeezy boost 350
kd shoes

9:35 PM  

Post a Comment

<< Home