58
Lync Stress Test How too Setup and Configure © 2014, Thomas Pött, Microsoft MVP Lync

Lync stress test guide v2.0 (ebook)

Embed Size (px)

DESCRIPTION

The technical level of this document is 300. This article requires knowledge about Microsoft Performance Monitor, Lync Monitoring, Hardware SPEC’s and Consulting. Building the Test User Scenario, requires full understand of each Lync feature and how user will utilize those feature. Please also carefully understand the Lync PSTN Gateway Simulator. The Simulator must be provide with correct Dial-Plans, Voice Policy and Voice Routes. You also need to understand the Lync User Provisioning Tool and how to design the Stress Test Scenarios. Note: This document is neither a sizing nor a configuration guide. You should use this document only for your environment planning’s purposes and security considerations. In lager environments you should spend some time to evaluate the optimal path of your Lync deployment. Table of Content: Introduction 4 The Calculation Process (I can recommend to you): 6 Build the Stress Test Lab 7 The Stress Test Process: 9 The Validation Process: 11 User Provisioning Tool 12 Setup User Provisioning Tool 13 User Creation 13 Contacts Creation 14 Distribution List Creation 15 Location Info Service Config 16 Run Configuration Scripts 18 Stress Test Simulations 20 User Profile Generator 20 Common Configuration 21 General Scenario 23 Voice Scenario 34 Reach Scenario 49 Mobility Scenario 52 Summary (Important User Load definition) 54 Table of Figures 58 Author: Thomas Poett MVP, Managing Consultant Microsoft Unified Communication

Citation preview

Page 1: Lync stress test guide v2.0 (ebook)

Lync Stress Test

How too Setup and Configure

© 2014, Thomas Pött, Microsoft MVP Lync

Page 2: Lync stress test guide v2.0 (ebook)

Lync Stress Test – How Too, Setup and Configuration

© 28.06.2014, Thomas Pött, Microsoft MVP Lync and PLSL 3rd level

Support certified.

Version 2.0

Introduction ............................................................................................................................................. 4

The Calculation Process (I can recommend to you): ............................................................................... 6

Build the Stress Test Lab .................................................................................................................................... 7

The Stress Test Process: .......................................................................................................................... 9

The Validation Process: ......................................................................................................................... 11

User Provisioning Tool ........................................................................................................................... 12

Setup User Provisioning Tool ........................................................................................................................... 13

User Creation ............................................................................................................................................... 13

Contacts Creation ........................................................................................................................................ 14

Distribution List Creation ............................................................................................................................. 15

Location Info Service Config ........................................................................................................................ 16

Run Configuration Scripts ................................................................................................................................. 18

Stress Test Simulations .......................................................................................................................... 20

User Profile Generator ..................................................................................................................................... 20

Common Configuration ............................................................................................................................... 21

General Scenario ......................................................................................................................................... 23

Voice Scenario ............................................................................................................................................. 34

Reach Scenario ............................................................................................................................................ 49

Mobility Scenario ......................................................................................................................................... 52

Summary (Important User Load definition) ................................................................................................ 54

Table of Figures ........................................................................................................................................... 58

Page 3: Lync stress test guide v2.0 (ebook)

The technical level of this document is 300. This article requires knowledge about Microsoft Performance Monitor, Lync Monitoring, Hardware SPEC’s and Consulting.

Building the Test User Scenario, requires full understand of each Lync feature and how user will utilize those feature. Please also carefully understand the Lync PSTN Gateway Simulator. The Simulator must be provide with correct Dial-Plans, Voice Policy and Voice Routes.

You also need to understand the Lync User Provisioning Tool and how to design the Stress Test Scenarios.

Note: This document is neither a sizing nor a configuration guide. You should use this document only for your environment planning’s purposes and security considerations. In lager environments you should spend some time to evaluate the optimal path of your Lync deployment.

Author: Thomas Poett MVP, Managing Consultant Microsoft Unified Communication

Support and consultancy services:

I’m able to provide you with the services required for stress test and the necessary analysis. If you like to get this

support, please login to my blog: http://lyncuc.blogspot.com and use the contact form provided on the right side

of my blog.

Page 4: Lync stress test guide v2.0 (ebook)

Introduction

Since Microsoft released Lync Server 2013, there was one change in the planning document.

No detailed SPECs were released so you could exactly calculate your server performance

requirements.

Truly, there is the performance calculation sheet which provides you with a rough overview.

For this entire process you need the following tools and documents:

Lync Server 2013 Capacity Calculator Lync Server 2013 Stress Testing Guide Lync Server 2013 Stress and Performance Tool Key Health Indicators: The Foundation for Maintaining Healthy Lync Servers Planning a Lync Server 2013 Deployment on Virtual Servers Lync Call Quality Methodology poster Lync KHI Poster Lync Server Networking Guide V2.2

I provide you with the minimum set of Lync KHI Performance Counter: Download here

Note:

The XML I have provide contains a consolidated Lync Frontend installation entirely on drive C: with 6 CPU core. If you have another setup, please add more CPU counter and if the SQL Server is installed on drive D:, please also add the I/O counters for this drive too.

But generally the server hardware requirements are physically and virtually the same:

Front End, Back End, Standard Edition, pChat - Server

Component Minimum requirements

CPU 2x64 bit CPU with 6 Core (also if virtualized)

Memory 32 GB

Disk 2x RAID 1 min. 72GB1[1] free space

6x RAID 10 for SQL databases

Network 1x Dual-Port network card with min. 1GBit/Sec

If teaming is activated, unique MAC address must be used

1[1] It is required having at least 20GB free disk space after installation, else it might have a serious impact during update and CU installations, this is related to the local SQL database copies.

Page 5: Lync stress test guide v2.0 (ebook)

Edge, Standalone Mediation – Server and Director, Office Web Apps

Component Minimum requirements

CPU 64 bit CPU and min. 4 Core (also if virtualized)

Memory 16 GB

Disk Mind. RAID 6 Performance with min. 72GB free space

Network 1x Dual-Port network card with min. 1GBit/Sec

If teaming is activated, unique MAC address must be used

This general definition for your hardware is simply not enough if you design your environment. There are some questions you need to answer to your customers:

- how can I guarantee the hardware performance on virtual environments - how does Lync impact our SAN - if we don't utilize the max user, how and can I reduce CPU's and RAM, or even the SQL Disk I/O's

Here you stand as consultant and don't know what to say.

E.g. the supportability matrix give you a clear answer, design the server as provided in the requirement document.

So, say you have 3 Frontend servers as recommended for High Availability (HA), but you only run 1.000 users.

This would be a complicated answers, since you simply cannot know the answer, as it was possible with Lync 2010, since you had more information how to calculate.

Page 6: Lync stress test guide v2.0 (ebook)

The Calculation Process (I can recommend to you):

Lync server load highly depends on the user profile!

Talk to your customer and figure out what is the main purpose and how in the past users utilized Voice (PSTN and PBX)

Analyze the Video utilization, also and especially the AppSharing (this is video data too)

Start using the Lync Server 2013 Capacity Calculator.

With the results popping up you need to reverse engineer the capacity needed on your servers.

Finally you found some SPEC's, but you need (better say: MUST) validate them if you are not using the exact SPEC provided in the tables above.

Just to remember, a Mediation Server handles up to 600 concurrent call. If you have designed a poll of Mediation Server, ensure if one fails or has to be updated, the left Mediation Server can support the amount of call you have calculated.

While you run your test, there are two more things you MUST put into consideration.

1. HA – Server Failure/ Downtime 2. Backup Pools (Disaster Recovery) and Voice Resiliency and Survival Branch Appliances

What does this mean?

If a Server in a Pool either the Frontend or a Mediation Server goes down, you need to ensure the left server can support the load. So with your Stress Test Scenario, please only run the server count you have defined for any other server down time. Saying you have pool designed with 3 Frontend server, the test should only run on 2 Frontend Server.

The same is valid if you have a DR scenario, e.g. a Backup Pool, where on each Pool 5.000 user are concurrently running. You test scenarios must then be able to support concurrently 10.000 users. This is due to an estimated pool failure, where all user are served on this last running systems.

