Test Scenario 3: Multiple VMs Using a Virtual SQL Server

Test Scenario 3: Multiple VMs Using a Virtual SQL Server

Test scenario three was designed to compare the processing performance of using a physical and Hyper-V virtualized SQL Server to host the BizTalk databases. The two diagrams in the “Physical Infrastructure” section show the different configurations used during these tests. In the first configuration, a physical SQL Server was used; in the second configuration, a virtual machine was used. The SAN configuration used for both servers was identical to that detailed earlier in this guide.

Physical SQL Server Scenario

Cc768523.4a897b1c-4f3c-4c1f-885c-a2cbd8f4d37f(en-US,BTS.10).gif

Virtual SQL Server Scenario

Cc768523.16d4e07c-17b1-419d-a33e-ec6e7318ae8e(en-US,BTS.10).gif

Hardware Specification

The hardware specification was identical with the exception of the network adapter used during the test. All other machines had the same hardware configuration as test scenarios 1 and 2.

This section examines the relative performance of BizTalk Server when a virtual SQL Server is used to host the BizTalk databases. Load tests with one and two BizTalk Server virtual machines were performed against both a physical and virtualized SQL Server environment to determine the performance impact of using SQL Server as a virtual machine on Hyper-V.

During the tests with a single BizTalk Server virtual machine generating load, a SQL virtual machine with a single virtual processor was able to process 8% higher load than that of a physical server with one logical processor. End-to-end latency was 16% lower in the virtualized environment. CPU utilization on the physical and virtual SQL Servers varied slightly: the virtual SQL Server reported 86.1% CPU load vs. 80.7 on the physical SQL Server. When an additional BizTalk virtual server was added and the tests were re-run, both the physical and virtual environments were able to sustain a rate of 26.1 documents per second, latency did increase substantially, but was within 2% on both environments with a value of 2191 ms in the physical environment and 2246 ms in the virtual environment. With two virtual BizTalk Servers generating load, the CPU level reported on the SQL Servers was 97.5% in the physical and 99.34% in the virtual, which clearly indicated this was the resource bottleneck in the test.

Cc768523.note(en-US,BTS.10).gif
The virtual SQL server was restricted to one and two virtual processors by Hyper-V and not through use of the /numproc boot.ini switch.

To validate that SQL CPU was the resource bottleneck and to determine the performance impact of assigning multiple processors, the tests were re-run with two virtual processors assigned to the SQL virtual machine and two logical processors made available to the physical SQL environment. With a single virtual BizTalk Server generating load, the physical SQL Server was able to generate marginally better performance than the virtual SQL environment. The two processor physical server processed a 3% higher load with 10% lower latency than the single processor physical environment. End-to-end latency was reduced by approximately 50% in both physical and virtual SQL environment when compared to the performance of a single virtual BizTalk sever generating load with a single processor available to both SQL servers. CPU utilization on the SQL Servers was reduced to 41.23% in the physical environment and 56.05% in the virtual environment.

With two virtual BizTalk Servers generating load, both the physical and virtual SQL Server environments were able to process 50% more load, with both environments increasing from approximately 25 documents per second to 39 documents per second. The latency was significantly lower on the physical environment with a value of 617 ms reported vs. 936 ms with the virtual SQL environment. The physical SQL Server was able to process the load with a lower CPU utilization, with a figure of 70% reported vs. 80% in the virtual environment. The table below summarizes the results and the graphs represent the throughput and latency that was obtained for each test respectively.

Name Documents/Sec Request-Response Duration Average (ms)

1 BizTalk Server VM Against 1-Processor (Core) Physical SQL Server

22.6

1076

1 BizTalk Server VM Against 1-Processor (Core) Virtual SQL Server

24.53

900

1 BizTalk Server VM Against 2-Processor (Core) Physical SQL Server

25.35

456

1 BizTalk Server VM Against 2-Processor (Core) Virtual SQL Server

24.64

511

