Application efficiency is a primary concern for everyone involved in virtualized infrastructures. One method of increasing application efficiency is by analyzing IO workload patterns, commonly referred to as random vs sequential IOs. This should be considered during both design and optimization phases.
Sequential IO is significantly faster in most situations, but not every application is able to accomplish this on a consistent basis. Random IO requires a much larger amount of seek operations and thus have a lower throughput. This is important when forecasting IO performance needs since a heavily random IO workload will require lower seek times for optimal performance.
An obvious application of this is in database server VM performance. There are frequently concerns about virtualized database servers not matching physical server performance. An often overlooked design element is to ensure that the database server disks that perform sequential IO operations are not mixed with the disks that perform random IO workloads.
When a server generates a sequential IO workload the seek distance is extremely small. However, when a random IO workload is generated the seek distance increases. Combining the two workloads will substantially lower the performance of the sequential workload but will not cause a significant reduction in the performance of the random workload.
It is not always possible to know what type of IO workload pattern an application generates from vendor or internal documentation; so it is important to measure this when forecasting IO needs, optimizing performance, or identifying bottlenecks. Measuring seek distance with VMware’s built-in vscsiStats utility is easy and frequently overlooked. I have seen countless environments with poor database server VM performance that are misconfigured and have never had this measured.
IO metric being measured: Distance between successive IO commands
Command Used: /usr/lib/vmware/bin/vscsiStats
Note: To collect the data for just one specific disk on a VM use: vscsiStats -s -w WorldID -i HandleID (replace WorldID and HandleID with the appropriate identifiers)
1. Obtain the World ID of the VM that you want to analyze by using the “-l” (lowercase L) switch, like this: vscsiStats -l
2. Start the data collection by running the following command: vscsiStats -s -w WorldID (by default this will run for about 30 minutes)
3. View the distance between successive IO commands to identify sequential vs random workload by using the following command: vscsiStats -p seekDistance
4. If you are interested in exporting this data to a csv file use something similar to this: vscsiStats -p seekDistance -w WorldID -c > /root/ExportFileName.csv
5. To stop collection and purge the output data of vscsiStats, run the command: vscsiStats -x
Example of sequential IO workload pattern:
Example of random IO workload pattern:
With VMware View 4.5/4.6 it is possible to configure location-aware printing for VMware View users without complex scripting. With this feature the users can be configured to automatically print on the network printer closest to them. Keep in mind that this is computer-specific, not user-specific.
To do this you must setup a MS Group Policy. Essentially, there is a table that you need to create with specific rules detailing which printer to use based on which rule variable (see below) the View session meets. As one example, if the user has been assigned an IP in a specific range, the correct closest network printer that you defined for that range will be mapped to their View session. This is helpful for environments where users physically move around within their internal network and are constantly remapping printers or are forced to have many printers mapped and required to know and choose the appropriate printer for their current location.
The rules can be based on the following variables and can be configured to require a match to only one or multiple variables to map to specific printers automatically: Username, User Group, HostName, IP, or MAC address.
Follow a simple 3 step process to do this:
1. Register the following DLL before you can make it a template: C:\Program Files\VMware View\Server\Extras\GroupPolicyFiles\ThinPrint. Within that folder there is a 32bit and 64bit DLL. The exact DLL name is: TPVMGPoAmap.dll. Copy that DLL to the admin workstation and register it. Verify that this was successful by launching the MS Group Policy Editor and confirming that you can see it listed under: Software Settings -> Computer Configuration
2. Apply the GPO titled, “AutoConnect Location based Printing for VMware View“. After applying this GPO you can find the info in the registry at: HKLM\Software\Policies\ThinPrint\tpautoconnect.
3. Now you have the ability to use a CSV rule import or for smaller environments/uses you can add each one manually. Please remember to keep the printer driver name and printer name exactly the same as it is on the virtual desktop and add the prefix of IP_ to the IP address.





