12.1. Performance Testing, Stress Testing, and Real-Life Performance
A lot of people I speak to about storage performance are confused about the difference between these three completely different aspects of testing storage and how the results of one type of test might relate to a different aspect of performance.
12.1.1. Performance Testing
In performance testing, your objective is to measure how fast you can get something done, and not how many of something you can do, which is subtly different. What does this mean? In a performance test you need to give the test subject (your disks) one thing to do (one I/O request), and then see how quickly it gets done. Then you give it another thing to do and see how quickly it does that. Basically you throw sequential requests at the test subject, and observe how long each one takes.
You have to be a little careful that your performance test doesn't turn into a stress test, and in some cases your performance test might start to look a bit like a stress test, but your focus is always on how quickly you got the job done, and not in how many you could get done.
12.1.2. Stress Testing
In stress testing the objective is to apply stress to the system and see how it holds up. In a stress test you throw many concurrent requests at the test subject and see how it responds. In comparison with the performance test, which was a sequential test, the stress test is a parallel test. And your focus here is on how many requests you manage to process in ...