2 BizTalk Server VMs Against 1- Processor (Core) Physical SQL Server

26.1

2191.5

2 BizTalk Server VMs Against 1-Processor (Core) Virtual SQL Server

26.1

2246

2 BizTalk Server VMs Against 2-Processor (Core) Virtual SQL Server

38.5

936

Cc768523.c52e457d-a199-4e48-8e5e-b524414a162b(en-US,BTS.10).gif

Cc768523.bf31ad9a-0d71-41eb-9b01-8ddf8e61f48c(en-US,BTS.10).gif

Similar throughput can be attained using a virtual SQL Server compared to a physical SQL Server with both and single and dual processors allocated to it. The results indicate that there is approximately a 10% CPU utilization impact when using a virtualized SQL Server with SCSI pass-through disks. In the tests, adding an additional virtual processor yielded a 50% net performance improvement and significantly reduced end-to-end latency by over 50% with two virtual BizTalk Servers generating load. CPU utilization and disk I/O are typically the main bottlenecks on the SQL Server computers that house the BizTalk databases; especially for the MessageBox database. Therefore, to attain the maximum performance in a virtualized SQL Server environment, allocate the maximum number of virtual processors that are supported by the guest operating system and use SCSI pass-through disks for any database log or data drives.

The purpose of this test was to determine the performance of a physical SQL Server when restricted to one logical processor so that this could be used as a point of comparison for a virtualized SQL Server. The /numproc boot.ini switch was used to restrict the number of processors and the /maxmem switch to restrict the memory available to the machine to 2GB. Two tests were performed: the first with one virtual BizTalk Server connected to it, the second with two virtual BizTalk Servers generating load against it to determine how the physical SQL Server could handle the load.

Machine Configuration

SQL Server configuration:

  • One logical processor

  • 2 GB of memory allocated to the machine

BizTalk virtual machine configuration:

  • One virtual processor available to the operating system

  • 1.5 GB of memory allocated to each machine

Test Configuration

Test client configuration:

  • Number of messages 10,000 were sent per BizTalk Server

    • Total of 10,000 messages when one VM was used

    • Total of 20,000 messages when two VMs were used

  • Loadgen configuration:

    • Sleep Interval - 1

    • Threads Per Section – 35

    • LotSize – 4

Results Analysis

The results show that one virtual BizTalk Server connected to a single processor physical SQL Server, can sustain a load of 22.6 documents per second. This placed a load of 88.3% on the SQL Server. When another virtual BizTalk Server was added, CPU became a bottleneck on the SQL Server, the documents per second did increase marginally by 15% but the average latency more than doubled from 1076 to 2191 ms.

Name Run Number Request-Response Duration Average (ms) Documents/sec BizTalk CPU Utilization Hyper V % Guest Run Time (BizTalk VM instance) SQL\Processor(_Total)\% Processor Time

1 Virtual BizTalk Server

69 (10,000 messages total)

1076

22.6

80.7

73

88.3

2 Virtual BizTalk Servers

71 (20,000 messages total)

2191.5

26.1

49.3

46

97.5

Cc768523.8de2f892-067a-4d53-8baa-2148722e843f(en-US,BTS.10).gif

Cc768523.e1f3d8f0-4358-4587-aacb-1986dbf05225(en-US,BTS.10).gif

The purpose of this test was to determine the performance of a physical SQL Server when restricted to two logical processors so that this could be used as a point of comparison for a virtualized SQL Server. The /numproc boot.ini switch was used to restrict the number of processors available and the /maxmem switch to restrict the memory available to the machine to 2GB. Two tests were performed: the first with one virtual BizTalk Server connected to it, the second with two virtual BizTalk Servers generating load against it to determine how the virtual SQL Server performed under load.

Machine Configuration

SQL Server configuration:

  • Two logical processors

  • 2 GB of memory allocated to the machine

BizTalk virtual machine configuration:

  • One virtual processor available to the operating system

  • 1.5 GB of memory allocated to each machine

Test Configuration

