top | item 25646387

(no title)

alzoid | 5 years 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.

discuss

order

csours|5 years ago

Did you mean to sound reductionist? Just because something is fun and interesting doesn't mean it's easy.

alzoid|5 years ago

No, when I read the article 'hard' seemed to equate to 'took longer than expected'. It takes time, but I think the tools that are out there are easy enough to use.

If you wrote the software you already have a good idea on how it should be tested so it's just learning how to use the tool.

The fun part is the part I said was hard, which is investigating / interpreting the results. One other thing, which you don't have to do, were setting up and coordinating multiple servers to launch the tests and automating the data processing and report generation.

I didn't say that its easy because its fun. I said load testing isn't hard - it just a lot of work. Maybe being having to do a lot of work is hard.