Poor performance in guest OS compared to PD 14

Discussion in 'Parallels Desktop 15 for Mac Technical Preview' started by KorkyPlunger, Apr 18, 2019.

  1. Dmitry@Parallels

    Dmitry@Parallels Staff Member

    Messages:
    588
    @KorkyPlunger, our engineers asked me to pass huge thank to your on their behalf, we all really appreciate your help. But to advance in this investigation I dare to ask you for more tech data from your VM. In particular, we need several Windows performance reports collected at different conditions: with Parallels hypervisor and high CPU usage by CompatTelRunner.exe, with Apple hypervisor and CPU usage by CompatTelRunner.exe. Optionally, another report with Parallels hypervisor and heavy VM load with Visual Studio. Here are instructions how to install WPR and collect reports:
    1. Download Windows ADK according to the Windows version using the link: https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install
    2. Install Windows Performance Toolkit by running the installer downloaded in the step 1.
    3. Boot to Windows VM.
    4. From Start menu run Windows Performance Recorder.
    5. Change Performance scenario on the right pane to General and Logging mode to Memory then check the following items under Resource Analysis:
      • CPU usage
      • Disk I/O activity
      • File I/O activity
      • Registry I/O activity
      • Networking I/O activity
    6. Once done press Start button, then choose a path where to save the resulting file and press Save button.
    7. In the appeared window, once Windows Performance Recorder suggest restarting Windows press OK button to start recording a trace.
    8. After the Windows has restarted, launch Windows Performance Recorder again to finish collecting the trace and start recording the results into the file.
    9. After the file is created, upload the resulting file to the Parallels file share (http://kb.parallels.com/en/9101) and attach the link to the file to the bug.
     
  2. KorkyPlunger

    KorkyPlunger Kilo Poster

    Messages:
    130
    This will take me a while; I'll get to it as soon as I have some free time.
     
  3. KorkyPlunger

    KorkyPlunger Kilo Poster

    Messages:
    130
    @Dmitry@Parallels does your team want me to enable PMU virtualization when grabbing these traces under the parallels hypervisor?
     
  4. KorkyPlunger

    KorkyPlunger Kilo Poster

    Messages:
    130
    @Dmitry@Parallels I have the requested captures ready to go, but need you to tell me which file share directory to use. I will DM you.
     
  5. Dmitry@Parallels

    Dmitry@Parallels Staff Member

    Messages:
    588
  6. Dmitry@Parallels

    Dmitry@Parallels Staff Member

    Messages:
    588
    Hi @KorkyPlunger, I've received an update from the Engineering team. First of all, the data you've collected was super helpful for the investigation, thanks a lot!
    The most interesting test case appeared to be the one with Parallels hypervisor and Visual Studio. Now we need your help to repeat it and collect more diagnostic data, please:
    1. Download ProcessMonitor: https://download.sysinternals.com/files/ProcessMonitor.zip
    2. Extract the archive and run Procmon.exe
    3. On the options bar click "Capture" icon (magnifying glass) > then click "Clear" icon (the next but one).
    4. Click Filter tab > "Filter" > set these conditions: "ProcessName" > "is" > ServiceHub.VSDetouredHost.exe > click "Add" > click "OK"
    5. On the options bar uncheck the following options (last block): "Show File System Activity", "Show Network Activity", "Show Process And Thread Activity"
    6. Make sure that "Show Registry Activity" is enabled
    7. Click "Capture" (start trace)
    8. Reproduce the issue with guest performance when compiling under Visual Studio
    9. Stop trace
    10. Click "Save" > select CSV format, save the trace and send it to us please.
    P.S. You can upload it to the same shared folder as you did previously.
     
  7. KorkyPlunger

    KorkyPlunger Kilo Poster

    Messages:
    130
    Hi @Dmitry@Parallels,

    I made two attempts at this. The first attempt captures just the data from ServiceHub.VSDetouredHost.exe, during a short time when there was higher CPU usage by visual studio and that service in particular. This is in attempt_1.zip (in both native ProcMon format and CSV), and includes a screenshot of TaskManager showing the CPU usage.

    I went to repro this again, and encountered a more interesting case where the VM became very sluggish and apps were basically unresponsive. Luckily I had ProcMon running at the time, so I was able to gather technical data (#317064649) and a corresponding ProcMon capture of all processes (not just ServiceHub.VSDetouredHost). Interestingly enough, ServiceHub.VSDetouredHost was not showing any CPU usage at the time everything was unresponsive, just Visual Studio. The archive is named attempt_2_for_technical_data_317064649.zip and it includes the procmon captures and a screenshot of TaskManage showing CPU use. Hopefully the procmon info combined with the technical data should be helpful here.

    -chris
     
  8. Dmitry@Parallels

    Dmitry@Parallels Staff Member

    Messages:
    588
    Hi Chris, can you please send us the following library from your VM: VA_X.dll
    If there are several distinct instances of the library then please send us all instances.
    Thank you in advance!
     
  9. KorkyPlunger

    KorkyPlunger Kilo Poster

    Messages:
    130
    There was only one. I've uploaded it to the above FTP site.
     
    Dmitry@Parallels likes this.
  10. Dmitry@Parallels

    Dmitry@Parallels Staff Member

    Messages:
    588
    Thanks a lot!!
     
  11. Dmitry@Parallels

    Dmitry@Parallels Staff Member

    Messages:
    588
    @KorkyPlunger, hi, can you please disable the WholeTomato Visual Assist extension and check whether the VisualStudio (devenv.exe) CPU consumption decreases.
     
  12. KorkyPlunger

    KorkyPlunger Kilo Poster

    Messages:
    130
    @Dmitry@Parallels Disabling Visual Assist does reduce CPU consumption, but that's not surprising. If you disable the task that is doing the slow operation, the slow operation no longer occurs :) What is interesting is that the VM does not become sluggish and unresponsive in the same scenario under the Apple hypervisor. Similar to the scenario discussed earlier in this thread, Windows Compatibility Telemetry (CompatTelRunner.exe) was causing the VM to become sluggish/unresponsive under the Parallels hypervisor but not the Apple hypervisor.

    When Visual Studio starts up and loads Visual Assist, Visual Assist begins scanning hundreds or thousands of files in order to update its symbol indices, and perhaps accesses the registry frequently as well. If I had to guess, I'd assume that the Windows Compatibility Telemetry was also doing a lot of file/registry access.

    So maybe there's something specific about the way these two processes are accessing OS-level resources that is behaving sub-optimally in the Parallels hypervisor?

    Please let me know if you need anything else from me to help here.
    -chris
     

Share This Page