Test client configuration:

  • Number of messages 10,000 were sent per BizTalk Server

    • Total of 10,000 messages when one VM was used

    • Total of 20,000 messages when two VMs were used

  • Loadgen configuration:

    • Sleep Interval - 1

    • Threads Per Section – 35

    • LotSize – 4

Results Analysis

The results show that one virtual BizTalk Server connected to a dual processor SQL Server, can sustain a load of 35.8 documents per second, which represents a 58% performance improvement over the same test performed with a single-processor SQL Server. The relative CPU on the SQL Server load reduced from 88.3% in the single-processor scenario to 63.12% in the two-processor scenario. When another virtual BizTalk Server was added throughput increased marginally by 10% and latency increased by 35% from 457 to 617.5 ms. With 2 processors available, the SQL Server was able to sustain the load placed on it as CPU utilization was 70.74%.

Name Run Number Request-Response Duration Average (ms) Documents/sec BizTalk CPU Utilization Hyper V % Guest Run Time (BizTalk VM instance) SQL\Processor(_Total)\% Processor Time

One Virtual BizTalk Server

86

457

35.804

84.219

74.085

63.123

Two Virtual BizTalk Servers

87

617.5

38.99

71.79

65.3

70.74

Cc768523.093026f8-ac70-4685-8e10-31fdb1fc8bc7(en-US,BTS.10).gif

Cc768523.4bfdad1a-e552-4736-8e42-323fa83cc62c(en-US,BTS.10).gif

The purpose of this test was to compare the performance of a virtualized and a physical SQL Server when restricted to logical single processor so that this could be used to determine the difference in performance between the physical and virtual environments. Two comparisons were made: the first between a physical and virtual SQL Server environment with one virtual BizTalk Server processing load against it; and the second using two BizTalk Servers to generate load against both the physical and virtual environments.

Machine Configuration

SQL Server virtual machine configuration:

  • One virtual processor

  • 2 GB of memory allocated to the machine

BizTalk virtual machine configuration:

  • One virtual processor available to the operating system

  • 1.5 GB of memory allocated to both machines

Test Configuration

Test client configuration:

  • Number of messages 10,000 were sent per BizTalk Server

    • Total of 10,000 messages when one VM was used

    • Total of 20,000 messages when two VMs were used

  • Loadgen configuration:

    • Sleep Interval - 1

    • Threads Per Section – 35

    • LotSize – 4

Results Analysis – One Virtual BizTalk Server

The performance of the virtual SQL Server that was allocated a single virtual processor was 8% better than the physical SQL Server and the latency was also better at 900 ms vs. 1076 ms in the physical environment. The SQL CPU utilization reported was almost identical in both the physical and virtual environments at 88.3% and 88.51% respectively. These results indicate that under moderate load, SQL Server running on a a single processor virtual machine can return performance similar to SQL Server running on a single processor physical computer. It is worth noting that performance of a number of other factors (such as the underlying SAN) could account for the marginally better performance of the virtual SQL Server during this comparison. The results are close enough, however, to conclude that both environments displayed similar levels of performance.

Name Run Number Request-Response Duration Average (ms) Documents/sec BizTalk CPU Utilization Hyper V % Guest Run Time (BizTalk VM instance) SQL\Processor(_Total)\% Processor Time

1-Processor (Core) Physical SQL Server

69

1076

22.6

80.7

73

88.3

1-Processor (Core) Virtual SQL Server

88

900

24.53

86.1

78

88.51

Cc768523.5100c42e-73ac-4ffe-aacc-10e865adced5(en-US,BTS.10).gif

Cc768523.cc8dc4bc-eba7-4014-87f6-f1ab9f0f5fb2(en-US,BTS.10).gif

Results Analysis – Two Virtual BizTalk Servers

To determine how the physical and virtual SQL Server environments scaled, two virtual BizTalk Servers were used to generate load against the environments. The results were remarkably similar; the virtual environment was able to process the same number of documents per second of the physical SQL Server environment and the latency was only 2% higher on the virtualized environment. As can be seen from the table below, the bottleneck in both cases was the CPU utilization on the SQL Server, PAL was used to analyze the other key resources (disk, memory and networking) to validate that no other resource was under contention during the runs.

Name Run Number Request-Response Duration Average (ms) Documents/sec BizTalk CPU Utilization Hyper V % Guest Run Time (BizTalk VM instance) SQL\Processor(_Total)\% Processor Time

1-Processor (Core) Physical SQL Server

71

2191.5

26.1

49.3

46

97.5

1-Processor (Core) Virtual SQL Server

89

2246

26.1

48.255

45.26

99.34

Cc768523.93391cd1-be0d-49d4-ba75-033bda5b22f0(en-US,BTS.10).gif

Cc768523.97b10892-f007-41a5-a52c-9e9fce6a36be(en-US,BTS.10).gif

The virtualized SQL Server was running on Windows 2003 x64 Enterprise Edition, which supports up to two virtual processors in Hyper-V. To determine the performance impact of this, the tests from the previous run were repeated with two virtual processors assigned to the virtualized SQL Server. The performance of the virtualized SQL Server with two virtual processers was then compared to the performance of a physical SQL Server with two processors available to it.

Machine Configuration

SQL Server virtual machine configuration:

  • Two logical processors

  • 2 GB of memory allocated to the machine

SQL Server physical machine configuration:

  • Two logical processors

  • 2 GB of memory allocated to the machine

BizTalk Server virtual machine configuration:

  • One virtual processor available to the operating system

  • 1.5 GB of memory allocated to both machines

Test Configuration

Test client configuration:

  • Number of messages 10,000 were sent per BizTalk Server

    • Total of 10,000 messages when one VM was used

    • Total of 20,000 messages when two VMs were used

  • Loadgen configuration:

    • Sleep Interval - 1

    • Threads Per Section – 35

    • LotSize – 4

Results Analysis – One Virtual BizTalk Server

The performance of the virtual SQL Server was within 3% of the physical environment in terms of throughput and 12% for latency. CPU utilization on the BizTalk Server virtual machine was almost identical, the virtual SQL Server did display higher CPU utilization at 56% compared to 41% in the physical SQL Server environment.

Name Run Number Request-Response Duration Average (ms) Documents/sec BizTalk CPU Utilization Hyper V % Guest Run Time (BizTalk VM instance) SQL\Processor(_Total)\% Processor Time

2-Processor (Core) Physical SQL Server

93

456

25.35

86.56

77.16

41.23

2-Processor (Core) Virtual SQL Server

90

511

24.64

84.3

77.12

56.05

Cc768523.69166ab6-6387-43f9-8d37-8346d5f58d6e(en-US,BTS.10).gif

Cc768523.5b93f8a8-9df3-4287-81b5-2199b821d010(en-US,BTS.10).gif

Results Analysis – Two Virtual BizTalk Servers

An additional test was then run against both physical and virtual environments to place the SQL Server under more load. The results show that under the load of two BizTalk Server virtual machines, both the physical and virtual SQL Server environments were able to display similar results. Throughput was within 2%; however the average latency across the two BizTalk Server virtual machines was 617.5 ms in the physical SQL Server environment vs.936 ms in the virtualized environment.

Name Run Number Request-Response Duration Average (ms) Documents/sec BizTalk CPU Utilization Hyper V % Guest Run Time (BizTalk VM instance) SQL\Processor(_Total)\% Processor Time

2-Processor (Core) Physical SQL Server

87

617.5

38.99

71.79

65.3

70.74

2-Processor (Core) Virtual SQL Server

91

936

38.5

64.15

59.99

80.54

Cc768523.8b1aae29-ef85-4a84-989b-99e072e47337(en-US,BTS.10).gif

Cc768523.05db5332-549c-4497-975f-64aaf9f527e2(en-US,BTS.10).gif
Show:
© 2016 Microsoft