Page 7: Lync stress test guide v2.0 (ebook)

Build the Stress Test Lab

Microsoft provides a very good and detailed description of their test environment setup.

What I like to repeat in this chapter it the generic principals, so you get close the common

understanding of how the test should be applied.

Regardless how many pools or SBA you have in your environment, you can only test a single

pool with the standard procedure. If you need to test more, you need to do some

modification to all test files and profiles you generate. Defining the range of users and stress

test clients assign to each of the pools.

Coming back to my test setup.

I define single Edge Pool incl 2 Servers, single Frontend Pool with 3xFE incl Mediation Server.

1x external and 2x internal Stress Test Client.

External Client

PSTN Simulator

InternalClient

Figure 1: Stress Test illustration

Page 8: Lync stress test guide v2.0 (ebook)

In a virtual environment, I ensure the Stress Test Client cannot run on the same physical host

and storage as the Lync servers do.

Additionally we ensure the physical host running the stress test components, is capable of

delivering the power necessary stressing the “real” environment.

For better illustration, please refer the picture below.

External Client

PSTN Simulator

InternalClient

Hyper-V

Figure 2: Virtual Stress Test Machine placing

Page 9: Lync stress test guide v2.0 (ebook)

The Stress Test Process:

Please use the Stress Test Guide from Microsoft and setup the environment in a Test Lab first. It simple even on physical, as well as on virtual environment.

Some recommendations from my experiences:

1. The Stress Client SPEC's are not sufficient as Microsoft wrote, please use here more CPU's, at least the double amount. 2. Split the Test across 3 Stress Clients, Stress Test Client 1: All IM, APPClients and Conferences Stress Test Client 2: all Reach Client features Stress Test Client 3: all PSTN functions (PSTN Gateway Simulator), here you might need more clients, since the PSTN Simulator can only provide one (1) gateway on a PC (Maybe so need more clients than listed here!) 3. Run a Pre-Test, where you closely monitor you client performances, especially the CPU after the so call RAMP UP TIME 4. Check if information are written to the Lync Monitoring Database (validate the reports) 5. Re-balance some of you Test Scenarios and run the Step 3 again if necessary 6. Start the Main Stress Test now

Now it's time for the core test itself. Ensure you either monitor the KHI on a dedicated machine or on the Lync server themselves. Please do NOT use any of the Stress Test Clients! I have provided you with the Performance Monitor Data Collection. Make sure you see some results during Step 3.

Figure 3: KHI for Stress Test

Page 10: Lync stress test guide v2.0 (ebook)

If you should require more data, well Microsoft has the CQM (Call Quality Monitoring). Here are all Performance Counter defined MSFT and we as certified Support Partner use for the initial RaaS services. So if you need to validate really everything. Please download the entire ZIP and install them.

Figure 4: All KHI based on RaaS

Page 11: Lync stress test guide v2.0 (ebook)

The Validation Process:

Now you have all results necessary to write your report and even see you underestimated the server load ;)

Get the Performance Data and see if any of the counters above did jump above some of the provided counters for a longer periods of time or if any of those counters jump more frequently above the thresholds.

The go to the Lync Monitoring Reporting and validate all Failure Reports (related to the test you have ran).

I also recommend checking the Lync Server Eventlogs.

With the collection and analysis of all data write your own validation paper to the customer.

NOTE: If you need help, don't hesitate asking me for help, I can provide you professional service and do the write-up for you.

Use the contact app on the right side of my blog.

Page 12: Lync stress test guide v2.0 (ebook)

User Provisioning Tool

Before we can start planning and configuring the entire Stress Test, we need USERs and

CONTACTs ready for Lync. Since this is task we can also automate, not only via any manual

script, Microsoft proved the User Provisioning Tool.

The tool could be found here:

C:\Program Files\Microsoft Lync Server

2013\LyncStressAndPerfTool\LyncStress\UserProvisioningTool.exe

Figure 5: UserProvisioningTool - Location

INFO:

Best is, if you start the TOOL as administrator.

The UPT provides 4 sections where we can configure all possible user involvement and

object necessary for a real Lync environment.

The possible objects are:

User

Contacts

Distribution Lists

Location Information Service (LIS)

While the count of users should be mostly close the expected Lync activated users you

environment should support, plus the estimated number of growth. The contact are

different from AD or Exchange contact. In content with Lync, contact are the Lync Buddies,

so how many UC enabled buddies you will estimate each Lync enabled user might have. Even

here you have different type of user in Lync utilizing the contact list in different ways. SO you

need to figure out the average! The rest I explain in each of its associated section later in this

documents.

All of those 4 option can be run individually, meaning, you can start running the scripts

behind after you configured all properties in each individual section.

Note:

If you need to redeploy Lync user, please use the delete button and don’t do so manually. It

here much faster and more reliable.

Page 13: Lync stress test guide v2.0 (ebook)

Setup User Provisioning Tool

This section guides you through the entire creation process with all possible options.

If there are e.g. phone number or similar, I urge you not changing those numbers. Since this

is a mostly complex and predefined scenario and you want to validate the max load on your

servers, it is not made validating your Topology configuration. In other words, if you leave

the most parameter untouched, you will encounter less issues during the test setup.

User Creation

Users are the AD users, activated for Lync, with all possible feature, meaning including

Enterprise Voice, if you enabled them here.

If you do not enable user for EV, you are unable running the PSTN/ Voice tests.

The illustration below shows you all possible option for your user creation. You will also see,

if you have an environment with multiple POOLs and or SBA’s, the tool is NOT designed

validating all of your setup at the same time. If you need to do so, you must create multiple

users configuration and run multiple test scenarios! Keep this in mind.

Also if you run multiple target instances, please use different UserNamePrefixes and

PhoneAreCode. (As you now understand, this scenario I much complex and will not really

deliver you any better result)

The Number of Users should match the initial real user count + the expected customer

growth. With the Start Index, I recommend starting NOT with “0”, better e.g. you have

20.000 test user, and start set the Start Index to: “10000”, so the user are proper numbered,

e.g. TestUSR10000-TestUSR20000 and they are in order.

Figure 6: UserProvisioningTool – User Creation

Page 14: Lync stress test guide v2.0 (ebook)

Contacts Creation

Here you will beat two flies with one slap. The users buddy list and the federated users/

cross pool contacts. What does this mean?

Federation is still clear I guess, so users with are NOT homed with in your Lync environment.

But Cross Pool User?

Well this is so clearly described, but meaning you could add users to your buddy list either

looking external or you have simple configured users on an additional pool you have setup.

Example:

You second pool you have is: cie-lyncpoolfed.cie.int and you have used the tool

before, creating user on this pool but with another, secondary SIP domain:

federation.internal (DNS). Than within you contact list also user will be found

hosted on the other pool. But you need to set the Percentage number box, e.g. to 10% or

similar.

What does the “Fixed” checkbox mean? Here you can either generate contact list (buddies)

with have for all users the exact same count of contact, or you can let the tool allow

variations. So here it is recommended to uncheck this box.

As we have all seen with our own Lync client, we can define groups within the Lync client,

this option is meant with Groups per User. So I suggest 5 is good value.

Figure 7: UserProvisioningTool – Contact Creation

Page 15: Lync stress test guide v2.0 (ebook)

Distribution List Creation

In Active Directory we can and should define groups (Distribution Groups). Those groups are

used to invite a bunch of user into conferences. Therefore it is a necessary test for the

Distribution Groups Expansion Service!

Figure out a balance scenario coming close to the real environment at your customer.

Figure 8: UserProvisioningTool – Distribution List Creation

Page 16: Lync stress test guide v2.0 (ebook)

Location Info Service Config

In this section, I don’t want to explain how the LIS is working in Lync.

Please refer to my blog:

http://lyncuc.blogspot.de/2012/07/location-information-service-lis-lync.html

This article provide the necessary information how this will work.

Here and I mostly recommend LIS, not only for E.911, but also for automatic identification of

user locations. This is very helpful, if you are aware where the user is right now, even e.g. in

