Topic Last Modified: 2011-04-11

To ensure optimal performance of Microsoft Lync Server 2010, you must provision and deploy an adequate level of hardware resources; however, to maximize the return on your hardware investments, you don’t want to provision more hardware than you need.

This section provides guidance for hardware allocation based on your analysis of your organization’s needs. You use your organization’s number of users, user profiles, and workloads deployed to determine the necessary CPU clock speed, server memory requirements, and network bandwidth to and from your server. The results are applicable to both physical and virtual topologies.

The information in this section will be especially helpful if your user model or server hardware differ from what is described in Lync Server 2010 User Models.

The following sections detail the resources needed for each modality of Lync Server 2010. Following that is an example scenario that illustrates how to use these numbers.

All the performance costs in the following tables assume as a baseline that each server has dual quad-core processors with with a clock speed per core of 2.33 GHz. This yields 2,333 megacycles per processor core, or 18,664 megacycles per server.

If your servers have different processors, you can adjust the figures accordingly. For details, see “Adjusting for Your Processors” later in this topic.

Understanding the Results Tables and Formulas

Each of the following sections contains a table showing the results of Microsoft performance testing, with the following figures:

  • CPU requirements in megacycles shows the megacycles needed for this workload for this total number of users in the pool, or total number of concurrent calls or sessions in the pool. For example, in the Conferences, Web Conferencing table, the number 1,569 in the 400 row means 400 concurrent data conferencing users in the pool will require a total of 1,569 megacycles combined from the servers in the pool.

  • CPU requirements as a percentage of a Front End Server shows the megacycles needed for this task as a percentage CPU load as if the entire load were being handled by one server of the same specifications as those used in Microsoft testing.

  • Memory requirements shows the total memory needed for this workload for this total number of concurrent users or calls in the pool. For example, in the Conferences, Web Conferencing table, the number 1.5 GB in the 400 row means 400 concurrent data conferencing users in the pool will require a total of 1.5 GB of memory combined from the servers in the pool.

    This number does not include the memory needed for base system requirements.

  • Network bandwidth shows the total necessary network bandwidth to and from your servers, for this total number of concurrent users or calls of this type in the pool. This is only for traffic to and from the server; peer-to-peer bandwidth is not accounted for.

Following the table are some formulas that you can use to calculate the resources you need given your number of users, user model, and workload. These formulas were created using trend analysis of the performance test results. Not every data point from the testing falls exactly on the trend line, so if you use the formula with the number of users or calls from one of the rows of the test results table, the performance numbers calculated may not match the table results precisely.

Determining the CPU needs for your pool includes the following calculations:

  • For each workload, you first compute test server CPU% cost. This is the CPU cost expressed as a percentage of the entire CPU ability of one of the servers used in Microsoft performance testing. These servers have 8 cores with 2.33 GHz per core.

    If you are using servers with the same SPECint rate, you can simply use test server CPU% cost to determine how many servers you will need. Add the test server CPU% costs for each workload to find the total test server CPU% cost that you need from your entire pool. Then deploy enough servers in the pool to ensure that each server can run at 70% capacity or less. For example, if you determine a total test server CPU% cost of 260%, you would want to deploy four servers in the pool.

  • If you are using servers with a different capability, you will want to use the next formula for each workload, which translates the test server CPU% cost to megacycles. For an example of using these calculations, see “Example of Calculating Needed Resources” later in this section.

All performance testing was done assuming that all test servers are within one site.

Testing Assumptions

The testing, results, and formulas in this section assume the following:

  • All servers are in one site.

  • Mediation Server is collocated with Front End Server. If you deploy a stand-alone Mediation Server, you cannot subtract the entire Enterprise Voice load from the Front End Server, because some signaling traffic is still processed by the Front End Server.

    For issues and usage not called out in this section, it is assumed that your organization follows the usage in Lync Server 2010 User Models. For example, multiple point of presence (MPOP) is assumed to be 1:1.5.

