You should definately benchmark your
application and database to find out where the bottlenecks are. By fixing it
(or by replacing the bottleneck with a 'dummy module') you can then easily
identify the next bottleneck (and so on). Even if the overall performance for
your application is sufficient, you should at least make a plan for each
bottleneck, and decide how to solve it if someday you really need the extra
performance.
For an example of portable benchmark
programs, look at the MySQL benchmark suite.
You can take any program from this
suite and modify it for your needs. By doing this, you can try different
solutions to your problem and test which is really the fastest solution for
you.
It is very common that some problems
only occur when the system is very heavily loaded. We have had many customers
who contact us when they have a (tested) system in production and have
encountered load problems. In every one of these cases so far, it has been
problems with basic design (table scans are NOT good at high load) or OS/Library
issues. Most of this would be a LOT easier to fix if the systems were not
already in production.
To avoid problems like this, you
should put some effort into benchmarking your whole application under the worst
possible load! You can use Sasha's recent hack for this - super-smack. As the
name suggests, it can bring your system down to its knees if you ask it, so
make sure to use it only on your development systems.
No comments:
Post a Comment