which Wifi area.

The LIS has to be configured in Lync and this tool is NOT doing it for your, rather it provides

you with necessary configuration batches.

In this demo setup for LIS, I provide you a quick inside view of all write config files.

Figure 9: UserProvisioningTool – LIS Configuration

Page 17: Lync stress test guide v2.0 (ebook)

After you started the file generation process, if prompts you where to find those files:

Figure 10: UserProvisioningTool – Setup file for LIS

Here they are:

Figure 11: UserProvisioningTool – List configuration files

Now you must start the configuration process with in Lync:

You will find a script which is supporting you for this process:

LisConfiguration.ps1

Figure 12: UserProvisioningTool – Lync script for LIS

Note:

Copy all files and the script onto your Lync Frontend Server or any Workstation, where the

Lync Admin Tools are installed. The script will pick up the generate CSV files within its own

directory, so please care her.

Page 18: Lync stress test guide v2.0 (ebook)

Run Configuration Scripts

The good point with the Stress Test setup is, that Microsoft really provided a lot of useful

tools and script helping you to setup and prepare Lync for all required configurations.

In this chapter, I will to provide a simple inside view off those script and when, where or how

to use them.

Just remember, no everything is made for dummy users, so you should fully understand

what’s going on your Lync infrastructure. This is even one point, the Stress Test Client should

NOT have any Lync component installed, and therefore you should also copy the scripts and

their associated files to a computer where the Lync Admin Tool are installed. This includes

the WMA files too!

Location: “C:\Program Files\Microsoft Lync Server

2013\LyncStressAndPerfTool\Doc”

NOTE: (Microsoft wrote the following)

# The following script is an example of configuring Lync 2013 Server for running Lync 2013

Load Simulation. The script needs to be modified to match the actual parameters of the Lync

2013 Deployment. The example is not intended as an example of all the features of the

component rather an example of how Lync 2013 Server can be configured to run Lync 2013

Server Stress and Performance Tool for a specific component.

SCRIPT Description

ArchivingPolicy.ps1 Set the time for Archiving and CDR data to be purged after 3 and 7 days. Necessary not leaving more data than necessary in your backend database

BandwidthPolicy.ps1 Only enable the bandwidth policy within Lync. You need to actually write/ configure bandwidth policy first before this script take any action

CallParkConfiguration.ps1 The CPO needs to be activate, if the CPO should be tested during the stress test. This script delete all existing configuration and replace the orbit with call park number 1000-1500

ConferenceAutoAttendant Configuration.ps1

A huge configuration will take place here: Anonymous participant can join conferences and the Global Dial Plan will be set to the Dialin Conferencing Region “US West Cost” and a CAA with -LineUri tel:+11121111111

ContactsPolicy.ps1 Change the contact list maximum to 1.000

FederationPolicy.ps1 Activate Anonymous user access, remote access and federated access, as well as you need manually change: New-CSAllowedDomain -Domain "alloweddomain.com" -ProxyFqdn "edgeproxy.mycload.ag" -MarkForMonitoring 0

LisConfiguration.ps1 I described this more detailed in the LIS chapter of this document

MeetingPolicy.ps1 Set’s mostly all meeting configuration parameter to $TRUE

ResponseGroup Conifguration.ps1

Either you setup the RSG manually or you need to modify this script carefully according the UserProvisioningTool. You need to know your USER Prefix, RGSGroup Name.

Page 19: Lync stress test guide v2.0 (ebook)

Note: You might need running this script a few times before you got it right. So careful and understand your RGS requirements first!

RoutingGroupRules.ps1 Please read the chapter: VOICE SCENARIO I have explained in very detail how this is working. And it is complex!

Note:

As you see the script change massively the Lync configuration. If you do this in live

environment, please be aware you would need reset the configuration after a test.

So better NOT using your “Live Environment”.

Page 20: Lync stress test guide v2.0 (ebook)

Stress Test Simulations

The stress test itself will be initiated with support of the generated scenarios I’ll describe in

this chapter.

Every individual test (load) can be run on a separate entity (PC). All those have to be load

with the LyncPerfTool.exe.

As I don’t want to rewrite the Microsoft guide provided, I more focus on the individual stress

tests themselves. Please read the Lync Stress 2013 Test Guide.docx

NOTE:

First take you time, adjust the max Client Port with the provided Reg-Import Script. This is

how you can control that no TCP limits are preventing you from physically generate the

expected load to the Lync Server/Pool. MaxUserPorts.reg

User Profile Generator

After you have generated the Test User and Contact Account, we will define the entire Test

Scenarios and their configuration files.

You should write a test plan in a form of, which feature and with which intensity you want to

test/ stress the Lync environment. Remember, but it should be at least stress the system

with the same performance you expect from your former calculations.

Therefor the UserProfileGenerator will let us chose and define those tests. It has the

possibility to use “predefined” test loads or even make it available for yourself to define the

exact test behavior.

Page 21: Lync stress test guide v2.0 (ebook)

Common Configuration

You will be logically guide through the entire setup, starting with the environment

information, e.g. user prefix, password and Lync server.

Beside this information, the first parameter defines the number of test clients used. The

minimum is 2 client. What this parameter is doing, is quite simple, it separated the Run

Batch Files into parts which can then be copied to the stress test client.

Since you are also able running the test and manually, you can chose by yourself which client

should run which test, when and where. But keep in mind, the important Test is the IM, so

the clients/ users are login.

Figure 13: Load Configuration Tool – Common Configuration

Page 22: Lync stress test guide v2.0 (ebook)

As you have defined the user prefix number (start range), you can define which user should

participate in this stress test, therefor the Start Index and the Number of User need to be

provided. Saying, you started the provisioning tool with TestUSR10000-TestUSR30000, you

can run the test e.g. in this range: TestUSR10000-TestUSR20000. The parameter you

need to provide is User Start Index:10000 and Number of Users:10000

Important parameter MPOP:

As we analyzed before, users can login with e.g. Desk Phones, Mobile Phones, Lync Client

and more other devices. Here you must first go back to your initial calculation and have a

look into your calculations, where you defined the estimated concurrent user logon.

Sign-In Per Second:

This parameter is for advanced adjustments. Each instance (an instance is the activated

Stress Test component) will generate login requests, those frequency can be change to a

higher one. Be careful with this parameter, since it can change the out coming result

dramatically.

External Edge Server Testing: The test should be as authentic as possible. But how to archive this. It is necessary simulating access

via the edge server too. This is why you find the External Network Server Settings. As described in

Microsoft guide, you see Stress Test Client positioned outside, meaning close by the Edge Server. As

the tool need the access component given for login, you will and have to do so here.

Page 23: Lync stress test guide v2.0 (ebook)

General Scenario

Starting first, we run through the non-Enterprise Voice test scenarios. Those are differentiate

into the following Test Scenarios. Each of those tests will be provided later with an individual

batch file.

Instant Messaging and Presence

Audio Conferencing

while the title includes “audio”, choosing this option will also simulate Video

conferencing

Application Sharing

Data Collaboration

Distribution List Expansion

Address Book Web Query

Response Group Service

Location Information Services

Figure 14: Load Configuration Tool – General Scenarios

Page 24: Lync stress test guide v2.0 (ebook)

