|
|
|
|
|
by alzoid
1989 days ago
|
|
I don't think load testing is hard, it just requires time to do properly. Maybe some people think they can get a tool, record a script and hit play. In some cases that might be enough. Once you are concerned about performance testing, you have to do work to get it right. I usually have a test from the 'front' of the app and separate tests developed for each component (services, dbs etc). I do load and stress testing. Stress testing is very valuable as a preventative measure. Depending on what is available I use different hardware monitoring tools to gather data. Sometimes its OS specific or a vendor tool like PRTG. On the software side I run profilers for the language the app is using. I run focused tests - what the 'expected' use will be and general tests that hammer as much as possible. I have found and addressed problems at all levels. Investigation is the hard part. I find it fun and you learn a lot about infrastructure configuration. Most hardware problems that show up are can usually be remedied by throwing more resources at it. Often times the cost is lower than diving into full investigation / software changes. Server configuration is another inexpensive option. It requires more investigation, if the bottleneck is the number of connections you have to determine if its: one of the many webserver settings or one of the many lower level services. I once discovered a cap on TCP connections on a low level OS service was limiting performance. After those you hit software. Modern profilers will catch most issues. I find with code network latency is the biggest offender. I had an app that took 1.5 seconds round trip. The client wanted it 500ms or less. The fix was simply being smarter with database requests and having a local cache of some data. In the end a cold request took 300ms with subsequent requests being approx 70 - 100ms. I could go on but performance testing is a discipline like any other. It's not hard if you put in the time. |
|