Topic Last Modified: 2012-10-05
Persistent Chat Server can perform multi-user real-time chat that can persist for future retrieval and search. Unlike group instant messaging (IM) that is saved in a user’s mailbox if conversation history is configured, a Persistent Chat Server session stays open longer, and the content is saved on a server, along with the messages, files, URLs, and other data that are part of an ongoing conversation.
Capacity planning is an important part of preparing to deploy Persistent Chat Server. This topic provides details about supported Persistent Chat Server topologies and capacity planning tables that you can use to determine the best configuration for your deployment. It also describes how to best manage Persistent Chat Server deployments that require greater capacity at peak times.
To download Persistent Chat Server, see "Microsoft Lync Server 13 Persistent Chat Server" at http://go.microsoft.com/fwlink/p/?linkId=209539.
For details about installing Persistent Chat Server, see Installing Persistent Chat Server and Configuring Persistent Chat Server in the Deployment documentation.
Support tools, such as Lync Server Planning Tool, can further assist you with capacity planning. For details about the Planning Tool, see Beginning the planning process in the Planning documentation.
Persistent Chat Server Supported Topologies
You can deploy Persistent Chat Server in single-server or multiple-server pools, and with single-pool or multiple-pool topology.
We now also support Persistent Chat Server on Standard Edition server for new Lync Server 2013 deployments. However, performance and scale will be affected, and because there is no high availability option for this new deployment, we expect you to use this primarily for the purposes of proof of concept, evaluation, and so on.
Note: |
---|
For additional details about both topologies, see Planning for Persistent Chat Server in this documentation set and Deploying Persistent Chat Server in the Deployment documentation. |
Single-Server Topology
The minimum configuration and simplest deployment for Persistent Chat Server is a single Persistent Chat Server Front End Server topology. This deployment requires a single server that runs Persistent Chat Server (which optionally runs the Compliance service, if compliance is enabled), a server that hosts both the SQL Server database, and if compliance is required, the SQL Server database to store the compliance data.
Important: |
---|
You cannot add additional servers to a Persistent Chat Server pool that is started as a single-server deployment in Topology Builder. We recommend using the multiple-server pool topology, even if you’re using a single server, so that you’ll be able to add more servers later, if needed. |
The following figure shows all required and optional components of a topology for a single Persistent Chat Server Front End Server with compliance.
Single Persistent Chat Server
Multiple-Server Topology
To provide greater capacity and reliability, you can deploy a multiple-server topology, as described in Planning for Persistent Chat Server. The multiple-server topology can include as many as four active computers running Persistent Chat Server (high availability and disaster recovery configurations will allow up to eight, but only four can be active and the remaining four on standby). Each server can support as many as 20,000 concurrent users, for a total of 80,000 concurrent users connected to a Persistent Chat Server pool with 4 servers. A multiple-server topology is the same as the single-server topology except that multiple servers host Persistent Chat Server, and can scale higher. Multiple computers running Persistent Chat Server should reside in the same Active Directory Domain Services domain as Lync Server and the Compliance service.
The following figure shows all the components of a multiple-server topology with multiple computers running Persistent Chat Server, the optional Compliance service, and a separate compliance database.
Multiple Persistent Chat Servers
In a four-server Persistent Chat Server deployment, where 80,000 users can be simultaneously signed in to and using Persistent Chat, the load is distributed evenly at 20,000 users per server. If one server becomes unavailable, the users who are connected to that server will lose their access to Persistent Chat Server. The disconnected users will be automatically transferred to the remaining servers until the unavailable server is restored. Depending on the amount of Persistent Chat traffic on the network, this transfer can take a few minutes or longer. Because each of the remaining servers might be hosting as many as 30,000 users, we recommend that you restore the unavailable server as quickly as possible to avoid performance issues. Otherwise, you can make another Persistent Chat Server available by using the Topology Builder or the Windows PowerShell cmdlet, set-CsPersistentChatActiveServer.
Persistent Chat Server Capacity Planning
The following tables can help you with capacity planning for Persistent Chat Server. They model how changing various Persistent Chat Server settings affect capacity capabilities.
Planning Your Maximum Capacity for Persistent Chat Server
Use the following sample table to determine the number of users you will be able to support.
Persistent Chat Server pool Maximum Capacity Sample
Active Persistent Chat service instances |
4 |
Persistent Chat service instances |
8 (4 must be inactive; only a maximum of 4 can be active) |
Active users connected |
80,000 |
Total provisioned users |
150,000 |
Number of endpoints |
120,000 |
In the preceding sample, the plan is to support the maximum number of users that Persistent Chat Server allows: four servers/instances of the Persistent Chat service (can have four more passive servers running Persistent Chat Server for high availability and disaster recovery) and 20,000 users per server, for a total of 80,000 active users.
Capacity Planning for Managing Persistent Chat Room Access
The following sample table can help you plan for managing Persistent Chat room access in a Persistent Chat Server pool.
Managing Chat Room Access Sample
Small Chat Rooms | Medium Chat Rooms | Large Chat Rooms | Total | |
---|---|---|---|---|
Size of chat rooms (number of users connected) |
30 per room |
150 per room |
16,000 per room |
|
Chat rooms |
32,000 |
1,067 |
10 |
33,077 |
% of rooms that are auditorium |
1% |
1% |
50% |
|
% of rooms that are open |
3% |
3% |
50% |
|
Open rooms (no explicit membership) |
960 |
32 |
5 |
997 |
Non-open rooms (regular rooms with explicit membership) |
31,040 |
1.035 |
5 |
32,080 |
Auditorium rooms (additional presenters entry) |
0 |
32 |
5 |
|
Rooms managed by direct membership |
50% |
10% |
0% |
|
Rooms managed by user groups |
50% |
90% |
100% |
|
User groups in each chat room's membership list for open rooms (not specified explicitly) |
0 |
0 |
0 |
|
Users in each chat room's membership list for non-open rooms |
30 |
150 |
16,000 |
|
User groups in each chat room's membership list for non-open rooms |
3 |
5 |
10 |
|
Users and user groups in each chat room's manager list (for open and non-open rooms) |
6 |
6 |
6 |
|
Users and user groups in each auditorium chat room's presenters list (for open and non-open rooms) |
6 |
6 |
6 |
|
User-based membership entities across all non-open rooms |
465,600 |
15,520 |
- |
|
User-group-based membership entities across all non-open rooms |
46,560 |
4656 |
50 |
|
Users and user groups based entities across all auditorium chat rooms |
0 |
192 |
50 |
|
Users and user groups based manager entities across all chat rooms manager lists |
192,000 |
6,400 |
60 |
|
Active users per chat room |
30 |
150 |
16,000 |
|
Chat rooms per user |
12 |
2 |
2 |
16 |
User groups in each chat room’s membership list |
10 |
10 |
15 |
|
Rooms managed by user groups |
50% |
50% |
50% |
|
User-group-based membership entities across all chat rooms |
155,200 |
5173 |
68 |
|
User-based membership entities across all chat rooms |
465,600 |
77,600 |
72,000 |
|
Users and user groups in each chat room's manager, presenter, and scope lists |
6 |
6 |
6 |
|
Users and user groups across all chat rooms' manager, presenter, and scope lists |
192,000 |
6400 |
60 |
|
Access control entries |
704,160 |
26,768 |
160 |
731,088 |
Maximum access control entries |
2,000,000 |
In the preceding sample, when you deploy the Persistent Chat Servers according to the recommended guidelines, they can handle up to 80,000 active users across a four-server pool with compliance enabled.
This sample shows chat rooms categorized as small (30 active users at any given time), medium (150 active users), and large (16,000 active users). The number of chat rooms of a certain size is computed based on the total number of:
-
Active users in the system
-
Active users in chat rooms of the given size
-
Chat rooms of the given size that a single user joins
For each chat room, the preceding capacity planning table specifies the number of access control entries that are associated with the chat room, including entries that are assigned directly to the chat room. You can control access to individual chat rooms by using access control lists (ACLs). You can also control access at the category level. In an ACL, an individual access control entry can be either a user group—for example, a security group, a distribution list, or a single user. You can define access control entries for chat room managers, presenters, and members.
Important: |
---|
In planning your strategy for managing chat rooms, keep in mind that the total number of allowed access control entries is 2 million. If the calculated access control entries exceed 2 million, server performance could degrade significantly. To avoid this issue, whenever possible, be sure that your access control entries are user groups instead of individual users. |
Capacity Planning for Managing Chat Room Access by Invitation
You can use the following capacity planning table to understand the number of invitations that Persistent Chat Server creates and stores in the Persistent Chat database when it is configured to send invitations. You manage invitations on the Category by using the Chat Room Category settings page in the Lync Server Control Panel, or by using the Windows PowerShell cmdlet, set-csPersistentChatCategory. You can manage invitations on a chat room (in line with what the category allows) by using the Room Management page launched from the Lync client, or by using a Windows PowerShell cmdlet, set-csPersistentChatRoom.
The sample data in the following table assumes that, on the Chat room settings page for 50 percent of all chat rooms, the Invitations option is set to Yes.
Important: |
---|
If the calculated value for the number of invitations that is generated by the server exceeds 1 million, server performance could degrade significantly. To avoid this issue, be sure that you minimize the number of chat rooms that are configured to send invitations or restrict the number of users who can join chat rooms that have been configured to send invitations. |
Chat Room Access by Invitation Sample
Small Chat Rooms | Medium Chat Rooms | Large Chat Rooms | Total | |
---|---|---|---|---|
Users who can access chat room |
30 per room |
150 per room |
16,000 per room |
|
Percentage of rooms that have invitations |
50% |
50% |
50% |
|
Chat rooms configured to send invitations |
16,000 |
533 |
5 |
|
Users who can access the chat room |
60 |
225 |
16,000 |
|
Invitations generated by Persistent Chat Server |
960,000 |
120,000 |
80,000 |
1,160,000 |
Maximum allowable number of invitations |
2,000,000 |
|||
Model 1 - Start with expected number of messages per room per day |
||||
Chat Rate Per Room (per day) |
50 |
500 |
100 |
650 |
Chat rate (per second) across all rooms |
55.56 |
18.52 |
0.03 |
74 |
Model 2 - Start with number of messages posted per user per day |
||||
Chat rate per user per day |
15 |
5 |
0.1 |
20 |
Chat rate per room (per day) |
38 |
375 |
800 |
1,213 |
Chat rate (per second) across all rooms |
41.67 |
13.89 |
0.28 |
56 |
Persistent Chat Server Performance User Model
The following table describes the user model for Persistent Chat Server. It provides the basis for the capacity planning requirements and represents a typical organization with 80,000 concurrent users on four servers.
Persistent Chat Server Performance User Model
Number of active users connected |
80,000 |
Number of Persistent Chat Server service instances |
4 |
Size of small chat rooms |
30 users |
Size of medium chat rooms |
150 users |
Size of large chat rooms |
16,000 users |
Total number of chat rooms |
33,077 |
Number of small chat rooms |
32,000 |
Number of medium chat rooms |
1,067 |
Number of large chat rooms |
10 |
Total number of chat rooms per user |
16 |
Number of small chat rooms per user |
12 |
Number of medium chat rooms per user |
2 |
Number of large chat rooms per user |
2 |
Number of rooms joined per user |
24 |
Peak join rate |
10/second |
Total chat rate |
24/second |
Chat rate for small chat rooms |
22.22/second |
Chat rate for medium chat rooms |
1.67/second |
Chat rate for large chat rooms |
~0.15/second |
Percentage of chat rooms configured for invitations |
50% |
Percentage of direct memberships |
50% |
Percentage of group memberships |
50% |
Average number of ancestor affiliations in Active Directory Domain Services |
100 - 200 |
Number of subscribed contacts per user |
80 |
Average number of endpoints per user |
1.5 |
Average number of visible chat rooms per endpoint |
1.5 |
Average number of visible chat rooms per user |
2.25 (50% for 1 room and 50% for 2 rooms); Up to 6 rooms open, one per monitor |
Number of participants polled per interval |
25 per visible chat room |
Length of polling interval |
5 minutes |
Number of participants polled per second |
15,000 |
Number of presence changes per hour per user |
6 |
Number of presence changes per second |
133.33 |