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

Single server topology with Compliance service

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

Multiple server topology

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