0

for my bachelor thesis I have to test a handful of containers runtime. Like Docker, Lxc, runC, Rocket and OpenVZ.

My test protocol is simple, I never did testing or benchmarking so I am sorry I am a newb :-). Can you tell me if my test is relevent ?

So, it's simple I will launch a container with a nginx server and mount an index.php file. I will write phpinfo() in it. And I will monitor, the memory usage and cpu usage and network usage.

First with 0 request then with a lot of them until I can make the container collapse. So everything has to be monitored.

I would need some tools and I really dont know what to use for sending a lot of request or monitoring containers. If someon can help me a little bit, it will be awesome.

beorn
  • 35
  • 2
  • 10

1 Answers1

0

I've had quite a bit of success using Siege. It's quite easy to install and use, and can be used to hit your server pretty hard.

siege -u yoursite.com/docker-test/ -d1 -r10 -c25

Will prepare 25 concurrent workers to hit the server 10 times with a delay between 0 and 1 second between each request.

You can use configuration files to create more complex tests, such as tests that slowly ramp up. Then you can run it and monitor the resources as you go. A handy tool for nginx (which is unlikely to be your bottleneck) to provide some real time statistics based on logs is ngxtop. I've used it before and it's helped test where failiures occur.

As for monitoring the containers/runtimes themselves, you're often looking for a few things. Memory/CPU utilization (which is easy to get from tools like top or ps. Please tell me this is on linux), response rate, and failure rate. You will notice as request rate increases, the responses will start to take longer, until some time out or fail due to some other reason (out of memory, etc.). What you need to do is keep track of how failures occur for each container type under certain loads. I'll leave that up to you.

Jamie Counsell
  • 7,730
  • 6
  • 46
  • 81