What are the recommended strategies for stress testing (i.e. modeling a large number of clients) of server applications in a small store?

I am developing a multi-component network software system designed to work on an arbitrary number of machines. I assume a typical installation of 1 to 4 cars.

I want to take system testing seriously, and I set up a network of virtual machines on a powerful PC that I can use to simulate network connectivity. However, this installation is not enough.

For example, due to virtualization (I use qemu), each node always runs on only one core, so I can’t check the performance issues of code intended for multi-core use. It would be nice if I could sometimes run any of the virtual machines on the whole PC to see what the difference is, especially in terms of performance, and also to check some multithreading problems.

Purchasing more mailboxes and using hard drive partitions instead of images on a virtual disk are options, but are there any more elegant approaches? I am loading a company here and cannot afford to still download equipment, and deal with real physical media for each machine, and not just move image files around, of course, more.

ETA . The application is a middleware system and does not actually have a user interface. Testing is performed using fictitious clients and by feeding data to the system, which is again retrieved at the other end. This is not a website, and it is usually not used over the Internet, but rather inside the local network. User interface and Internet interfaces will be provided at a later stage by some components connected to the system.

+4
source share
3 answers

This topic has appeared on SO several times:

There are many tools for stress testing your network, but there is a chance that you will need to adapt them to fix your network configuration. For example, I’m working on a project that does a lot of streaming stuff, so we had to write our own streaming client to test the network.

Another thing is that you will most likely need to set up a small network to test your production network. Network tools for load testing also require a significant number of processors, so you usually need several machines running on them at the same time to really work the network. In our case, we have a ratio of 1: 2, that is, 1 testing client for each 2 servers that we are going to check. You will have to play a little with things to determine how many test boxes you will need, but just follow the work of your test machines so that you can understand how much you need to effectively test your site.

+3
source

I would suggest VMware Workstation , which allows you to configure multiple processors for your virtual machines. One license is extremely cheap, you can go with VMware Server (for free), but you will find that the workstation will be more powerful in the short term I would think.

In addition, I would suggest a second PC capable of booting from USB so that you can store your physical VM partitions. One low-performance dual-core PC is not expensive, especially if it only needs to boot into text mode.

0
source

You can hire someone, possibly remotely, to run tests. And if you hire a remote worker, you can check how well your application works over the Internet.

-1
source

All Articles