I need some sort of software that will allow me to create a few virtual machines in which I can install and run arbitrary software (e.g. nginx) and be able to run arbitrary commands (e.g. strace) in an easy way.

Ideally, the software would also allow me to simulate network traffic from other clients, and will allow me to collect statistics on the performance of each client. Something like a virtual simulations environment.

I would like this to run locally on one computer and to not consume as many resources. Preferably I would like it to run in Unix-based machines or Windows. But OSX is good too.

I don't have a lot of experience in this domain so I'm not sure exactly at what to look for. I've heard of things such as "software defined networking" and "open stack" but I'm not really sure if there's anything more simple out there.

To give an example of what I have been doing so far, I've been using VMware and creating new machines as needed (the installation and configuration process is time-consuming and would like to avoid that). To generate the statistics I've been needing I was using the ELK stack and sending information across my virtual machines. This was also very tedious.

I would prefer if the software is free or open source.

  • Docker perhaps? docker.com
    – papakias
    Oct 2, 2017 at 12:39
  • @papakias I thought about docker. However, I was wondering whether containers have performance differences compared to virtual machines. Also, can you always treat a container as a full-fledged OS? What will be the difference between a container with an OS vs. a virtual machine?
    – aedcv
    Oct 2, 2017 at 14:37
  • Docker containers are supposed to have better performance than virtual machines. devops.com/docker-vs-vms
    – papakias
    Oct 2, 2017 at 19:50

1 Answer 1


One good option to look at is Vagrant Up - this allows you to produce recipes specifying the setup of a given OS & set of tools and then execute them under a selection of VMs.

  • Free, Gratis & Open Source
  • Windows, Linux or Mac
  • Use with VirtualBox, VMware, Docker, AWS, or any other provider.
  • Recipes are suitable for version control
  • While the first provisioning of a specific "box" is slow due to download and installation steps later uses are very fast as the provisioned box will be re-used.
  • I have heard about Vagrant. It doesn't quite solve my problem since it just facilitates the creation of VMs (similarly to cloning them). The missing part will be the instrumentation of the VMs and the generation of traffic on the network.
    – aedcv
    Oct 2, 2017 at 20:49
  • @aedcv Vagrant can be used to install the instrumentation and to install & start processed that generate the network traffic even to collect the data generated by such processes. If you were to install python in any OS that does not supply it by default as a part of the install & configure recipe then you could use a generalised python script to provide the traffic. Oct 3, 2017 at 6:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.