How To A Measure The Performance of A Server?
How To A Measure The Performance of A Server?
html
I have repeated following too many times in last few years and decide to write this up. If I
have missed something, please add a comment.
Above graphs capture the characteristic behavior of a server. As shown by the graph, server
performance is gauged by measuring latency and throughput against latency.
1 of 5 5/23/2020, 3:27 PM
How to a measure the Performance of a Server? http://srinathsview.blogspot.com/2012/05/how-to-measure-performance-of-server.html
It is worth noting that these two values are often loosely related. However, a we cannot
directly derive one measurement from the other.
As shown by the figure, a server has an initial range where throughput increases at a
roughly linear rate and latency either remains constant or linear. As concurrency increases,
the approximately linear relationship decays, and system performance rapidly degrades.
Performance tuning attempts to modify the relationship between concurrency and
throughput and/or latency, and maintain a linear relationship as long as possible.
For more details about latency and throughput, read the following online resources:
Unlike static server capacity measurements (e.g. CPU processing speed, memory size),
performance is a dynamic measurement. Latency and throughput are strongly influenced by
concurrency and work unit size. Larger work unit size usually negatively influence latency
and throughput. Concurrency is the number of aggregate work units (e.g. message, business
process, transformation, or rule) processed in parallel (e.g. per second). Higher concurrency
values have a tendency to increase latency (wait time) and decrease throughput (units
processed).
2 of 5 5/23/2020, 3:27 PM
How to a measure the Performance of a Server? http://srinathsview.blogspot.com/2012/05/how-to-measure-performance-of-server.html
To visualize server performance across the range of possible workloads, we draw a graph of
latency or throughput against concurrency or work unit size as shown by the above graph.
3 of 5 5/23/2020, 3:27 PM
How to a measure the Performance of a Server? http://srinathsview.blogspot.com/2012/05/how-to-measure-performance-of-server.html
8. For each test run, it is best to take readings for about 10,000 messages. For example,
with concurrency 10, each client should send at least 1000 messages. Even if there are
many clients, each client should at least send 200 messages.
9. They are many tools that can do the performance test. Examples are JMeter, LoadUI,
javabench, ab. Use them when applicable.
Experimental Setup
1. You may need to tune the server for best perforce with settings like enough Heap
memory, open file limits etc.
2. Do not run both client and the server on the same machine (they interfere with each
other and results and affected)
3. You need at least 1GB network to avoid the interference of the network.
4. Generally, you should not run more than 200 clients from the same machine. For
some cases, you might need multiple machines to run the client.
5. You have to note down and report the environment (Memory, CPU, number of cores,
operating system of each machines) with the results. It is a good practice to measure
the CPU usage and memory while test is running. You can use JConsole (if it is Java)
and if you are in a linux machine run “watch cat /proc/loadavg” command to track
load average. CPU usage is a very unreliable matrix as it changes very fast. However,
load average is a very reliable matrix.
1. Make sure you restart the server between each two test runs
2. When you start the server, first send it few hundred requests before starting the real
test to warm up the server.
3. Automate as much as possible. Ideally running one command should run the test,
collect results, verify the results, and print summery/ graphs.
4. Make sure nothing else is running in the machines at the same time.
5. After test run has finished, check the logs and results to make sure operations were
4 of 5 5/23/2020, 3:27 PM
How to a measure the Performance of a Server? http://srinathsview.blogspot.com/2012/05/how-to-measure-performance-of-server.html
really successful.
5 of 5 5/23/2020, 3:27 PM