locked
Set priority to hyper-v processes to improve performance. What are the settings?! RRS feed

  • Question

  • I found that increasing priority of the hyper-v processes on the host system we can impove the performance of guest system.
    There are two processes responsible for this
    1) vmms.exe - Virtual Machine Management Service (actual Hyper-V Manager)
    2) vmwp.exe - Virtual Machine Working Process (out virtual instance, guest OS)

    I set the "realtime" for the vmWP.exe and "above normal" priority fo vmMS, and found that performance has been improved.
    Tried swap the priority - not much difference.

    There are several questions:
    1) how to set the priority correctly to have the best performance
    2) does splitting Manager and Working Process between CPU (using affinity, and assigning processes to different CPUs) affect the performance?!
    SharePoint Tips & Tricks Portal | Microsoft MVP | My Blog | My twitter
    • Edited by John Paul Cook Wednesday, September 23, 2009 10:27 PM fix typo
    Tuesday, September 22, 2009 12:40 PM

Answers

  • Hi,

     

    The vmms.exe and vmwp.exe processes are very important for guest to run. The Virtual Machine Management service (VMMS) is responsible for managing the state of all virtual machines in child partitions. The worker process for each online virtual machine then performs the management tasks for the associated virtual machine. It's expected that the performance of guest machine may improve a little if you sets the process priority to "Above normal" and even "Real Time" because these processes get more chances to run in a multitask environment.

     

    1)    how to set the priority correctly to have the best performance

     

    >> Setting a process priority to RealTime is a dangerous operation that is restricted to administrators. Many kernel-mode system processes, such as those that manage mouse and keyboard input and other device operations, run in the Real Time priority class. A process with such high priority can "Starve" important processes, preventing them from ever getting any processor time in some situations. Here it is a tradeoff. When vmms.exe or vmwp.exe are performing some CPU-intensive operation, the interactive performance will be degraded. If the guest machine is doing I/O operation, it will be slowed down.

     

    Actually, the appropriate process priority setting highly depends on your usage. We do not have a single recommendation which applies to all scenarios. However, generally speaking, we do not recommend setting a process that does not really need real time response to this process priority.  However, it will improve guest performance a little if you set a higher process priority for vmms.exe and vmwp.exe.

     

    2)    does splitting Manager and Working Process between CPU (using affinity, and assigning processes to different CPUs) affect the performance?

     

    >> I do not think that it will improve the performance if we set affinity for vmms.exe and vmwp.exe process. Because of the affinity setting, the performance may be even lower as the process may not be scheduled to run even when there is a CPU is idle.

     

     

    Best Regards,

    Vincent Hu

    Thursday, September 24, 2009 6:20 AM

All replies

    • Proposed as answer by BrianEhMVP Wednesday, September 23, 2009 9:55 PM
    Wednesday, September 23, 2009 6:02 PM
  • As Tony mentions, why go mucking around?

    On production hypervisors it is not recommended to change these priorities at all.
    It is an endless chain of cause and effect - you increase here and someone has to pay there.  The finite resource is always the hardware.
    Brian Ehlert (hopefully you have found this useful)
    Wednesday, September 23, 2009 9:55 PM
  • Restating what the others said just a little bit differently: I've been in lots of NDA meetings with the Hyper-V product team. NEVER, absolutely never, not even once, has anybody on the product team suggested doing this or even mentioned it. I think it is a bad idea.

    Wednesday, September 23, 2009 10:30 PM
  • Hi,

     

    The vmms.exe and vmwp.exe processes are very important for guest to run. The Virtual Machine Management service (VMMS) is responsible for managing the state of all virtual machines in child partitions. The worker process for each online virtual machine then performs the management tasks for the associated virtual machine. It's expected that the performance of guest machine may improve a little if you sets the process priority to "Above normal" and even "Real Time" because these processes get more chances to run in a multitask environment.

     

    1)    how to set the priority correctly to have the best performance

     

    >> Setting a process priority to RealTime is a dangerous operation that is restricted to administrators. Many kernel-mode system processes, such as those that manage mouse and keyboard input and other device operations, run in the Real Time priority class. A process with such high priority can "Starve" important processes, preventing them from ever getting any processor time in some situations. Here it is a tradeoff. When vmms.exe or vmwp.exe are performing some CPU-intensive operation, the interactive performance will be degraded. If the guest machine is doing I/O operation, it will be slowed down.

     

    Actually, the appropriate process priority setting highly depends on your usage. We do not have a single recommendation which applies to all scenarios. However, generally speaking, we do not recommend setting a process that does not really need real time response to this process priority.  However, it will improve guest performance a little if you set a higher process priority for vmms.exe and vmwp.exe.

     

    2)    does splitting Manager and Working Process between CPU (using affinity, and assigning processes to different CPUs) affect the performance?

     

    >> I do not think that it will improve the performance if we set affinity for vmms.exe and vmwp.exe process. Because of the affinity setting, the performance may be even lower as the process may not be scheduled to run even when there is a CPU is idle.

     

     

    Best Regards,

    Vincent Hu

    Thursday, September 24, 2009 6:20 AM