IM and Presence

This table shows the test results for the IM and presence workload. The numbers here include distribution list expansion and presence photograph retrieval.

Number of users CPU requirements in megacycles CPU requirements as a percentage of a Front End Server* Memory requirements** Network bandwidth

5,000

1,043

5.6%

1.1 GB

7.5 Mbps

10,000

1,736

9.3%

1.6 GB

14.8 Mbps

15,000

2,556

13.7%

2.18 GB

22.6 Mbps

20,000

3,528

18.9%

2.33 GB

38.3 Mbps

25,000

4,423

23.7%

2.43 GB

52.8 Mbps

* Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

** Add 7 GB per server for base system memory requirements

From these test results, we use trend analysis to yield the following guidelines:

  • Test server CPU% cost = (number of users) * 0.001

    Megacycles needed = (CPU% cost/100) * 2333 * 8

  • Required memory in GB = 7 GB base + ((number of users) * 0.0000678)

  • Required network in Mbps = ((number of users ^2) * 6.37-8) + (0.000369 * number of users) + 4.15

Address Book Web Query

This table shows the test results for the resource usage of address book web query.

Number of users CPU requirements in megacycles CPU requirements as a percentage of a Front End Server* Memory requirements Network bandwidth

5,000

646

3.46%

0.265 GB

3.3 Mbps

10,000

974

5.22%

0.268 GB

6.4 Mbps

15,000

1,312

7.03%

0.263 GB

9.5 Mbps

20,000

1,631

8.74%

0.263 GB

13.8 Mbps

25,000

1,984

10.63%

0.265 GB

18.3 Mbps

* Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

From these test results, we use trend analysis to yield the following guidelines:

  • Test server CPU% cost = ((number of users) * 0.0004) + 2.0

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = 0.300

  • Required network in Mbps = 0.00075 * number of users

Group IM Conferences

This table shows the test results for the resource usage of group IM conferences.

Number of concurrent group IM users* CPU requirements in megacycles CPU requirements as a percentage of a Front End Server** Memory requirements Network bandwidth

100

401

2.15%

0.08 GB

1.22 Mbps

200

358

1.92%

0.15 GB

1.90 Mbps

300

416

2.33%

0.23 GB

2.42 Mbps

400

467

2.5%

0.30 GB

3.00 Mbps

500

538

2.88%

0.40 GB

3.38 Mbps

* Be sure to account for other conference users. The Lync Server 2010 user model assumes that 50% of audio conferences include group IM. When you project the number of group IM users, include an appropriate percentage of conference users, based on the usage in your organization.

** Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

From these test results, we use trend analysis to yield the following guidelines:

  • Test server CPU% cost = (number of users * 0.001) + 2.0

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = 0.0008 * number of concurrent group IM users

  • Required network in Mbps = (number of concurrent group IM users * 0.0054) + 0.76

Conferences, Web Conferencing

This table shows the resource usage for the web conferencing portion of your conferences.

Number of concurrent web conferencing users* CPU requirements in megacycles CPU requirements as a percentage of a Front End Server** Memory requirements Network bandwidth

100

444

2.38%

0.4 GB

24.55 Mbps

200

659

3.53%

0.4 GB

49.23 Mbps

300

845

4.53%

1.5 GB

66.58 Mbps

400

1,004

5.38%

1.5 GB

81.34 Mbps

500

1,191

6.38%

2.2 GB

90.06 Mbps

* The number of web conferencing users can usually be determined as a percentage of the conferencing users. The Lync Server 2010 user model assumes that 20% of conferences include web conferencing (such as the Microsoft PowerPoint presentation graphics program or whiteboarding). You can adjust this percentage to match your own organization’s users, to determine what number of concurrent data conferencing users you will have.

** Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

From these test results, we use trend analysis to yield the following guidelines:

  • Test server CPU% cost = (concurrent data conferencing users * 0.01) + 1.5

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = 0.0047 * (number of concurrent data conferencing users)

  • Required network in Mbps = (number of concurrent data conferencing users * 0.163) + 13.4

