0

basically i am software guy got recently promoted to managerial cadre which requires giving recommendation for server to run software developed by our company , the software is a work flow management and the db is oracle 11 , approximately the size of daily transaction would be around 40 gb, and it should be connected to ~ 150 client machines , the client machine will be growing. help on terms of cpu, processor, memory , rack and stack or raid (i really yet to understand that concept) OS, will be greatly appreciated.

5 Answers 5

3

There are a lot more specifics that would be necessary to provide a useful size answer for you. I'm not going to try to go back and forth in this form to get that answer, but here are a question and a recommendation:

Does your company have a hardware relationship with a particular vendor? For example, if you have a data center full of IBM blade servers, you'll probably want to configure an IBM blade server to work even if a Sun box would be slightly better. Spare parts, admin and repair expertise, etc. should fit into your considerations.

If you have such a vendor relationship, use it. Discuss what you need with your vendor sales engineers and make sure you understand why they recommend what they do. Usually, most SEs will be trying to make responsible recommendations and will have much more detailed knowledge of your situation than we possibly can.

If you don't have a single vendor relationship, then speak with multiple vendors for recommendations, but take what they say with larger grains of salt, and compare the recommendations (you are still asking them to explain why you need each component, right?). When you buy servers, the price includes pre-sales support salaries, so leverage their expertise. A similar helpful technique is to ask one vendor for recommendations on a necessary component that they don't supply, or at least just repackage. Ask the software vendor for hardware recommendations; the NAS vendor for router recommendations, etc.

You will probably pick up on most of the important considerations in one or two of those detailed discussions and be able to make a good choice.

2
  • 1
    +1. Your Oracle DBAs will also be able to help you with the DB server spec (if they're any good). Good Oracle DBAs usually have a practical understanding of disk/CPU/Memory requirements for various sizes of DB / levels of activity and will be able to lead you toward the right hardware.
    – voretaq7
    Apr 10, 2010 at 15:44
  • good points for a starter, i think it is really going to be a tough task for me in this position , nevertheless i am find some what comfortable with mpez0 idea and going to mark it as answer and @voretaq7 :-) i dont think your answer is really mean it almost reflects my position. @mohammad thanks for the suggestion but i will wish to go with mpez0 idea and i am going to mark it as answer thanks guys for the support. Apr 11, 2010 at 15:36
3

Do you have a support department which looks after your servers, or is the support outsourced?

If you have an internal IT Support department, they will know your current setup very well, and I would say they were in a very good position to recommend hardware and/or software.

You, as the manager would then have to go though what they suggest (ask for clarification if you don't understand something) and make the final recommendation.

1
  • Even if your support is outsourced most managed services companies will be happy to consult with you on a new deployment (for a price). Depending on the quality of your team/managed services company it may be worth the consulting fees for an additional pair of eyes :)
    – voretaq7
    Apr 10, 2010 at 15:54
1

Not to be mean, but it sounds like you were promoted outside your knowledge sphere (or at least to a position where you're being asked to spec something you don't fully understand). This isn't necessarily a bad thing (some of the best managers I ever worked with were non-technical), but it makes your job harder.

If the internal team you're managing is competent enough to help you put together an appropriate spec you should work with them (see Ben's answer). They will be able to clarify any points and help create something you can bring to those above you with solid justification and a reasonable expectation that it will work.

If you don't trust the team you're working with to do that you should probably point out to those above you that you're not 100% solid on what you're going to be proposing (and fall back to mpez0's suggestion of discussing it with your vendors: though this means your solution will likely grow in cost & be overbuilt that's better than dropping $20k on a solution and then having to turn around and drop $50k to re-implement in 6 months because it wasn't scalable).

0

mpez0 had some very good recommendations. The only other path I see, that he didn't list, is to determine requirements through testing.

From your description, it sounds like you have an application of unknown temperment. What I mean by this is that you really don't know what the work load is going to require.

Your first goal then is to nail down what it's performance profile really is. In other words is it really DB heavy or are the transactions (even 40GB worth) fairly straight forward?

To find out, pick a server that you already have, install the application on it, then run profiling tests to figure out how it responds. The tests should start light with a small number of clients, then ramp it up to the full # of connections you expect.

Along the way you are going to learn several things, the most important of which is what parts need to be beefed up. You should watch the disk queue length as well as ram, network, and processor utilization. Which of those fall down?

If you go the testing route, then you'll know exactly what hardware you need for a given performance profile.

0

You should detremine if your DB will be IO bound or CPU bound ? How much data you will store in database, how many requests you may run over the database ?

In my experience, I noted that every mainstream CPU is sufficiently powerfull to overflow IO bandwidth of hard disks.

I suggest you put your money on hard disks and then RAM.

Having multiple hard disks connected to several IO path will greatly improve performance. Spread your data and index over multiple files into multiple disks.

For redondancy, I suggest you use RAID-1 or RAID-10 (for stripping + miroring) and avoid RAID-5. It is only good if you have lots of read, and performs not very well in write scenarios.

And preferably use separate disks for system files (windwos + paging) and data files.

Then after you may think of adding some RAM, SQL perform much better by having lots of memory but it still depends on your data volume.

And don't forget back system, it is a must if you go for hosting databases for you clients.

Currently, one of my databases has a 100 GB data file and I can handle 300 to 400 requests/seconds without any problem on a sinlg CPU, 2GB RAM. I'm actually IO bound. with disks giving me 80 MB/Seconds at most.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .