Recently, machine-to-machine (M2M) systems provide services in a variety of application domains, such as smart home, surveillance, remote control, healthcare, consumer devices, etc. The architecture of an M2M system is usually composed of different types of hardware components interconnected with a network. The performance of an M2M system is a critical factor, especially for those applications which have real-time requirements. For some M2M systems which are powered by batteries, energy consumption is also a concern. However, the complexity of setting up a development and performance evaluation environment for an M2M system is quite challenging to the developer. In this paper, we propose to evaluate the performance of an M2M system by running the M2M software over the virtual machines which collectively simulate the M2M system. The virtual machines are connected with our virtual network devices (VND) which model the network in the M2M system. This approach allows the developer to deploy unmodified software onto the simulation environment and use our tools to analyze the execution time, energy consumption, and network transactions on each virtual machine.