Converting IO/s to MB/s

  • Hey everyone.  We are looking at replacing a physical server with a VM and want to do as much analysis as possible to confirm that the VM will be able to support the same workload.

    I understand measuring CPU and RAM but am concerned about how the virtual disks measure up to the performance we are getting from luns on the SAN.

    One measure that I see is physical IO Per Second. I'm just guessing here but if max IO/s recorded is 38,503 and SQL Server reads IO in 8k pages would that mean that the data being moved from disk is 308,024 k/s (approx 300 MB/s)?

    The DiskSpd MiB/s measurement I am getting from the virtual disk is significantly slower than the lun performance but still fast enough to support 300 MB/s.

    Appreciate any advice.

    Thanks

  • Hi

    SQL Server stores data in 8Kb pages however IO issued by SQL server will vary based on the workload. You can get the average IO size using perfmon (avg. Disk Bytes/Read, avg. Disk Bytes/Write), in addition to your actual throughput (Disk Write Bytes per Sec, Disk Reads Bytes per Sec). It would be worthwhile looking at the percentiles for IO and throughput, your max IO may be 38,503 however you may find that 99.999% of your IO is much lower.

    Hope this helps.

    Rob

  • PHXHoward - Friday, October 12, 2018 3:02 PM

    Hey everyone.  We are looking at replacing a physical server with a VM and want to do as much analysis as possible to confirm that the VM will be able to support the same workload.

    I understand measuring CPU and RAM but am concerned about how the virtual disks measure up to the performance we are getting from luns on the SAN.

    One measure that I see is physical IO Per Second. I'm just guessing here but if max IO/s recorded is 38,503 and SQL Server reads IO in 8k pages would that mean that the data being moved from disk is 308,024 k/s (approx 300 MB/s)?

    The DiskSpd MiB/s measurement I am getting from the virtual disk is significantly slower than the lun performance but still fast enough to support 300 MB/s.

    Appreciate any advice.

    Thanks

    To answer your calculation question, yes... approximately 300MB/s.  An "easy" way to convert pages to MB is to simply divide the number of pages by 128.

    To be sure, using a VM these days shouldn't make much of a difference when it comes to I/O.  If there is a large difference, then there's something seriously wrong.

    I also agree with what Rob stated for where/what to look for.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Thanks both of you for the info. I'll check perfmon counters.

    Looking at another fairly busy vm that handles some communications tools, I see spikes up to 879,956 pages/sec. Using the /128 technique, it seems like that would be 6875 MB (6.78GB) of logical transfers.  Is 6.78GB a possible amount of data for a vm to transfer in one second? That is amazing. Maybe my math is wrong.

    edit:  I guess it is possible that page reads might not actually be transferred off the server.  They could be used for tempdb work and then filtered in some way before they are sent across the network.

Viewing 4 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic. Login to reply