Upload
thomas-poett
View
1.894
Download
4
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
Lync Stress Test
How too Setup and Configure
© 2014, Thomas Pött, Microsoft MVP Lync
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
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.
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.
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.
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.
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
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
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
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
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.
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.
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
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
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
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
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.
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.
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”.
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.
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
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.
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
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
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
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)
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
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.
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.
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.
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”
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
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
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.
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.
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
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.
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
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!
Figure 26: RoutingRules.ps1 location – log file location information
Figure 27: RoutingRules.ps1 location – log file information
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
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.
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
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
Figure 34: Enterprise Voice – Trunk Configuration select the PSTN Usage Record
Figure 35: Enterprise Voice – Trunk Configuration PSTN Usage Records are assigned
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
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
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.
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)
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)
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)
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
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
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.
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>
<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
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>
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