4 Replies Latest reply on Dec 8, 2019 5:53 PM by TimothyHuckabay

    Performance of NVME SSD Disk with VMware Workstation 12 Pro

    voebs01 Lurker

      Hi,

       

      Recently we installed some of Samsungs new NVME SSD Disks (PCIE M2) and there is quite a difference in the performace of that SSD on the Win 7 PC directly and within a Win 7 virtual machine on that very same PC...

       

       

      The AS SSD Benchamrk gives following results:

       


      Seq Read, 10 GB on PC directly:   2611 MB/s

      Seq Write, 10 GB on PC directly:   1620 MB/s

       

      Seq Read, 10 GB in VM:                1446 MB/s

      Seq Write, 10 GB in VM:                  778 MB/s

       


      The VM uses the SSD via SCSI.

       

      Since it is the very first time I installed a VM I wonder if that loss of disk performance is to be expected, or should the VM perform better?

       

       

       

      If the performance for read / write on the PC directly is set as 100% what performance could be expected within the VM?
      80% or maybe just 60%? Or did I do something wrong?

       


      If the disk performance in the VM can be improved, how so?

       

       

       

       

       

       

       

       

       

       

       

       

      Thanks in advance,
      Thomas

        • 1. Re: Performance of NVME SSD Disk with VMware Workstation 12 Pro
          wila Guru
          Community WarriorsUser ModeratorsvExpert

          Hi,

           

          There certainly is some loss of performance to be expected.

          Unfortunately there is not an easy answer on how much performance loss there would be as there are many factors.

           

          To name just a few.

           

          You have to take into account that the host OS (Windows 7) was not designed as a host for virtualisation.

          Instead it was designed to be used as a desktop OS, so it is tuned for desktop use.

           

          Then there can be a certain load at the host OS that will cause a slow down in the guest.

          Eg. your physical hardware is bound to a certain number of Input/output operations per second, so if the host is reading/writing at the disk for another application then that means the maximum read/write performance that can be achieved will be less.

           

          On top of that there's the extra layer. Your guest OS uses it's normal operating system calls to write to disk, but in reality it is just passing on those reads/writes to the host OS.

          It is the host OS that does the writing.

           

          Then there's the potential common performance measurements mistake.

          For example if you take a few snapshots and then go try to do a read (or write) test, it will be much slower.

          Why? Because now it has to read multiple times from disk in order to read that one sector from disk.

           

          If you really want to get maximum performance then you probably should test with a pre-allocated disk as growing the virtual disk size while you are speed test writing to it will also slow things down.

           

          On top of all that, your IO is now also more dependent on things like RAW CPU power, is your host or guest swapping to disk?

          Is the RAM backing (.vmem) file being written too.

           

          As you see, there's not an easy answer, but hopefully this gives you a bit of a better insight in things.

          --

          Wil

          | Author of Vimalin. The virtual machine Backup app for VMware Desktop Products
          | Vimalin : Automated backups for VMware Fusion and VMware Workstation Professional
          | More info at https://www.vimalin.com
          | Twitter @wilva
          | VMware Wiki at http://www.vi-toolkit.com
          • 2. Re: Performance of NVME SSD Disk with VMware Workstation 12 Pro
            voebs01 Lurker

            Thanks for your Answer!

             


            Some additional info from me:

            - The PC in question is a single user owned development box and thus mostly used to compile, build and run executables.
            - The two tests were run with no other application runing on either host or guest system
            - The box has 16 GB RAM and the VM was set to 6 GB RAM, thus there was no swapping in host or guest System noticed

            - Also the VM was setup with a single pre allocated file. And after browsing through this forum some weeks ago i already got rid of the 11 snapshots i created when setting up the VM. However getting rid of those did not really improve performance at all.

             

             

            Having read your answer I'd like to ask two new questions:

             

            1) Can the VMware (either by starting from scratch, or changing some options of the existing image within VMware WS 12) be tweaked to be more perfomant?

              Info: e.g was using the SSD via SCSI the right choice to make?

             

            2) What is the most performant way to set up a virtual machine to run on a PC?

              Info: in the forum I read that with ESXI one could add a NVME Controller, also the overhead of an additional host OS will be gone.

              Thus would I have been better of using ESXI or another product?

             

             

             

            Thanks for your time!

            Thomas

            • 3. Re: Performance of NVME SSD Disk with VMware Workstation 12 Pro
              wila Guru
              vExpertCommunity WarriorsUser Moderators

              Thomas,

               

              There are still a lot of unknown factors (posting a vmware.log of the VM helps)

               

              Getting the max performance does depend on details, though quite often the differences are tiny.

               

              1) Not sure, if selecting SCSI then I hope you selected SAS, not parallel SCSI.

               

              2) Yes I would expect ESXi to be faster, but ESXi is also a bit more picky on what hardware it supports and performance still won't be the same as native. There's also sharing algorithms that optimize performance over multiple guests who do not help when just running a single guest.

               

              I don't have a "guaranteed to give you best performance" recipe.

               

              Oh and FWIW, I actually installed a few NVMe disks here last week, for the exact same reason, faster build times as opposed to compile on my VM that runs of a normal SSD.

               

              Unfortunately I have been too busy over the week to run many tests (dead lines, oh joy)

               

              As it happens those machines do have ESXi under a dual boot as well as well as Workstation (both Windows and Linux), so I can test differences, once I get the time and if the NVMe disks are recognized (not sure, my ESXi on there might be too old)

               

              --

              Wil

              | Author of Vimalin. The virtual machine Backup app for VMware Desktop Products
              | Vimalin : Automated backups for VMware Fusion and VMware Workstation Professional
              | More info at https://www.vimalin.com
              | Twitter @wilva
              | VMware Wiki at http://www.vi-toolkit.com
              • 4. Re: Performance of NVME SSD Disk with VMware Workstation 12 Pro
                TimothyHuckabay Novice

                I posted this important information in January 2019, and apparently some unhappy individual (presumably with VMWare) foolishly removed it, so here it is again.  It is just as relevant today under version 15.5.x, as it was when I posted it back in January 2019:

                 

                As of version 15.0.2 of Workstation, this is still NOT fixed.  VMware's claim of "performance improvements for virtual NVMe storage" are just hot air.  I have extensively tested the latest versions of Workstation Pro 15 and Workstation Pro 14, and can definitively state that the SCSI drive option continues to be faster than the NVME drive option, and both are much slower than they should be within VMs.  (Even under the SCSI option, read/write performance is DRAMATICALLY worse in the VM than on the host for NVME drives.)  I tested using a Samsung 970 Evo 2TB NVME drive in all cases for this.  There is not even a recognizable marginal improvement in NVME performance between Workstation 14 and 15.  So, VMware has yet to actually address this problem.  Notably, Workstation 15 continues to recommend SCSI drives over all others for performance, so at least that much is yet true.  NOTE: Within a VM, NVME drives particularly suffer for multithreaded reads and writes, as may be seen in the AS SSD Benchmark tool's 4K-64Thrd (i.e., 64-threads) read and write tests.

                 

                There are very few reasons to upgrade to 15 Pro from 14 Pro IMO.  Even 4K support is questionable: one can achieve workable 1080P across 1080P and 4K screens with Windows 10 (1809) for example.  (Just set the host's resolution to 1080P before launching Workstation 14 Pro, AND ensure that you have set the "high DPI settings" appropriately: using the Properties for the Workstation Pro shortcut, go to the Compatibility tab, then "Change high DPI settings," and select "Program DPI" with "I signed in to Windows" for the corresponding dropdown option.)  This said, the 4K support is nice if you do decide to fork out the bucks for 15 Pro.  If you are using 15 Pro, you may also want to enable (check) "Automatically adjust user interface size in the virtual machine" (under VM --> Settings --> Hardware --> Display).

                 

                Now, regarding overall VM performance, including drive performance, here are your best options to date: use a SCSI disk (NOT NVME), select (enable) the "Disable memory page trimming" option under VM --> Settings --> Options --> Advanced, and select "Fit all virtual machine memory into reserved host RAM" under Edit --> Preferences --> Memory.  (For this last option, you will want to ensure you have plenty of physical host RAM that you can spare (i.e., dedicate exclusively) to the VM (should the VM need it).  Lastly, if you are using 15 Pro, you may want to set Graphics memory (under VM --> Settings --> Hardware --> Display) to 3GB.

                 

                Finally, if you are working on a system that has hybrid graphics (e.g., a laptop with an nVidia video card besides in-built Intel display graphics), you may want to use the relevant "control panel" application to instruct your system to use the discrete graphics card for vmware.exe and vmware-vmx.exe.