Performance Issues

A lot of projects identify performance issues at some point and occasionally slow-downs can occur in production systems.

These are actually two types of issues and these should be approached differently. For performance testing during implementation, we recommend that the following protocol be followed as closely as possible:

  1. Define what acceptable performance is. This can be:
    • the same as a previous platform (maybe, for example, as the IBM mainframe)
    • as fast as a set of particular users find acceptable
    • some other criteria.

    This gives you a target to aim for, and to measure how close you are to being complete.

  2. Identify a representative benchmark program or execution scenario.
  3. Create a spreadsheet, and in it record for each run of the benchmark:
    • The actual benchmark program that is run for this test – you should run a ‘baseline’ to be the start point for tuning hardware, compilations, execution setup etc, and for measuring the impact.
    • The results; elapsed time, I/O time, or whichever type of data you want to measure.
    • The variables that are adjusted for each run; perhaps the programs are compiled with different directives, perhaps the hardware setup is adjusted, perhaps the database is moved from a remote machine to a local machine.
    • Any comments or observations on each run; did it improve performance or not? Did it seem to show up some type of anomaly or restrictions in scaling?

For performance slowdowns that occur post-production, the obvious question to ask is ‘what has changed?’ This might be upgraded hardware – we have seen that adding hardware power does not always improve performance, indeed it can slow it down if the architecture or system setup is not configured to take advantage of it. If nothing seems to have changed, look for whatever else might be running on the system at the time that the slowdown occurs; we frequently have customers find that anti-virus software or mass searches are being done on a machine when performance slows down.

Another very important aspect of performance to consider is the virtual machine environment, if it is part of the setup. Experience has shown that running with a VM can add up to 20% overhead to performance from straight hardware; it is very important to employ a VM consultant to look at the configuration and setup of the VM that is in use to run the Enterprise Server environment.