• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Architectural Decisions

 
Ranch Hand
Posts: 33
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi
This is my first post. I have been a silent observer so far. The question I have is not directly related to architect certification but never the less I feel that its relevant to all the architects / aspiring architects. So here it is:
When building a solution, how would you approach capacity planning / sizing ? How can decide which hardware to use ( Intel , Sun , Tandem, Mainframe etc) .How can you "scientifically" arrive at a configuration ?
like for example how many CPUs do you need, how much memory you require what should be the data storage capacity/ network capacity ? All such decisions must be taken before your application is developed. When you have to submit a proposal to the customer. Because these decisions decide the cost and performance of your application.
Are there any case studies available which talk about these issues and how to resolve them ? Or can experienced architects share their experiences ?
Regards
Jogi.
 
Jogi Poonawala
Ranch Hand
Posts: 33
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Any thoughts/suggestions/comments ?
 
author and jackaroo
Posts: 12200
280
Mac IntelliJ IDE Firefox Browser Oracle C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Jogi,
I don't think this really belongs in this forum, although I am not sure which forum is better. Be aware that this thread may move shortly
You should also be aware that JavaRanch members are all over the world, so many of them may not see this post within the 7 hours between when you posted your question, and when you posted your follow up. So please be a little patient. You may even find that you get more responses by not posting a follow up - many people actually notice posts that have zero replies, and go and look to see what the message is about.
As to your question - this is a bit of an aracane art.
What you really need is a feel for how your application will perform on any given machine, and what it's pinch points are. You can generally get a feel for this by doing some testing on any machine, and seeing how your application handles 'x' transactions per second, 'x * 2' transactions per second, 'x * 4' transactions per second. For each of those, what was CPU usage like? What was memory usage like? How much network traffic was generated? How many page faults did you get (disk or memory).
Then you can look at benchmarks for various configurations (available from most hardware manufacturers) and work out how the configuration changes will affect your pinch points.
Then you can (hopefully) extrapolate out to work out what the right hardware is for your anticipated load.
If you are talking big machines (you mentioned Tandem), most of the larger companies have sales staff who do these sorts of calculations all the time. So you could go to them with the details of what your system is, what CPU / Memory requirements it has in your test environment, and tell them how many transactions per second you need to be able to handle, and get them to come up with a machine configuration that will meet your requirements. Only do this if you are serious about buying from one of the manufacturers you contact though - you won't learn from it (they will just give you a response stating what they believe is the right box for you), and they will not be likely to help you out if you do this several times without purchasing anything from anyone.
Many companies are more than happy to partner with software suppliers. This can mean that you can get to try your application on hardware that you have no hope of ever purchasing yourself, and you can see how it handles in different configurations. The hardware manufacturers like it because it gives them an easier sales angle to try and get their hardware into your client.
Regards, Andrew
 
Ranch Hand
Posts: 1551
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Chapter 3 of red book sg246195 is an interesting chapter about the configuration of machines in a J2EE environment.
 
Jogi Poonawala
Ranch Hand
Posts: 33
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for your responses Rufus and Andrew. And yes I will be more patient But currently I am working on a proposal which is to be submitted to client. I refered to benchmark application on BEA's site and did my calculations. But apart from vendor benchmarks is there any other way
of arriving at the decisions ? ( benchmarks may not be available ?? / or you may want to verify your calculations ). Can we model / simulate the system ? Are there any "rules of thumb" / "Formulas" that we can apply.
Regards
Jogi.
 
reply
    Bookmark Topic Watch Topic
  • New Topic