In a virtual machine there is a migration. Let's suppose i want to select a virtual machine, based on it's current load, and make a decision based on the current load to migrate virtual machine. How can I calculate the load of this virtual machine?
When you say "load", I'm assuming that you're refering to the amount of CPU usage as well as memory usage. If that's the case, using the 'dstat' utility, it will be possible for you to monitor the aforementioned parameters. Based on that, you can decide which virtual machine is fit for migration.
Moreover, you can use the command 'top -H' in Linux to find out the programs that are causing the maximum load on your virtual machine. According to the policy you're following, you can decide whether or not to migrate the machine.
Note that all of this can be done remotely during VM runtime. Do let me know if this works out for you! Cheers!
You will need have a platform to monitoring your virtualization environment, this platform normally are integrate with the hyper-visor that host the virtual machines. You can configure these platform to move or migrate virtual machines automatically to another host hyper-visor when there necessary
for example, you can use System center Operation Manager with Virtual Machine Manager, Microsoft tools
this utility must be run in all vm or it's possible to run on central unit means virtual machine monitor (VMM) and give output of all virtual machine cpu usage
Running it on a central unit will give you the statistics of the central unit's processor, memory, etc. I'm not sure if it can give you application specific utilization. To avoid problems, I'd suggest you run it on all VMs.
You could derive an algorithm for resource overselling based on live migration. For instance. you have one physical machine with 10 VM each having allocated 1gB of RAM but you only have 8 gb of physical ram
You should define load as system characteristics that follow the Von-Neumann architecture: CPU utilization, RAM utilization, Storage utilization. These are the resources consumed by the individual VM.
The same metrics are applicable to the physical host system. If you need some good algorithm, try to find a threshold for resource overselling: e. g. if the host system hosts 10 VMs which in total use 10 GB RAM and the host system utilizes 8 GB RAM, it should migrate 2 VMs. But then it should migrate those VMs first that utilize the most of their 1 GB RAM, so more resources can be freed. Alternatively you could also try to migrate the least loaded VMs first (because they are underutilized and therefore easier to migrate). Then you could compare the migration algorithms and get an interesting research topic.
You should define load as system characteristics that follow the Von-Neumann architecture: CPU utilization, RAM utilization, Storage utilization. These are the resources consumed by the individual VM.
The same metrics are applicable to the physical host system. If you need some good algorithm, try to find a threshold for resource overselling: e. g. if the host system hosts 10 VMs which in total use 10 GB RAM and the host system utilizes 8 GB RAM, it should migrate 2 VMs. But then it should migrate those VMs first that utilize the most of their 1 GB RAM, so more resources can be freed. Alternatively you could also try to migrate the least loaded VMs first (because they are underutilized and therefore easier to migrate). Then you could compare the migration algorithms and get an interesting research topic.