All batches have drop box where you decide how intense the stress test should run (stress

the system. This are preconfigured and associated test along with Microsoft’s idea of

average user profiles.

NOTE:

The Advanced Setting are always the same, regardless if you have set the profile to LOW or

HIGH.

BUT: only some setting will be used if you have set the CUSTOM option. I will highlight

them in BOLD. Else all parameter are active and as they are provided!

The first 4 batches have additional options which I’m going to explain here:

External:

This check box, creates a batch file which is associated with the

Edge server configuration and can therefore be used on the “external” test client.

Conf:

This is a specialty for IM only. As we know IM is similar with P2P (well don’t get me wrong, it

still must utilize the Frontend server). As IM Conference must use the IMMCU which require

the communication path to be change and escalated into a conference.

Adhoc:

With the Test Utility, conference are planned, meaning you have Meeting ID assigned and

that’s use for login purposes. The AdHoc is different, user are here instantly invited.

Large Conf:

Microsoft officially said large conference are bigger than 249 participants. This check box will

initiate those meeting type with exact 250 user at the same time.

While the last batch (LIS) can only be activated or not. As usual with the LIS server, either

you will make use of this service or you leave it un-configured.

Now it’s time doing the interesting stuff. We have configured the initial task setup and will

now need managing the core services.

Advanced TAP:

Important note and what to remember. The Advanced Tap let you do the “fine” tuning of all

tests under the circumstances of the option: CUSTOM. One behavior of the Load

Configuration Tool is not so obvious, so you need to get used to this. The Advance Tap

comes FIRST with the initial service (test) setup parameter, than, depending on the

additional option you have chosen, e.g. External, Conf, Adhoc or Large Conf, with additional

Page 25: Lync stress test guide v2.0 (ebook)

TAP’s, after you pressed the CLOSE BUTTON. Those Tap are not easy recognizable.

I try to put a little light on this in each section.

Instant Messaging and Presence

Upfront, Instant Messaging has two interesting aspect. Beside the IM feature, it also initiate

client logon’s. You can see this if you run the netstat –ano command on the Lync

Frontend server while you start this task.

Advanced (IM) Parameter:

Tag Value Comment

TwoPartyConversationPercentage 100 How many P2P conversation are created. Leave this to 100%, so all user are involved

ConversationsPerHour 1 Per user IM conversation per hour

InviteUsersInContactList False If the client will only invite user from the contact list

ConversationLengthInSec 600 Default of 10min per conversation (IM or conference)

IMMessagesSentPerMinute 0.5 Message per minute (best option is 1)

ParticipantJoinTimeInSecond 300 the max time a user joins a conference is 5min after beginning

EnableGetPresence True Leave $true, so the client request presence pools

EnableSubscriptionForAllContacts True Send SUBSCRIP command to all contact list members (higher initial server load)

GetPresenceCallPerHour 60 Active presence poll per hour

ChangePersencePerHour 4 The user change the its presence per hour (normally 5-6) due to calls and manual changes

ChangePresenceUserStatePercentage 13 The max % of user changing the presence (better set to 50-60%)

GetPresenceTargetLow 4 Min send presence too

GetPresenceTargetHigh 8 Max send presence too

GetPresenceTargetCacheSize 50 Caching the presence status

GetPresenceTargetBatchSIze 1000 How many state to be cached

EnableChangePresence True If presence can be change through the test client (as impact to other presence configs)

ChangeCalendarStatePerUserPerDay 6 Estimated appointments in a outlook calendar

PublishCalendarDatePerUserPerDay 3 Update information based on outlook information

EnableShortSubscriptions2 True

ShortSubscriptionsPerHourPerUser 4

ShortSubscriptionsTargetLow 1

ShortSubscriptionsTargetHigh 5

ShortSubscriptionAverageTimeInSec 550

2 If its left empty: I could not figure out its function

Page 26: Lync stress test guide v2.0 (ebook)

AddDeleteContactPerUserPerDay 0 If test client actively change the contact list,

External Parameter

Tag Value Comment

TwoPartyConversationPercentage 90 If an external test client is available, validating the P2P IM session via EDGE server

Conf Parameter

Tag Value Comment

StaticConferencePercentage 80 Static conference: is where users join directly into different conferencing (IDs)

LobbyConferencePercentage 0 The presenter must apply person in the lobby (possible say 10-20%) depending on the customer behavior

LobbyTimeoutInSec 300 Person is kicked out of the lobby

LobbyParticipantToAdminPercentage 80 How many person may have to wait in the lobby

ConversationLengthInSec 3600 Max conference length

AdHocConversationCreation True Non planed conference and will start randomly

SmallConferenceSize 3 Number of participants

MediumConferenceSize 5 Number of participants

LargeConferenceSize 9 Number of participants (please do not set lager than 250!)

SmallConferencePercentage 85 How many small conference are initiated among all

MediumConferencePercentage 10 How many medium conference are initiated among all

LargeConferencePercentage 5 How many large conference are initiated among all

Large Conf Parameter

Tag Value Comment

StaticConferencePercentage 0 The meeting ID is always different

ParticipantJoinTimeInSeconds 600 Late join max time in sec.

LargestConferenceSize 250 Max number of a large conference (do not exceed 250)

Page 27: Lync stress test guide v2.0 (ebook)

Audio Conferencing

Advanced (initial) Parameter:

If the text/ explanation provided by the Stress Test Tool is sufficient, I have either copied the content

or left the comment empty.

Tag Value Comment

HardMuteByOrganizer False Participant have mute the mic as per default (presenter enforced)

StaticConferencePercentage 80

EnableMuteUnmute False If any of the mute option is activated, so the presenter will or has muted all

MuteAllByPresenterInSec 60 Sec the presenter will wait before is mutes all participants

LobbyConferencePercentage 25 Specifies the percentage of conferences that will admit users to a lobby, until the user or lobby times out and/or the user is admitted to the conference by the presenter

LobbyTimeoutInSec 300 s.o.

LobbyParticipantToAdmitPercentage 80 s.o.

ConversationsPerHour 1 s.o.

ConversationLengthInSec 3600 s.o.

AdHocConversationCreation True s.o.

ParticipantJoinTimeInSeconds 300 s.o.

SmallConferenceSize 3 s.o.

MultiView False Multi view is the possibility for user joining a conference from multiple endpoint. I would due to bandwidth consumption not allow this

AudioStreamDirection3 Sendrecv With MUTLI-VIEW option enabled only Sending and receiving audio

VideoStreamDirection4 Sendrecv With MUTLI-VIEW option enabled only Sending and receiving video and audio

PanoStreamDirection5 Inactive It simulate RoundTable Cam, and the direction of the video stream

NumberOfVideoChannels 5 How many video channel for sending

MediumConferenceSize 5 Users in medium video conference Don’t set the value too high!

LargeConferenceSize 9 s.o.

SmallConferencePercentage 85 s.o.

MediumConferencePercentage 10 s.o.

LargeConferencePercentage 5 s.o.

3 One of the following = sendonly, recvonly, sendrecv, inactive 4 One of the following = sendonly, recvonly, sendrecv, inactive 5 One of the following = sendonly, recvonly, sendrecv, inactive

Page 28: Lync stress test guide v2.0 (ebook)

External Parameter

NO Parameter

AdHoc Parameter

NO Parameter

Large Conf Parameter

Tag Value Comment

StaticConferencePercentage 0 s.o.

ParticipantJoinTimeInSeconds 600 s.o.

LargestConferenceSize 250 s.o.

Page 29: Lync stress test guide v2.0 (ebook)

Application Sharing

Advanced (ASSharer) Parameter:

Tag Value Comment

DisableAppSharingDecodingForViewers True Depends on (DisplayAppSharingView), Mean of if, if a viewer will not render the AppSharing

StaticConferencePercentage 80 s.o.

LobbyConferencePercentage 25 s.o.

LobbyTimeoutInSec 300 s.o.

LobbyParticipantToAdmitPercentage 80 s.o.

ConversationsPerHour 1 s.o.

DisplayAppSharingView False A bit unclear here. MSFT did wrote a full sentence. Possible it activated the App Sharing view in Lync client windows

ConversationLengthInSec 3600 s.o.

AdHocConversationCreation True s.o.

ParticipantJoinTimeInSeconds 300 s.o.

SmallConferenceSize 3 s.o.

MediumConferenceSize 5 s.o.

LargeConferenceSize 9 s.o.

SmallConferencePercentage 85 s.o.

MediumConferencePercentage 10 s.o.

LargeConferencePercentage 5 s.o.

It is not really clear and traceable how the App Share Decoding is working. I could not figure out what

the stress test client is providing under this two settings. Maybe it’s depending on once sending and

the other receiving capability.

Advanced (ASViewer) Parameter:

Tag Value Comment

DisableAppSharingDecodingForViewers True Same as the ASViewer

DisplayAppSharingView False s.o.

External Parameter

NO Parameter

AdHoc Parameter

NO Parameter

Large Conf Parameter

Tag Value Comment

StaticConferencePercentage 0 s.o.

ParticipantJoinTimeInSeconds 600 s.o.

LargestConferenceSize 250 s.o.

Page 30: Lync stress test guide v2.0 (ebook)

Data Collaboration

Advanced (DataCollab) Parameter:

Tag Value Comment

EnableW15WACSession True You must have an office Web App Server deployed and setup in Lync topology if it’s TRUE, else it uses a legacy approach

IntervalForNextUploadInMinutes 3 User with WAC the PPTX upload provided by the utility

NumberOfTimesPackagesToBeUploaded 1 How often a PPTX will be uploaded

DeleteCollabContentAtEndOfConference True After a conference ended, the content will be deleted

ShowWhiteboardInEverySec 120 Switch to white board with in a data collab, how often will the WB provided in sec

AnnotationsPerMinute 5 Annotation used in data collab and how often per minute

PowerPointPercentage 100 If a data collab is with PPTX or without. Recommended to change to less than 100%

WhiteBoardPercentage 0 If a white board should be included or not. Please increase to 0-5% which is a normal use

StaticConferencePercentage 80 s.o.

LobbyConferencePercentage 25 s.o.

LobbyTimeoutInSec 300 s.o.

LobbyParticipantToAdmitPercentage 80 s.o.

FlipRateInSec 60 How often the presenter will change, so flipping the side of presentation

ConversationsPerHour 1 (custom) data collab per user per hour

ConversationLengthInSec 3600 How long a data collab will be established? Care here about the load on the test client

AdHocConversationCreation True Parameter for randomly establish data collab. Not only planned conversations

ParticipantJoinTimeInSeconds 300 s.o.

SmallConferenceSize 3 s.o.

MediumConferenceSize 5 s.o.

LargeConferenceSize 9 s.o.

SmallConferencePercentage 85 s.o.

MediumConferencePercentage 10 s.o.

LargeConferencePercentage 5 s.o.

External Parameter

NO Parameter

AdHoc Parameter

NO Parameter

Large Conf Parameter

Tag Value Comment

StaticConferencePercentage 0 s.o.

ParticipantJoinTimeInSeconds 600 s.o.

LargestConferenceSize 250 s.o.

Page 31: Lync stress test guide v2.0 (ebook)

Distribution List Expansion

Advanced (DLX) Parameter:

Tag Value Comment

DLXPrefix TestDL The Prefix defined the User Creation Tool for distribution lists

DLXDomain Vdomain.com The domain name the distribution list has, e.g. mycloud.ag

DLXIndexLow 0 The starting number value e.g. 0 you configured with setup tool

DLXIndexHigh 100 The ending number value e.g. 0 you configured with setup tool

DLXCallsPerHour 0.5 How often a user will expand a DL per hour. Mostly is quite seldom

Address Book Web Query

Advanced (ABWQ) Parameter:

Tag Value Comment

ABSQueriesPerHour 11 (custom) how often the user will query the AB

MaxResultNumber 50 How may rows will be send back

SearchAttributeList givenName; displayName; telephoneNumber; homePhone; otherHomePhone; mobile; otherMobile;otherTelephone; ipPhone

In Lync client, the search incl. phone number and names. Here you specify the most common search objectives

ReturnAttributeList givenName; displayName; mail

After a match, ABWQ returns the following parameter

RequestTimeout 100 Before the clients register a time in msec

QueryFromDialPadPercentage 3 In percentage of queries, if a dial pad from an IP phone is used, this is number and letter at the same time

QuerySuffixStartNumber 0 Based on the UPT suffix for search

QuerySuffixEndNumber 80000 Based on the UPT suffix for search – end parameter

QueryByPrefixPercentage 90 %of –like searches, e.g. mike for mike, mikel, mikeus…

NotFoundResultsQueryPercentage 0 If a search should not end in a result. “empty search”

Page 32: Lync stress test guide v2.0 (ebook)

LegacyEndpointsPercentage 0 If you use OSC 2007 R2 clients, that active the search here

ChangeSearchPercentage 27 Searches which simulate client cache updates

ChangeSearchBatchSize 25 Client cache update result line

OldEntryPercentage 25 % of old, existing client cache entries

PhotoSearchPercentage 27 % for photo search, if you us high resolution pic, maybe you increase the % to 45, measuring the network impact

OrganizationSearchPercentage 3 Search which query the entire Org tree

RenewWebTicketPercentage 100 % of WebTicket renewal on each search

EnableABSDownload False Download the corp address book entirely. Leave false

Response Group Service

Advanced (RGSCaller) Parameter:

Tag Value Comment

LocationProfile Redmond Set the location profile for RGS, see the configuration script ps1

RGSUri Sip:[email protected] Set the RGS you have defined in the config scrip ps1

RGSUriSuffixStartIndex 0 The config script based start index of RGS (dialing range)

RGSUriSuffixEndIndex 600 The config script based end index of RGS (dialing range

NumberOfRGSCallsPerHour 3120 (custom) how often the RGS will be called per hour or all callers

AverageCallLengthInSeconds 180 Average length of a RGS call in waiting queue before hang-up

EnableRecording False If recording of RGS call is enabled. This save the recording the clients local PATH careful!

RecordIntervalTimeInSeconds 60 Recording duration if enabled

PercentAnonymousCallsWithIM 50 RGS call with anonymous IM

Page 33: Lync stress test guide v2.0 (ebook)

Location Information Services

Advanced (LIS) Parameter:

Tag Value Comment

EnableMajorEmergencies False If true, huge number of caller will call 911 during an emergency

EnablePersonalEmergencies True During an personal emergency a single person will call 911 only

MinSecondsBetweenMajorEmergency 3600 Simulated time distance between two emergency calls (minimum)

MaxSecondsBetweenMajorEmergency 10800 Simulated time distance between two emergency calls (max.)

MinCallDurationSeconds 120 911 call min duration

MaxCallDurationSeconds 300 911 call max duration

MinSecondsBetweenPersonalEmergency 600 Simulated time distance between two personal emergency calls (minimum)

MaxSecondsBetweenPersonalEmergency 1800 Simulated time distance between two personal emergency calls (max.)

MinPercentCallersInMajorEmergency 5 Min user count of 911 callers during an major emergency

MaxPercentCallersInMajorEmergency 20 Max user count of 911 callers during an major emergency

LisRequeryFrequencySeconds 900 Single user interval for LIS queries

PercentLisQueriesFromUnknownLocation 0 % of queries without result

PercentLisQueriesByMacAddress 20 % of MAC address based LIS queries

EnableSnmpSimulator False Simulate SNMP queries

SnmpSimulatorPort 9990 SNMP simulator port

SnmpAverageResponseTimeInMs 0 SNMP response time in msec

SnmpBadResponsePercentage 0 Malformed SNMP response

SnmpNoResponsePercentage 0 Timeout for responses between queries, where simulator do not answer

Page 34: Lync stress test guide v2.0 (ebook)

Voice Scenario

As we all know, the Enterprise Voice Setup can be complex, especially if you are not familiar

with how voice, voice usage, voice policies and voice routing is working.

This also includes the Dial-Plans.

I will help you setting up the PSTN Simulator.

There are some edge data you need understand.

The PSTN Simulator sends and receives PSTN call, mean of is, it is use the Mediation Server

(component), either consolidated on the Frontend or as a standalone pool. The PSTN

Simulator cannot utilize more than one (1) Mediation Pool.

The load on this Stress Test PC must also be closely monitored.

Setup PSTN Simulator

First, after the Stress Test Tool is installed, we configure the Enterprise Voice Test scenario.

Personally I recommend a test with is closely to the estimated external Calls made.

Figure 15: Load Configuration Tool – Voice Scenarios

You will configure the UC/PSTN Gateway first. Here the best-practice is setting the Level to

CUSTOM. Only with this settings you can control the call volume yourself.

Page 35: Lync stress test guide v2.0 (ebook)

Figure 16: Load Configuration Tool – Voice (PSTN Advanced Options)

This property allows the call volume to be defined. In this example 60 calls be hour are made

in the direction from the PSTN Simulator to the Lync environment (Mediation Server)

The next step now is setting up the Gateway itself.

You need the four parameter:

Component Value

Mediation Server FQDN Cie-lyncpool01.cie.int

Mediation Server Port 50686

PSTN Area Code (502)

PSTN Simulator Port 5068

Setup PSTN Simulator Topology settings

Lync cannot communicate to any gateway if it is not defined in the topology. Next step now

has to be the correct implementation of this gateway in the Lync Topology.

The Stress Test Client need to be assigned a computer name and FQDN, it has to be

registered in DNS.

Than you will start the topology generator and implement the gateway and trunk, as well

you need the Mediation Server listening Port to be set to TCP 5068 too.

6 The Simulator does not support TLS connections, therefor you need to enable the Lync-Gateway communication with TCP. This is TCP Port 5068.

Page 36: Lync stress test guide v2.0 (ebook)

Figure 17: Change the Mediation Server Port to 5068 TCP

Start now with the Gateway, which will after finishing the wizard also establish the

associated trunk.

Figure 18: Change the Mediation Server Port to 5068 TCP

Page 37: Lync stress test guide v2.0 (ebook)

Let the gateway listen to all configured IP addresses. Most probably a single and static IP.

The trunk configuration must now match the TCP configuration necessary.

Figure 19: Trunk setup with TCP and Port 5068

The ready configured simulator has to look like the following illustration before you publish

the topology.

Note:

Generally, you can make use of TLS, but keep in mind, it is not only a high load on the

Frontend server for PSTN calls, also your Stress Test client needs additional CPU cycles.

Therefor check and track your client performance.

Page 38: Lync stress test guide v2.0 (ebook)

Prepare Lync Enterprise Voice Setup

Microsoft provide several PowerShell Script for several test scenarios. One of those scripts is

the Enterprise Voice Setup, named: RoutingRules.ps1. This script is the basis for your

required Lync setup.

Figure 20: RoutingRules.ps1 location

But remember, it must be slightly modified to match the exact setup in your environment.

The following illustrations provide you with a possible, working setup. If you need a different

scenario you should do some real enterprise voice consulting

Figure 21: RoutingRules.ps1 – change the PstnUsage name

Figure 22: RoutingRules.ps1 location – match the change to the Voice Policy

The next step must match the Area Code you configured during the PSTN Simulator gateway

setup. I recommend the (502), so all other recommended parameters elsewhere in the

Stress Test will match their default settings.

Figure 23: RoutingRules.ps1 location – adjust the Area Code settings

Page 39: Lync stress test guide v2.0 (ebook)

Since we had decided to go along with the default Area Code (502), you have to make the

outbound call routing match as well.

Figure 24: RoutingRules.ps1 location – outbound call routing

Now it is time starting the script and have the required Enterprise Voice setup pre-

configured. Truly it will save some time, especially if you not so very familiar with.

Start a Lync Management Shell in Administrator mode and navigate the location of the

modified PS1 script on one of your Frontend Servers.

Figure 25: RoutingRules.ps1 location – run the script

At the end of the script it provides you with a log file, where you can validate the setup. It

will also show you possible configuration mismatches or other errors. If this should be

happened, you always can go back to the Lync Server Control Panel, delete the entire

Enterprise Voice Setup and start over again!

Page 40: Lync stress test guide v2.0 (ebook)

Figure 26: RoutingRules.ps1 location – log file location information

Figure 27: RoutingRules.ps1 location – log file information

Page 41: Lync stress test guide v2.0 (ebook)

Prepare Lync Enterprise Voice Control Panel adjustments

The Script is not providing you always all correct setting, therefor is recommended you

validate the setup manually. Doing so, open the Lync Control Panel and navigate to Voice

Routing.

From here run through the entire setup and make sure it matches exactly all setting.

In my example here, I have made all necessary adjustments need to run a successful test.

You have to start with the Dial Plan first. Make sure all three Normalization Rules are in the

Default (Site) Dial Plan. This setting are necessary to be valid for ALL Users. Since the User

Provisioning Tool will NOT set individual Policies. So if you don’t want running through all

user again and grant a Dial Plan and Voice Policy, make sure all this settings a valid for your

SITE or POOL.

Figure 28: Enterprise Voice – Dial Plans

Page 42: Lync stress test guide v2.0 (ebook)

Now we have a look into the Voice Policy.

Figure 29: Enterprise Voice – Voice Policy

There is mostly no need to make any changes, but please validate that the PSTN Usage

records a present!

Afterwards we need to switch to the Route.

Page 43: Lync stress test guide v2.0 (ebook)

Figure 30: Enterprise Voice – Voice Route

The Voice Routing is essential to associate a trunk, which represents the gateway and the

path to it.

In the matching pattern list, you find the target of outgoing calls to the PSTN Simulator. This

will make this route generally work for ONLY this trunk and PSTN Simulator.

You will find generally only the LyncPool PSTN Usage assigned, which is so far ok.

NOTE:

If you also run Location Information Tests, Emergency call are essential. Therefor your MUST

assign manually the Emergency PSTN Usage here too.

Figure 31: Enterprise Voice – PSTN Usage Records

Page 44: Lync stress test guide v2.0 (ebook)

As said before, the Trunks are the association between the Mediation Server and the PSTN

Gateways, which is true and a need for making the PSTN Simulator work.

Several settings in this Trunk must match the Mediation Server and PSTN Gateway, which is

so called making them compatible and may adjust some detailed parameters in the SIP

Protocol.

For your setup we have some changes too. Remember as I wrote earlier, the PSTN Simulator

only support TCP connection and NO TLS.

The Trunk has dedicated encryption configuration drop-box. Here we need to change the

setup to, at least OPTIONAL.

Figure 32: Enterprise Voice – Trunk Configuration Encryption support level

But that’s not all.

The trunk also needs to be configured with PSTN Usage Records associated with it. They

were in this case also not provided during the PS script. As for now, we do this manually.

Figure 33: Enterprise Voice – Trunk Configuration PSTN Usage

Page 45: Lync stress test guide v2.0 (ebook)

Figure 34: Enterprise Voice – Trunk Configuration select the PSTN Usage Record

Figure 35: Enterprise Voice – Trunk Configuration PSTN Usage Records are assigned

Page 46: Lync stress test guide v2.0 (ebook)

Prepare Lync Enterprise Voice – Test Voice Routing

To be sure your configuration works you can validate the setup.

As we remember, there are 3 normalization rules: 5-digits, 7-digits and 10-digits.

Test each of the input should match one of the Test CALL could provide. If all Test are

successful you are very close to the final goal.... ! Congratulation!

Figure 36: Enterprise Voice – Test Voice Routing

Page 47: Lync stress test guide v2.0 (ebook)

VoIP (VoIPUCUC Advanced)

Tag Value Comment

ConversationsPerHour 1 (custom) calls per internal user per hour

LocationProfile Redmond Location Profile (Dial Plan) used for dial extension only

PhoneAreCode 206 Area code of the internal Lync user (VoIP) which will be called

UC/ PSTN Gateway (PSTN Advanced)

Tag Value Comment

ConversationsPerHour 1 (custom) calls to internal user per hour, from PSTN Simulator to UC (Lync)

Conferencing Attendant (CAA Advanced)

The Conferencing Attendant has phone number assigned (see the ps1 scripts) this number must be

provided here, so the PSTN Simulator can initiate call to Lync CAA

Telephone Number: +1 (901) 123-4567

Tag Value Comment

TopOfHourConversation False Specifies whether all conferences should be started at the beginning of each hour on the local host. If this is true, it will be prioritized over AdHocConversationCreation. If both are set to false, conversations will be created immediately. If you need testing CAA more strong chose TRUE

LobbyConferencePercentage 50 Specifies the percentage of conferences that will admit users to a lobby, until the user or lobby times out and/or the user is admitted to the conference by the presenter.

LobbyTimeoutInSec 600 Lobby timeout in sec until call is dropped

LobbyParticipantToAdmitPercentage 100 % of dialin user waiting in the lobby and must be admitted Change: based on the meeting design

ConversationLengthInSec 700 Conference duration in sec

AdHocConversationCreation True Random distributed conference of during 60min. This parameter depends on the TopOfHourConversation

Page 48: Lync stress test guide v2.0 (ebook)

LocationProfile Redmond Location Profile (Dial Plan) used for dial extension only

NumberOfCAACallsPerHour 1593 (custom) how many call per hour to CAA Maybe limiting this parameter

EnableRecording False Enable recording of CAA calls to an audio file that will be saved in the LyncPerfTool Local Directory when completed.

RecordIntervalTimeInSeconds 60 When EnableRecording is true, the length of call in seconds that will be recorded.

Call Park Service (CPS Advanced)

Tag Value Comment

ConversationsPerHour 1 (custom) calls per internal user per hour to CPS

ConversationLengthInSec 125 CPS duration until callee hangs up

PhoneAreaCode 206 Phone area code of internal Lync EV users

CallsToParkPercentage 100 UC calls received which will be parked

CallsToUnparkPercentage 100 The percentage of calls parked, that should be unparked, and the rest would be hung up by the parkee.

CallDurationUntilParkInSeconds 5 The length of the call in seconds, until the parker initiated the park duration; should be less than total ConversationLength.

AverageParkDurationInSeconds 60 The length of the call in seconds, until the parker unparks the parkee; should be less than total ConversationLength.

Page 49: Lync stress test guide v2.0 (ebook)

Reach Scenario

Most quest asked is: What is the Lync Reach Client?

Simple answer: Lync Web App used to be called the reach client

But now back to what is the Web App Client exactly. You remember, if you join a conference, and you

don’t have a Lync Client installed, a webpage open and download/ installs a web plugin. This is meant

with Reach Client. We need in our scenario to test the IIS related capabilities with this service

generated load.

This client supports only a subset of rich client features, which are:

Application Sharing

Data Collaboration

Instant Messaging

Voice Conferencing

Figure 37: Load Configuration Tool – Reach (Web App Client)

Page 50: Lync stress test guide v2.0 (ebook)

I recommend and urge you running this test on a separate client, if you test a huge count of

“external” users and please don’t use this test internally. If you have internal user without a Lync

client, they always can use the Basic Client for free. The browser based test will consume for AV huge

CPU power, that’s why a dedicated test client make sense.

Additional Setting Parameter:

Tag Value Comment

SipAuthMethod Kerberos The type of authentication method users that are signing in to authenticate themselves (should be Ntlm for external users)

ReachTargetServerUrl The Ucwa server URI, which should point to the Director Pool host name or Front-End pool host-name, respectively.

AutoDiscoveryEnabled False Whether to use Auto Discovery configuration (DNS lyncdiscoverinternal.sipdomain.com and lyncdiscover.sipdomain.com) to connect to the FE. Recommend: TRUE, but DNS must be configured in split DNS

Please note here:

SipAuthMethod:

If you run the reach client tests from the EXTERNAL Client. You MUST configure NTLM based

authentication. Kerberos is not supported over TLS, therefore you please generate different test

scenarios for internal client and external clients.

ReachTargetServerUrl:

If your scenario is external, you need to configure the mobility URL here. This parameter is only valid

if the AutoDiscovery is set to FALSE.

e.g. cie-lyncpool.cie.int or others.

Application Sharing

Advanced (ReachAS) Parameter:

Tag Value Comment

DisableAppSharingDecodingForViewers True See. General Scenarios (AS)

LobbyConferencePercentage 0 See. General Scenarios (AS)

LobbyTimeoutInSec 300 See. General Scenarios (AS)

LobbyParticipantToAdmitPercentage 80 See. General Scenarios (AS)

ConversationsPerHour 1 See. General Scenarios (AS)

DisplayAppSharingView False See. General Scenarios (AS)

ConversationLengthInSec 33600 See. General Scenarios (AS)

ParticipantJoinTimeInSeconds 300 See. General Scenarios (AS)

Page 51: Lync stress test guide v2.0 (ebook)

Data Collaboration

Advanced (ReachDataCollab) Parameter:

Tag Value Comment

EnableW15WACSession True See. General Scenarios (DataCollab)

IntervalForNextUploadInMinutes 3 See. General Scenarios (DataCollab)

NumberOfTimesPackagesToBeUploaded 1 See. General Scenarios (DataCollab)

DeleteCollabContentAtEndOfConference True See. General Scenarios (DataCollab)

ShowWhiteboardInEverySec 120 See. General Scenarios (DataCollab)

AnnotationsPerMinute 5 See. General Scenarios (DataCollab)

PowerPointPercentage 100 See. General Scenarios (DataCollab)

WhiteBoardPercentage 0 See. General Scenarios (DataCollab)

LobbyConferencePercentage 0 See. General Scenarios (DataCollab)

LobbyTimeoutInSec 300 See. General Scenarios (DataCollab)

LobbyParticipantToAdmitPercentage 80 See. General Scenarios (DataCollab)

FlipRateInSec 60 See. General Scenarios (DataCollab)

ConversationsPerHour 1 See. General Scenarios (DataCollab)

ConversationLengthInSec 3600 See. General Scenarios (DataCollab)

ParticipantJoinTimeInSeconds 300 See. General Scenarios (DataCollab)

Instant Messaging

Advanced (ReachIM) Parameter:

Tag Value Comment

LobbyConferencePercentage 0 See. General Scenarios (IM)

LobbyTimeoutInSec 300 See. General Scenarios (IM)

LobbyParticipantToAdmitPercentage 80 See. General Scenarios (IM)

ConversationsPerHour 1 See. General Scenarios (IM)

ConversationLengthInSec 3600 See. General Scenarios (IM)

ParticipantJoinTimeInSeconds 300 See. General Scenarios (IM)

Voice Conferencing

Advanced (ReachAV) Parameter:

Tag Value Comment

LobbyConferencePercentage 0 See. General Scenarios (AV)

LobbyTimeoutInSec 300 See. General Scenarios (AV)

LobbyParticipantToAdmitPercentage 80 See. General Scenarios (AV)

ConversationLengthInSec 3600 See. General Scenarios (AV)

Page 52: Lync stress test guide v2.0 (ebook)

Mobility Scenario

A few words regarding Mobile Clients. Well there are some categories:

1. The Mobile Phone

2. Windows APPs

What does this mean? Both clients use the same methodology connecting to Lync.

For your Stress Test you need to evaluate the following parameter:

- How many Windows APP Store clients are use (internally and externally)

- How many Mobile clients are used (internally and externally)

- How should your mobile policy look like, Wifi/ 3G audio, or and video, or none at all?

With this information and the multi device logon possibility, you can start designing the stress test

for this section and divide the test into internal and external parts.

Lync Mobile App Instant Messaging and Presence

Lync Mobile App Peer-to-Peer Audio/Video calls

Figure 38: Load Configuration Tool – Mobility

Additional Setting Parameter:

Tag Value Comment

UcwaTargetServerUrl Internal (mobility RevProxy configuration), or direct connect for this test only External (mobility setup too)

UcwaTargetServerPort Either 443 or 4443

WorkDayDuration 10 Working day hours for simulation

NumberOfContactViewsPerDay 9 Mobility contact views

NumberOfContactListViewsPerDay 5 Mobility contact list views

NumberOfSelfPresenceChangesPerDay 1 Manually set the presence on mobile devices

Page 53: Lync stress test guide v2.0 (ebook)

OnlineToInactiveUserActivityIntervalMinutes 5 Min wait time until server treat the device as inactive

EnablePhotoFetching False View photos on mobile client

AutoDiscoveryEnabled False Active auto discover. If true no UCWA target need to be set

SearchEnabled True Mobile client search capability enabled

SearchIntervalSeconds 6000 Interval between mobile client searches

CommaSeparatedSearchString If searchenabled, than you can put the search queries here: similar to ABWQ

PnchUserRanges User ranges for pnch enabled users for example 10,20-30,45-50. Here Microsoft meant “Push Notification Clearing House“ enabled users. http://technet.microsoft.com/en-us/library/hh690037.aspx

SearchReturnLimit 25 s.o.

OutgoingIMSessionsPerUserPerDay 8 I would change the default parameter here, IM is more often used on mobile devices the AV.

OutgoingAVSessionsPerUserPerDay 24

Presence and P2P Instant Messaging/ Audio

Advanced (MobilityPresence) Parameter:

Tag Value Comment

ConversationsPerHour 0.375 (custom) The number of conversations each user will create during each hour.

ConversationLengthInSec 360 Conversation during in sec

Page 54: Lync stress test guide v2.0 (ebook)

Summary (Important User Load definition)

Now it time to segregate the test into the small pieces we need on each test client. One

more thing to say is, we defined several parameters during the setup process, but we never

spoke about if only a handful or even all user have this behavior. That now the part we are

coming too.

Based on the Common Configuration all test are displayed in the summary. Based on the

expected client behavior you consulted during the Lync initial design process, you have now

the possibility to isolate tests, or even making huger ranges for testing.

Figure 39: Load Configuration Tool – Summary

Please tick the “Enable Custom User Range Generation”. You can now edit the User Range

parameter according to your needs. You can still do this manually in each created stress test

scenario file.

Page 55: Lync stress test guide v2.0 (ebook)

Figure 40: Load Configuration Tool – User Range customization

In this upper demo, I have shown you how to overlap the user range.

NOTE:

If you do so, ensure this test will NOT run on the same Client!

Copy the test files onto different machine, so the test machine is not overloaded.

Secondly remember:

If you are starting the Test, do NOT start them all at the same time. This is would lead to

extreme high load on the Lync servers due to too many logon request.

The Load Configuration Tool has the check-box adding sign-in delay into the RunClient.bat.

The Tool will start generating all required files and place those ito a dated folder and segregate them

into the different client folder, base on the information you provided earlier during the common

configuration

Figure 41: Load Configuration Tool – Stress Test Client file location

You next step is not modifying all RunClientx.bat according your file location setup. Also

ensure the LyncPerfToolPref.dll is registered so the local PerfCounters can be addressed.

Even if you split the test of several client. Please case what the automated RunClient

Generation process is doing. The process will be split over ALL addressed e.g. here three (3)

clients. Meaning, I defined for CAA user 0-500. Here now the CAA_clientX.xml file are copied

into all three subfolder for each client and the users are also separated into three ranges:

<UserNumberBeginning>0</UserNumberBeginning>

<UserNumber>167</UserNumber>

<UserNumberBeginning>167</UserNumberBeginning>

<UserNumber>167</UserNumber>

Page 56: Lync stress test guide v2.0 (ebook)

<UserNumberBeginning>334</UserNumberBeginning>

<UserNumber>167</UserNumber>

So best for you is ALL .XML file must be modified according to the stress test client

positioning.

I fully recommend you write your own RunClient.bat and also have modified all xml files

before you run a test test!

Test Test means, you should start the stress test step by step for each test you run. Validate

those starting process and ensure the test can run smoothly.

Adhoc and Large conferencing Stress Test Client Setup

The three optional (check box) test scenarios need a manual involvement configuration the

user range. Make sure they are not overlapping. Than analyze and possible reconfigure the

client where the meetings are started.

Figure 42: Load Configuration Tool – optional component, user range assignment

Page 57: Lync stress test guide v2.0 (ebook)

After the user range definition and generation of setup files, the scenario should look similar

to the following illustration.

Figure 43: Load Configuration Tool – example config files for AV (all options)

External Stress Test Client Setup

As we have discussed at the very beginning, we can and should test the Edge server

components as well. Doing so requires the external test activation.

The test configuration files are create in the same way as for other options. They are named:

xxExternal_clientxx.xml.

Those file have to move to the external test client and run from outside.

Figure 44: Load Configuration Tool – external test client configuration files

If you have chosen multiple client, as in this example 3, the xml file will be found in all three

folders. Since you have saying only 1 external stress test client for simulation. You must

modify one configuration entry according the max count of external user.

If you defined 10.000 test user than you have also specified the user range e.g. 9.000 -10.000

as external. Reflecting this in your test setup, you must modify the following section in the

xml:

<UserNumberBeginning>9000</UserNumberBeginning>

<UserNumber>1000</UserNumber>

<TenantStartIndex>0</TenantStartIndex>

Page 58: Lync stress test guide v2.0 (ebook)

Table of Figures

Figure 1: Stress Test illustration .............................................................................................................. 7

Figure 2: Virtual Stress Test Machine placing ......................................................................................... 8

Figure 3: KHI for Stress Test .................................................................................................................... 9

Figure 4: All KHI based on RaaS ............................................................................................................. 10

Figure 5: UserProvisioningTool - Location ............................................................................................. 12

Figure 6: UserProvisioningTool – User Creation.................................................................................... 13

Figure 7: UserProvisioningTool – Contact Creation .............................................................................. 14

Figure 8: UserProvisioningTool – Distribution List Creation................................................................. 15

Figure 9: UserProvisioningTool – LIS Configuration .............................................................................. 16

Figure 10: UserProvisioningTool – Setup file for LIS ............................................................................. 17

Figure 11: UserProvisioningTool – List configuration files .................................................................... 17

Figure 12: UserProvisioningTool – Lync script for LIS ............................................................................ 17

Figure 13: Load Configuration Tool – Common Configuration ............................................................. 21

Figure 14: Load Configuration Tool – General Scenarios ...................................................................... 23

Figure 15: Load Configuration Tool – Voice Scenarios .......................................................................... 34

Figure 16: Load Configuration Tool – Voice (PSTN Advanced Options) ................................................ 35

Figure 17: Change the Mediation Server Port to 5068 TCP .................................................................. 36

Figure 18: Change the Mediation Server Port to 5068 TCP .................................................................. 36

Figure 19: Trunk setup with TCP and Port 5068 .................................................................................... 37

Figure 20: RoutingRules.ps1 location .................................................................................................... 38

Figure 21: RoutingRules.ps1 – change the PstnUsage name ................................................................ 38

Figure 22: RoutingRules.ps1 location – match the change to the Voice Policy .................................... 38

Figure 23: RoutingRules.ps1 location – adjust the Area Code settings ................................................. 38

Figure 24: RoutingRules.ps1 location – outbound call routing ............................................................. 39

Figure 25: RoutingRules.ps1 location – run the script .......................................................................... 39

Figure 26: RoutingRules.ps1 location – log file location information ................................................... 40

Figure 27: RoutingRules.ps1 location – log file information ................................................................. 40

Figure 28: Enterprise Voice – Dial Plans ................................................................................................ 41

Figure 29: Enterprise Voice – Voice Policy ............................................................................................ 42

Figure 30: Enterprise Voice – Voice Route ............................................................................................ 43

Figure 31: Enterprise Voice – PSTN Usage Records .............................................................................. 43

Figure 32: Enterprise Voice – Trunk Configuration Encryption support level ....................................... 44

Figure 33: Enterprise Voice – Trunk Configuration PSTN Usage ........................................................... 44

Figure 34: Enterprise Voice – Trunk Configuration select the PSTN Usage Record .............................. 45

Figure 35: Enterprise Voice – Trunk Configuration PSTN Usage Records are assigned ........................ 45

Figure 36: Enterprise Voice – Test Voice Routing ................................................................................. 46

Figure 37: Load Configuration Tool – Reach (Web App Client) ............................................................. 49

Figure 38: Load Configuration Tool – Mobility ...................................................................................... 52

Figure 39: Load Configuration Tool – Summary .................................................................................... 54

Figure 40: Load Configuration Tool – User Range customization ......................................................... 55

Figure 41: Load Configuration Tool – Stress Test Client file location .................................................... 55

Figure 42: Load Configuration Tool – optional component, user range assignment ............................ 56

Figure 43: Load Configuration Tool – example config files for AV (all options) .................................... 57

Figure 44: Load Configuration Tool – external test client configuration files ....................................... 57