I just got news that our company will be nearly doubling in size over the next six months! There's a lot to do in preparation for this, so I figured it would give me something to blog about :) Let the madness begin!
Basically, our company runs using our intranet application which we've developed in-house over the last few years. It's all ASP based, with plenty of COM objects, ActiveX Controls, includes, and spaghetti code all over the place. The back end is SQL Server (started with v7, now at 2000). We're in the midst of a total re-write in ASP.NET.
I couldn't be more terrified :) Let me explain. Our company is one of those where you just "get the job done" and think about it later. What I mean by this is "if it works, great - let's move on to the next project." Very little (read "no") time has been given to performance monitoring, profiling, optimization, etc. If something runs slow we tune it up a bit and move on.
We've got a few things that always make us wonder, like the calls every now and then where someone is complaining that the system is slow. It's pretty random. There have been times when every day at around 2pm the system gets REALLY slow. The funny part is - we never figured out why - and it stopped happening - and we still couldn't figure out why. Now please understand, I'm not just a dummy with no clue how to troubleshoot things. We did all of the basics, asked lots of questions, etc. The problem just magically "went away" before we found the cause. Then, our company culture led us to simply say "oh well good - now we can move on to the next thing!" That, I'll admit, is probably dumb :)
So, now I've got a situation where I need to be prepared to handle a PILE of new users in six months time. Now, I'm concentrating on making that happen. All I've got is the most basic of plans, which I'll outline here:
1) Find out which pages the sales guys access the most. The expansion is mostly sales people.
2) Optimize those pages as much as possible.
3) Somehow establish a baseline of user activity, and keep it up to date.
4) Understand how to make use of the baseline data over time to predict capacity/performance.
My biggest fear in this whole thing is that there are so may gray areas when it comes to the performance of an intranet application. When something is slow, is it because the SQL Server is returning data slowly? Is it because IIS is slow? Is there a network bottleneck? Once we worked most of a day on something only to find out our DNS server had problems. Ugh.
Wish me luck!
| posted on Wednesday, January 14, 2004 7:17 AM