PSTN Conferences

This table shows the resource usage for the PSTN users participating in your conferences through Conferencing Attendant application.

Number of concurrent PSTN conferencing users CPU requirements in megacycles CPU requirements as a percentage of a Front End Server* Memory requirements Network bandwidth

50

373

2.0%

0.47 GB

1.0 Mbps

100

560

3.0%

0.59 GB

2.1 Mbps

150

560

3.0%

0.71 GB

3.2 Mbps

200

933

5.00%

0.83 GB

4.4 Mbps

250

1,680

9.00%

1.01 GB

5.6 Mbps

* Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

From these test results, we use trend analysis to yield the following guidelines:

  • Test server CPU% cost = (number of concurrent PSTN conference callers * 0.033) + (number of concurrent PSTN conference callers * 0.0918)

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = ((2.64 * number of concurrent PSTN conference callers) + 326) / 1000

  • Required network in Mbps = (0.023 * number of concurrent PSTN conference callers) – 0.19

Note that when calculating the CPU cost, you use the number of concurrent PSTN callers twice to account for each caller being both a conference participant and a UC-PSTN caller.

Conferences, Application Sharing

This table shows the resource usage for the application sharing portion of your conferences.

Number of concurrent application sharing users* CPU requirements in megacycles CPU requirements as a percentage of a Front End Server** Memory requirements Network bandwidth

100

1,680

9.0%

2.7 GB

82.0 Mbps

200

3,098

16.60%

2.8 GB

130.8 Mbps

300

4,324

23.17%

2.9 GB

152.2 Mbps

400

5,192

27.82%

3.3 GB

184.13 Mbps

* The number of application sharing conferencing users can usually be determined as a percentage of the audio conferencing users. The Lync Server 2010 user model assumes that 50% of audio conferences include application sharing. You can adjust this percentage to match your own organization’s users, to determine what number of concurrent application sharing users you will have.

** Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

From these test results, we use trend analysis to yield the following guidelines:

  • Test server CPU% cost = (concurrent application sharing conferencing users * 0.071) + 2.5

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = (0.0019 * number of concurrent application sharing conferencing users) + 2.45

  • Required network in Mbps = (number of concurrent application sharing conferencing users * 0.33) + 54

Conferences, Audio Conferencing

Audio conferencing is handled by the Audio/Video (A/V) Conferencing service, so this load does not affect the Front End Servers unless you have A/V Conferencing service collocated with the Front End Server. For optimal performance, we recommend that you deploy A/V Conferencing Server separate from Front End Server. Collocating A/V Conferencing Server with Front End Server is supported if you have fewer than 10,000 users.

This table shows the resource usage for the audio portion of your conferences. This table assumes the model of 85% of audio conferences including four users, 10% including six users, and 5% including 10 users.

Note that in all the conferencing tables, the number of concurrent users refers to the overall number of users participating in all current conferences. The limit for users in a single conference is 250.

Number of concurrent audio conferencing users CPU requirements in megacycles CPU requirements as a percentage of a Front End Server or A/V Conferencing Server* Memory requirements** Network bandwidth

200

2,463

13.2%

0.42 GB

29.33 Mbps

400

4,759

25.5%

0.73 GB

58.02 Mbps

600

6,906

37.0%

1.0 GB

86.98 Mbps

800

8,884

47.6%

1.29 GB

115.74 Mbps

1000

11,814

63.3%

1.6 GB

144.84 Mbps

* Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

** On A/V Conferencing Server, add 7 GB per server for base system memory requirements

From these test results, we use trend analysis to yield the following guidelines:

  • Test server CPU% cost = (number of concurrent audio conferencing users) * 0.062

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = (number of concurrent audio conferencing users * 0.00146) + 0.132

  • Required network in Mbps = (number of concurrent audio conferencing users * 0.14435) + 0.36

Conferences, Video Conferencing

This table shows the resource usage for the video portion of your conferences. This table assumes the model of 70% of video conferences use CIF, and 30% use VGA.

Video conferencing is handled by the A/V Conferencing service, so this load does not affect the Front End Servers unless you have A/V Conferencing service collocated with Front End Server.

Number of concurrent video conferencing users* CPU requirements in megacycles CPU requirements as a percentage of a Front End Server or A/V Conferencing Server** Memory requirements Network bandwidth

40

672

3.6%

0.03 GB

18.19 Mbps

80

1288

6.9%

0.03 GB

29.86 Mbps

120

1,792

9.6%

0.03 GB

50.39 Mbps

160

2,277

12.2%

0.03 GB

63.04 Mbps

200

3,023

16.2

0.03 GB

80.00 Mbps

* The number of video conferencing users can usually be determined as a percentage of the audio conferencing users. The Lync Server 2010 user model assumes that 20% of audio conferences include video conferencing. You can adjust this percentage to match your own organization’s users, to determine what number of concurrent video conferencing users you will have.

** Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

  • Test server CPU% cost = (number of concurrent video conferencing users) * 0.07625

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = 0.03

  • Required network in Mbps = (number of concurrent video conferencing users * 0.3925) + 1.25

Enterprise Voice, UC-UC Calls

This table shows the resource usage for the unified communications to unified communications (UC-UC) calls using Enterprise Voice.

Number of concurrent calls* CPU requirements in megacycles CPU requirements as a percentage of a Front End Server ** Memory requirements Network bandwidth

200

499

2.67%

1.36 GB

2.80 Mbps

400

721

3.86%

1.6 GB

5.04 Mbps

600

974

5.22%

1.75 GB

7.57 Mbps

800

1,212

6.5%

1.95 GB

9.85 Mbps

1000

1,458

7.8%

2.11 GB

12.16 Mbps

* The Lync Server 2010 user model assumes four calls per user per hour and an average call duration of three minutes. This four calls per hour in the user model includes both UC-UC calls and UC-PSTN calls. You can get the most accurate numbers if you know what percentage of your users’ Enterprise Voice calls are UC-UC and what percentage are UC-PSTN. The user model assumes that 60% of calls are UC-PSTN, and 40% are UC-UC. In the following calculations you can use your actual numbers for calls per hour and duration, if they differ.

** Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

From these test results, we use trend analysis to yield the following guidelines:

  • Number of concurrent calls = number of users * average UC-UC calls per user per hour * duration in minutes / 60

  • Test server CPU% cost = (number of concurrent calls * 0.007)

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = (0.00093 * number of concurrent calls) + 1.19

  • Required network in Mbps = (number of concurrent calls * 0.01175) + 0.43

Enterprise Voice, UC-PSTN Calls

This table shows the resource usage for the unified communications to PSTN (UC-PSTN) calls using Enterprise Voice.

Number of concurrent calls* CPU requirements in megacycles CPU requirements as a percentage of a Front End Server** Memory requirements Network bandwidth

200

1,456

7.8%

0.28 GB

19.56 Mbps

400

3,789

20.3%

0.43 GB

38.65 Mbps

600

5,226

28%

0.6 GB

57.52 Mbps

800

6,924

37.1%

0.77 GB

76.52 Mbps

1000

8,455

45.3%

0.89 GB

95.39 Mbps

* The Lync Server 2010 user model assumes four calls per user per hour, and an average call duration of three minutes. The four calls per hour in the user model include both UC-UC calls and UC-PSTN calls. You can get the most accurate numbers if you know what percentage of your users’ Enterprise Voice calls are UC-UC and what percentage are UC-PSTN. The user model assumes that 60% of calls are UC-PSTN, and 40% are UC-UC. In the following calculations you can use your actual numbers for calls per hour and duration, if they differ.

** Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

From these test results, we use trend analysis to yield the following guidelines:

  • Number of concurrent calls = number of users * average UC-PSTN calls per user per hour * duration in minutes / 60

  • Test server CPU% cost = (number of concurrent calls * 0.007) + (0.0918 * (1-% calls that use media bypass) * number of concurrent calls)

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = (0.00156 * number of concurrent calls) + 0.126

  • Required network in Mbps = (number of concurrent calls * 0.19) * (1 minus % of calls that use media bypass)

Response Group Service

This table shows the resource usage of Lync Server Response Group service.

Note that Response Group does not support more than 1200 agents per pool.

Number of concurrent Response Group calls CPU requirements in megacycles CPU requirements as a percentage of a Front End Server* Memory requirements Network bandwidth

50

1,680

9%

1.2 GB

0.245 Mbps

60

1,680

9%

1.3 GB

0.315 Mbps

70

1,866

10%

1.3 GB

0.355 Mbps

80

2,053

11%

1.3 GB

0.40 Mbps

90

2,240

12%

1.4 GB

0.46 Mbps

** Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

From these test results, we use trend analysis to yield the following guidelines:

  • Test server CPU% cost = (number of concurrent Response Group calls * 0.0192) + 7.48

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = (0.0008 * number of concurrent Response Group calls) + 1.18

  • Required network in Mbps = number of concurrent calls * 0.005

Call Park Service

This table shows the resource usage of Lync Server Call Park service.

Number of concurrent calls CPU requirements in megacycles CPU requirements as a percentage of a Front End Server* Memory requirements Network bandwidth

1

186

1%

0.130 GB

0.100 Mbps

25

186

1%

0.165 GB

0.280 Mbps

50

373

2%

0.200 GB

0.550 Mbps

75

560

3%

0.235 GB

0.780 Mbps

100

746

4%

0.270 GB

1.00 Mbps

** Based on the Lync Server baseline processor with eight cores, each with 2,333 megacycles.

From these test results, we use trend analysis to yield the following guidelines:

  • Test server CPU% cost = (number of concurrent calls * 0.04) + 0.055

    Megacycles needed = (Test server CPU% cost/100) * 2333 * 8

  • Required memory in GB = ((1.4 * number of concurrent calls) + 1.18) / 1000

  • Required network in Mbps = (number of concurrent calls * 0.00956) + 0.055

Adjusting For Your Processors

All the CPU % performance costs in this section assume a base line of each server having a dual processor, quad-core, with 2.33 GHz. This yields 2,333 megacycles per second per processor core, or 18,664 megacycles per second per server.

If your servers have different processors, you can adjust the figures to your hardware.

The SPECint processor benchmark for the processors used in these tests is 186 total for the eight cores, or 23.25 per core. To calculate the equivalent processor cycles for your servers, do the following:

  1. Use a web browser to open www.spec.org.

  2. Pass the mouse cursor over Results, then CPU2006, and then click CPU2006 Results.

  3. In Available Configurations, select SPECint2006 Rates and click Go.

  4. In the Simple Request area, select search criteria that will help you find your processor, and then click Execute Simple Fetch.

  5. Find the server and processor you have deployed, and look at the number in the Result column.

  6. Dividing this value by the number of cores in the server gives you the per-core value. For example, if the Result number is 240 on an eight-core server, the per-core value is 30.

  7. Use the following formula to determine the per-core megacycles for the server:

    (Your processor's per-core value) X 2,333 / 23.25

  8. Multiply the result by the number of cores in the server, and you have the total number of megacycles per server. This compares to the 18,664 megacycles for the baseline server used to produce the numbers in the previous sections of this topic.

Example of Calculating Needed Resources

The following example shows how you can calculate your resource needs if your organization’s use of Lync Server 2010 differs from that in the Lync Server 2010 User Models. In this example, the organization’s use is significantly higher than in the user model.

  • 30,000 users, 100% use Enterprise Voice (instead of 50% of users being voice-enabled, as in the user model). Mediation Server is collocated with Front End Server. 75% of UC-PSTN calls use media bypass.

  • An average of 7.5% of users are concurrently in conferences (instead of the 5% in the user model), giving us 2250 concurrent users in conferences.

  • Other conferencing uses follow the Lync Server 2010 user model.

  • Enterprise Voice usage is heavier than in the user model, with a busy hour average of five calls per hour lasting an average of 3 minutes (the user model is four calls per hour at busy hour). Following the user model, three of those five calls will be UC-PSTN, and two will be UC-UC.

We calculate our CPU needs for the Front End Server as follows:

Front End Server workload Test server CPU% cost Megacycles needed

Base IM and Presence

30,000 users * 0.001 = 30

(30/100) * 2,333 * 8 = 5,599

Address Book Web Query

(30,000 users * 0.0004) + 2 = 14

(14/100) * 2,333 * 8 = 2,613

Group IM (50% of conferences use group IM)

(1125 users * 0.001) + 2 = 3.125

(3.125/100) * 2,333 * 8 = 583

Web conferencing (75% of all conferences include web conferencing, and 20% of those conferences include group IM)

(337 users * 0.01) + 1.5 = 4.87

(4.87/100) * 2,333 * 8 = 909

PSTN conferencing (15% of conference attendees dial in from PSTN phones)

(338 users * 0.033) + (338 users * 0.0918) = 42.18

(42.18/100) * 2,333 * 8 = 7,872

Application sharing (75% of all conferences include web conferencing, and 50% of those conferences use application sharing)

(843 users * 0.071) + 2.5 = 62.353

(62.353/100) * 2,333 * 8 = 11,638

Enterprise Voice, UC-UC calls

30,000 users * 2 calls * 3 minutes / 60 = 5000 concurrent calls

5000 calls * .007 = 35

(35/100) * 2,333 * 8 = 6,532

Enterprise Voice, UC-PSTN calls

30,000 users * 3 calls * 3 minutes / 60 = 4500 concurrent calls

(4500 calls * .007) + (4500 calls * 0.0918 * (1 - .8)) = 114.12

(114.12/100) * 2,333 * 8 = 21,299

57,045 total megacycles needed on Front End Servers.

On the Front End Servers, the total CPU requirement for our heavily-used deployment is 57,045 megacycles. For this example, suppose we are deploying servers with a SPECInt result of 258 for 8 cores, which averages out to 32.25 per core. Using the calculations in the previous section, we see that these servers have 25,888 megacycles each.

To determine the number of these servers we need, divide the number of needed megacycles (57,045) by the number of megacycles per server (25,888 in this example). Then divide this result by .7, to ensure that each server runs at no more than 70% of CPU capacity. Take this final result and round it up to the next whole number. In this example,

(57,045/25,888)/0.7) = 3.15

We need four of these servers. The four servers provide us with a total of 103,552 megacycles, and 57,045 is about 55% of that, so our four servers should be running at 55% of CPU capacity at peak times.

The following table and calculations determine our the A/V Conferencing Server needs in the example scenario.

A/V Conferencing Server workload CPU cost Megacycles needed

Audio conferencing (75% of conferences include Enterprise Voice)

1688 users * 0.062 = 104.625

(104.625/100) * 2,333 * 8 = 19,527

Video Conferencing (75% of all conferences include web conferencing, and 20% of these conferences include video)

338 users * 0.07625 = 25.77

(25.77/100) * 2,333 * 8 = 4,810

24,337 total megacycles needed on A/V Conferencing Servers.

We can deploy two of our servers, at 25,888 cycles each, and run A/V Conferencing Server at about 47% CPU on each.

You can perform similar calculations for the memory and network bandwidth needed for your projected workload as well. For workloads or scenarios in which you think your organization has typical usage patterns, refer to Lync Server 2010 User Models to see the user models tested by Microsoft