Professional Documents
Culture Documents
Document Version 37
BroadSoft Guide
Copyright Notice
Copyright 2015 BroadSoft, Inc.
All rights reserved.
Any technical documentation that is made available by BroadSoft, Inc. is proprietary and
confidential and is considered the copyrighted work of BroadSoft, Inc.
This publication is for distribution under BroadSoft non-disclosure agreement only. No
part of this publication may be duplicated without the express written permission of
BroadSoft, Inc., 9737 Washingtonian Boulevard, Suite 350, Gaithersburg, MD 20878.
BroadSoft reserves the right to make changes without prior notice.
Trademarks
Any product names mentioned in this document may be trademarks or registered
trademarks of BroadSoft or their respective companies and are hereby acknowledged.
This document is printed in the United States of America.
01-BD5003-00
PAGE 2 OF 95
Date
Author
March 2, 2006
Roberta Boyle
June 2, 2006
Patricia Renaud
July 7, 2006
Laura Griffith
Edited document.
Patricia Renaud
Laura Griffith
Edited document.
Patricia Renaud
February 1, 2007
Laura Griffith
Edited changes.
March 5, 2007
Patricia Renaud
Laura Griffith
Roberta Boyle
Edited changes.
April 3, 2007
Patricia Renaud
Mark Kushnir
Laura Griffith
Edited changes.
May 1, 2007
Patricia Renaud
Mark Kushnir
Patricia Renaud
Laura Griffith
Andrea Fitzwilliam
Mark Kushnir
October 4, 2007
Laura Griffith
Patricia Renaud
November 6, 2007
Mark Kushnir
Laura Griffith
December 5, 2007
Mark Kushnir
December 7, 2007
Andrea Fitzwilliam
Mark Kushnir
01-BD5003-00
PAGE 3 OF 95
Version
Date
Author
10
Laura Griffith
10
Andrea Fitzwilliam
11
Laura Griffith
Andrea Fitzwilliam
12
Mark Kushnir
12
Francois Brassard
12
Andrea Fitzwilliam
13
June 9, 2008
Laura Griffith
13
Andrea Fitzwilliam
14
July 8, 2008
Laura Griffith
Andrea Fitzwilliam
15
Mark Kushnir
15
Andrea Fitzwilliam
16
November 1, 2008
Mark Kushnir
16
December 1, 2008
Mark Kushnir
16
December 8, 2008
Mark Kushnir
16
Laura Griffith
Steve Liao
16
Andrea Fitzwilliam
17
Goska Auerbach
17
June 1, 2009
Mark Kushnir
01-BD5003-00
PAGE 4 OF 95
Version
Date
Author
17
June 3, 2009
Andrea Fitzwilliam
18
Mark Kushnir
18
Andrea Fitzwilliam
19
Laura Griffith
Andrea Fitzwilliam
20
Laura Griffith
December 2, 2009
Mark Kushnir
20
December 8, 2009
Andrea Fitzwilliam
21
Andrea Fitzwilliam
22
Goska Auerbach
22
Laura Griffith
22
Mark Kushnir
22
Patricia Renaud
23
Laura Griffith
24
Andrea Fitzwilliam
25
Mark Kushnir
25
Laura Griffith
25
Andrea Fitzwilliam
26
Mark Kushnir
26
Andrea Fitzwilliam
27
Goska Auerbach
01-BD5003-00
PAGE 5 OF 95
Version
Date
Author
27
February 9, 2011
Goska Auerbach
27
Mark Kushnir
27
May 3, 2011
Andrea Fitzwilliam
28
May 6, 2011
Laura Griffith
28
Mark Kushnir
28
June 9, 2011
Mark Kushnir
28
Andrea Fitzwilliam
29
Laura Griffith
29
January 3, 2012
Andrea Fitzwilliam
30
Mark Kushnir
30
Laura Griffith
Andrea Fitzwilliam
31
October 1, 2012
Laura Griffith
Patricia Renaud
32
Mark Kushnir
32
Patricia Renaud
01-BD5003-00
PAGE 6 OF 95
Version
33
Date
Author
Laura Griffith
January 6, 2014
Joan Renaud
34
Laura Griffith
Andrea Fitzwilliam
35
June 6, 2014
Laura Griffith
Andrea Fitzwilliam
36
Laura Griffith
Patricia Renaud
37
Joan Renaud
37
April 3, 2015
Laura Griffith
37
Joan Renaud
01-BD5003-00
PAGE 7 OF 95
Table of Contents
1
Introduction ................................................................................................................................. 13
Definitions .................................................................................................................................... 14
2.1
2.2
Erlang ......................................................................................................................................... 14
2.3
2.4
2.5
2.6
4.1
4.2
4.1.2
4.1.3
4.1.4
Application Server...................................................................................................................... 22
4.2.1
4.2.2
4.3
4.4
Media Server.............................................................................................................................. 24
4.5
4.6
4.7
4.6.1
4.6.2
4.6.3
4.8
4.9
Database Server........................................................................................................................ 30
4.8.1
4.8.2
01-BD5003-00
PAGE 8 OF 95
6
6.1
6.2
6.1.2
6.1.3
6.1.4
6.1.5
6.2.2
Application Server............................................................................................................. 39
6.2.3
6.2.4
Media Server..................................................................................................................... 42
6.2.5
6.2.6
6.2.7
6.2.8
6.2.9
UC-Connect ...................................................................................................................... 47
7.1.2
7.1.3
7.1.4
7.1.5
7.1.6
7.1.7
7.2
7.3
7.4
7.5
8
7.3.1
7.3.2
7.4.2
8.1
8.2
9
9.1
01-BD5003-00
PAGE 9 OF 95
9.2
9.3
9.4
9.1.1
9.1.2
Paging ............................................................................................................................... 65
9.1.3
9.2.2
9.2.3
9.2.4
9.2.5
9.3.2
9.3.3
9.3.4
9.5
Jitter ................................................................................................................................... 72
01-BD5003-00
PAGE 10 OF 95
01-BD5003-00
PAGE 11 OF 95
Table of Figures
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
01-BD5003-00
PAGE 12 OF 95
Introduction
This document is intended as a guide to engineer a BroadWorks system. The scalability
aspects of the architecture are described along with details on how to plan for expected
system capacity. This information is intended to be used during system planning. This
document applies to all supported BroadWorks releases. Any release-specific information
is noted where applicable.
Information on monitoring system performance is also presented in this document. This is
a crucial part of the ongoing system planning. Current system performance is the most
accurate way to predict future system scalability.
01-BD5003-00
PAGE 13 OF 95
2
2.1
Definitions
Average Call Hold Time
Average call hold time (ACH) defines how long a call is connected (call duration), on
average.
2.2
Erlang
Call load is measured in Erlang units. Erlang units represent traffic intensity or load as
traffic volume per time unit. An Erlang can be defined as one telephone line carrying traffic
continuously for one hour.
For example, if a system receives 100 calls per hour with each call requiring three minutes
(0.05 hour) of service, then the traffic volume in an eight hour period is 100 * 0.05 * 8 = 40
Call Hours (Ch). One Erlang equals one Ch/hour, so the traffic load is 40/8 = 5E.
Peak or busy hour is the busiest one-hour (60 minutes) period of the day. This is typically
the load for which resources are calculated, since it represents the worst case scenario.
Average call hold time (ACH) defines how long a call is connected (call duration), on
average.
Following are metrics typically used in the industry:
2.3
2.4
Simultaneous Calls
The number of simultaneous calls can be computed from the number of subscribers and
the Erlang per subscriber as follows.
Number of simultaneous calls = Number of subscribers * Erlang per
subscriber
01-BD5003-00
PAGE 14 OF 95
For Business Trunking applications, the number of simultaneous calls is used for licensing
instead of the number of users. The number of simultaneous calls is equivalent to the
overall system trunk group call capacity. However, for capacity planning purposes, the
effective number of users must be estimated to determine the database size and expected
number of web and provisioning transactions. The effective number of users is
determined from the number of simultaneous calls and the Erlang per user.
Effective Number of Users = Number of simultaneous calls / Erlang per
user
2.5
Call Model
The call model defines the calling profile. Elements of the call model include:
2.6
Percentage of internal versus external calls Internal calls are defined as calls
between BroadWorks users within the same group.
Call Weighting
Each service in the call model is assigned a call weighting to estimate the impacts. The
weighting is an impact relative to a basic call. A basic call is defined as a simple answered
call. The call weighting is based primarily on impacts to messaging throughput. For
example, the Simultaneous Ringing service results in an extra terminating call leg for each
provisioned number. If one number is configured, the effective call weight is 1.5.
Registrations are also weighed as a call. A registration with authentication is assumed to
have a call weighting of one-half an answered call.
Detailed call weightings are shown in Appendix B: Call Weighting.
01-BD5003-00
PAGE 15 OF 95
01-BD5003-00
PAGE 16 OF 95
Another aspect of system scalability is ensuring that each server has appropriate overload
controls to protect the system. Appendix A: Server Overload Controls describes the
overload controls for each server.
4.1
Network Server
The Network Server cluster is the key element in BroadWorks system scaling. A Network
Server cluster is defined as a number of Network Servers using the same synchronized
data store. In general, a BroadWorks deployment has one Network Server cluster. The
Network Server cluster provides two main functions:
It is possible to segregate the Network Server functionality such that different Application
Servers are homed on different Network Server clusters. In this case, each Network
Server cluster would be considered a different BroadWorks system and the general
scaling rules outlined in this document would apply to each system independently.
01-BD5003-00
PAGE 17 OF 95
4.1.1
The Network Server acts as a Hypertext Transfer Protocol (HTTP)-based user location
server for web and client login returning the users serving primary and secondary
Application Server. This location application programming interface (API) can be used by
a third-party portal. Figure 3 Network Server User Location Lookup shows the Network
Server user location function.
01-BD5003-00
PAGE 18 OF 95
4.1.2
Centralized advanced routing capabilities for all Application Servers clusters, for
example, Equal Access Support, Physical Location Routing, and so on.
For more information on Network Server capabilities, see the BroadWorks Network Server
Product Description.
4.1.3
Scaling Characteristics
Network Servers are deployed in clusters. To increase capacity, additional servers are
added to the cluster.
Network Servers are deployed in an N+1 manner, in which the cluster is over-provisioned
with an additional server. This is done to provide redundancy. If a server should fail, there
would be enough capacity to accommodate busy hour traffic.
A maximum of twenty servers can be in a cluster. Nineteen servers are used for capacity
planning, with one additional redundant server.
On systems with a large volume of provisioning transactions, a dedicated Network Server
can be deployed as a provisioning-only server.
01-BD5003-00
PAGE 19 OF 95
The Network Server uses the Oracle TimesTen database, with a memory resident data
store. TimesTen replication is used to keep the data stores across the clusters in
synchronization.
Network Server transactions consist primarily of network-bound SIP redirection traffic,
Media Server Selection requests, and Web/Open Client Server (OCS) User Locator
requests. The Network Server can also be optionally configured to handle access-side
call and registration traffic.
There are a number of ways that network elements such as Application Servers, public
switched telephone network (PSTN) interconnects, and session border controls (SBCs)
can select Network Servers. Some common Network Server selection algorithms are as
follows.
4.1.4
Pre-defined Network Server route list with round-robin algorithm route selection
Segmentation of Network Server based on per node fixed Network Server list (for
example, Application Server cluster 1 uses Network Server 1/Network Server 2 while
Application Server cluster 2 uses Network Server 2/Network Server 3)
Scaling Constraints
The number of subscribers supported by a given Network Server cluster is constrained by
the following items:
The above constraints are directly related to platform resource usage, that is, Central
Processing Unit (CPU) and memory. The type of platform, number of servers required
and memory-per-server, is dictated by the system requirements. For example, to support
ten million subscribers, the requirement of the Network Server database might be 6 GB,
which would mean 12 GB minimum RAM for each server. Assuming a typical residential
deployment with two calls per user per hour, the cluster would need to support twenty
million calls per hour or 5,556 TPS. If the selected hardware was rated at 600 TPS, then
ten servers would be required, with the eleventh server available to handle load during a
node failure.
4.1.4.1
01-BD5003-00
PAGE 20 OF 95
Subscriber attributes
Routing attributes:
NPA-NXX Active Code List (NNACL) files, Local Calling Area (LCA) entries, Local
Number Portability (LNP) entries
The main driver to the database size as a system scales is the subscriber information. In
general, a subscriber has at least two attributes: a directory number and a web/client login
user ID.
4.1.4.2
A servers rated TPS is based on CPU resource usage and is derived from performance
validation testing data. TPS per-platform rating ranges from 300 to 4500 TPS. For
specific Network Server TPS ratings per hardware (HW) type, see section 5 Hardware
Capacities.
The total Network Server cluster TPS is the sum of TPSs across each individual cluster
memberone server (for redundancy). The Network Server cluster is currently rated at up
to 19 + 1 elements, which means that the maximum total system TPS is currently rated at
85,500 TPS (19 servers * 4500 TPS for a 24 CPU Unit Intel 5600 Xeon-based server).
The BroadWorks System Capacity Planner [2] identifies how many Network Server
elements of a certain hardware type are required to meet the estimated traffic model.
4.1.4.3
Data caching
Routing information
01-BD5003-00
PAGE 21 OF 95
Unlike the database size constraint, which is cluster-wide, the Execution Server heap is
server-specific. This means that different servers in the cluster can have heaps at
different sizes if they are not handling the same traffic loads. In general, the Network
Server Execution Server heap size is rarely the bottleneck for growth for the Network
Server cluster.
4.2
Application Server
The Application Server is the service delivery platform that provides the line-side soft
switch capabilities. A subscriber belongs to a specific Application Server cluster and as
such, the subscribers profile resides in the database that is unique to each cluster.
BroadWorks provides two different deployment models for its Telephony Application
Server (TAS) product targeted for IMS deployments: the Application Server (AS) TAS and
the Execution Server (XS) TAS. A system with an Application Server TAS is referred to as
AS mode. A system with an Execution Server TAS is referred to as XS mode.
This section describes AS mode. For information on XS mode, see section 4.3 Execution
Server (XS Mode).
4.2.1
Scaling Characteristics
The BroadWorks Application Server is deployed in a primary/secondary server cluster
scheme. Multiple Application Server clusters are deployed within the same Network
Server cluster to increase capacity. Each Application Server cluster is managed
independently of the other. The number of Application Server clusters per system is
limited by the capacity of the Network Server cluster. Adding additional Application Server
clusters drive additional requirements on other network components such as the Media
Server, Web Server, Network Server, Conferencing Server, and Call Detail Server.
The secondary server operates in a hot-standby mode, with all subscriber data kept
current on both servers of the cluster. Failure of the primary node causes rollover of user
control to the secondary server.
Subscriber data is stored in an Oracle TimesTen database that is memory resident. A
memory database provides for optimum performance and throughput. Replication of
subscriber data is accomplished using TimesTen replication.
Provisioning of service providers, enterprises, groups, users, and services is done via the
Open Client Interface-Provisioning (OCI-P). This provisioning traffic is generated via the
web interface, local command line interface (CLI), and by BroadWorks/third-party clients
(and proxied by the OCS).
The system can be (optionally) configured to allow for preferred provisioning on the
secondary server. This can more evenly distribute processing load during steady state
operation, but is not a mechanism to provide increased capacity, as a single server must
be able to service both call and provisioning load during software upgrades and failure
scenarios.
01-BD5003-00
PAGE 22 OF 95
4.2.2
Scaling Constraints
An Application Servers capacity is constrained by the following:
Processing Power:
And
Memory:
Database size
The BroadWorks System Capacity Planner [2] takes the previously listed constraints into
account when providing an estimate subscribers-per-Application Server cluster.
4.2.2.1
Data caching
4.2.2.2
01-BD5003-00
PAGE 23 OF 95
4.2.2.3
Group profile
Subscriber profile
4.3
4.4
The Execution Server Telephony Application Server has no database; therefore, the
database usage is not part of the dimensioning. Subscriber profile information is
retrieved from the Home Subscriber Server (HSS) and/or Database Server (DBS).
Media Server
Media Servers are also deployed in clusters. To increase capacity, additional servers are
added to the cluster. There can be up to 2,000 Media Servers per Network Server cluster.
Each Media Server operates independently.
The Media Server is dimensioned in terms of ports. A port can provide interactive voice
response (IVR) or conferencing functions. Ports for different codecs, fax, and video are
weighted in proportion to the resources used relative to the G.711 codec.
A given systems Media Server port requirements are derived from the call model. The
number of users per Media Server port is estimated based on the average amount of time
each user requires a Media Server resource/port.
01-BD5003-00
PAGE 24 OF 95
4.5
4.6
Xtended Services Platforms are deployed in a cluster with any Xtended Services Platform
about to handle requests destined for any of the deployed applications. Generically, the
Xtended Services Platform uses the Network Server Location API to determine the
Application Server (AS) cluster that should be the recipient of a request.
There can be up to 1,000 Xtended Services Platform nodes per Network Server cluster.
4.6.1
If a socket does not receive anything within 15 seconds, the connection is closed.
01-BD5003-00
PAGE 25 OF 95
The BroadWorks Capacity Planner [2] uses the Web Container dimensioning information
previously mentioned when modeling Xtended Services Platform capacity based on a web
applications general footprint. For example, a BroadWorks Receptionist or Call Center
client would generate more requests and receive more updates within a given busy hour
than a general BroadWorks AssistantEnterprise client user. As such, overall, the Web
Container would be able to support more BroadWorks AssistantEnterprise clients than
BroadWorks Receptionist clients.
4.6.2
The BroadWorks System Capacity Planner [2] uses a transaction weighting model and an
applications traffic footprint when modeling Xtended Services Platform capacity.
4.6.3
Memory allocation: Each BroadWorks application has its own default memory
allocation footprint, as does the Web Container application (in which the web
applications run). Certain combinations of deployed applications are in excess of the
available memory on the server. Although the Xtended Services Platform
automatically adjusts each applications memory allocation to fit into the available
memory, the Xtended Services Platform server would no longer be running at the
recommended memory level for each application and would not follow the generic
capacity models captured in the BroadWorks System Capacity Planner [2].
01-BD5003-00
PAGE 26 OF 95
4.6.3.1
Business Clients
Device Management
UC-Connect
CTI-Connect
Flash Policy (Web Server legacy replacement; required for BroadWorks Call
Manager)
The General User Service and Call Control Xtended Services Platforms would also be the
home for all low penetration applications (for example, specialty applications such as
BWOCTabs, Business client applications in low volume deployments, and Device
Management applications in low volume deployments).
4.6.3.2
BroadWorks Receptionist
Xsi Actions
Xsi Events
01-BD5003-00
PAGE 27 OF 95
4.6.3.3
4.6.3.4
4.6.3.5
Xsi Actions
Xsi Events
01-BD5003-00
PAGE 28 OF 95
4.6.3.6
4.7
Xsi Actions
Profile Servers are deployed in a cluster. RSYNC file replication is used between Profile
Servers to keep files synchronized within the cluster. To increase capacity, additional
nodes are added to the cluster. There can be up to ten Profile Server nodes per Profile
Server cluster.
4.7.1
Memory allocation: Each BroadWorks application has its own default memory
allocation footprint, as does the Web Container application (in which the web
applications run). Certain combinations of deployed applications are in excess of the
available memory on the server. Although the Profile Server automatically adjusts
each applications memory allocation to fit into the available memory, that Profile
server would no longer be running at the recommended memory level for each
application and would not follow the generic capacity models captured in the
BroadWorks System Capacity Planner [2].
01-BD5003-00
PAGE 29 OF 95
4.7.1.1
4.7.1.2
The Profile Server workload, when running the BroadWorks Enhanced Call Center
Reporting applications, is rated in simultaneous requests-per-second reports, which is a
factor of the available CPU. For example, a 12 CPU Unit Profile Server with 12 GB of
RAM would be rated at 750 RPS. The BroadWorks System Capacity Planner [2] uses
this simultaneous requests-per-second reports rating and average report generation
numbers when modeling Profile Server capacity.
4.7.1.3
4.8
Database Server
The Database Server provides a generic Oracle 11g2 database platform that can be used
to support one or more schemas. A Database Server configuration consists of one or
more server platforms that run the Oracle instance and storage, and internal disks or
external SAN, to support the database files.
The number of Database Server instances required for a given solution can vary from one
to four platforms depending on the deployment model. A Database Server can be
deployed in one of four deployment models:
Cluster Redundancy Oracle Real Application Cluster (RAC) providing two DBSs
working in a load balanced cluster using a shared storage SAN
01-BD5003-00
PAGE 30 OF 95
4.8.1
Cluster and Standby Redundancy This includes both the Oracle Real Application
Cluster (RAC) and the Oracle Data Guard.
Database Write Model: Number of input/output operations per second (IOPS) and
throughput requirements to support busy hour traffic load under different input
parameters
Once the database model is defined and validated, the hardware footprint (CPU, memory)
can be derived for the Database Server and storage requirements (IOPS and throughput)
for the given application.
4.8.2
4.8.2.1
Controller caching: 1 GB
01-BD5003-00
PAGE 31 OF 95
4.9
01-BD5003-00
PAGE 32 OF 95
A given WebRTC node supports a fixed number of audio and video transcoding sessions.
01-BD5003-00
PAGE 33 OF 95
Hardware Capacities
The BroadWorks Platform Dimensioning Guide [1] describes the supported hardware
configurations for each BroadSoft server.
The following tables show base server capacity based on CPU for the various supported
CPU Unit footprints, where a CPU Unit is equivalent to a CPU core or thread. For
example, a quad core E5405 CPU would be equivalent to 4 CPU Units, while a quad core
L5520 CPU with hyper-threading per core would be equivalent to 8 CPU Units.
These CPU-based numbers can be used for manual capacity planning as described in
section 6 System Capacity Planning. Numbers vary based on service usage and call
model. For more information, see the BroadWorks System Capacity Planner [2].
Intel Xeib-based Server CPU-based Capacities
BroadSoft Server Type
Application
Network
Media
Xtended
Services
Platform
Element
Management/
Network
Function
Manager
250 managed
objects/nodes
UC-Connect
Messaging
Server
Sharing Server
Video Server
WebRTC
100,000 users
500 audio
20 video
NOTE: When a hyper-threading capable CPU is used with hyper-hyper threading disabled, the
capacity can be multiplied by a factor of 1.5.
01-BD5003-00
PAGE 34 OF 95
6.1
6.1.1
Business Line
Business Trunk
The configuration can be selected from the drop-down menu. After the configuration is
selected, the number of users, user Erlangs, and hold time can be entered. For the
Business Trunk package, the number of simultaneous calls is entered instead of the
number of users. The Apply packaged configuration(s) button is used to apply the
selected call model for the configuration.
For information on the call model for the packaged configurations, see Appendix C: Call
Model for Packaged Configurations.
01-BD5003-00
PAGE 35 OF 95
6.1.1.1
2)
Enter the number of users and adjust the User Erlang/Call Hold time as necessary.
3)
4)
Select the hardware server types for each of the BroadWorks nodes (that is, the
Application Server, Network Server, and so on).
Select the Business Trunking from the drop-down menu for Packaged Configuration
Selection 1.
2)
Enter the number of simultaneous calls and adjust the User Erlang/Call Hold time as
necessary. The number of simultaneous calls is equivalent to the number of trunking
lines.
3)
4)
Select the hardware server types for each of the BroadWorks nodes (that is,
Application Server, Network Server, and so on).
2)
Display the manual configuration settings by clicking on the Toggle View button in the
Manual Configuration area.
3)
6.1.2
6.1.2.1
2)
01-BD5003-00
PAGE 36 OF 95
3)
4)
Select the Business Trunking package from the drop-down menu for Packaged
Configuration Selection 2.
5)
6)
7)
Select the hardware server types for each of the BroadWorks nodes (that is,
Application Server, Network Server, and so on).
Example 2: System with Mixed Standard Residential and Business Trunking but with
Additional Simultaneous Ringing Service Usage
1)
2)
Display the manual configuration settings by clicking the Toggle View button in the
Manual Configuration area.
3)
Update the penetration percentage for the Simultaneous Ringing service. Note that
you must manually compute the weighting for this service. This weighting is for the
whole system and overrides the weighting computed for the mix of the packaged
configurations.
4)
Select the hardware server types for each of the BroadWorks nodes (that is,
Application Server, Network Server, and so on).
6.1.3
6.1.4
01-BD5003-00
PAGE 37 OF 95
The Virtualized Planner worksheet is used for a virtualized system. On this worksheet,
the hardware is selected automatically and can be overridden by user inputs. In automatic
mode, the hardware is selected as a minimum configuration if it can support the load.
Larger or smaller servers can be selected using drop-downs for CPU Units and Memory.
The Virtualized Planner also computes the total disk space requirements (storage,
throughput, and IOPS) as well as the required network bandwidth for each node. Finally,
on the bottom line, the Virtualized Planner reports the total resource requirements for the
system. For the minimum and maximum specifications for each virtualized BroadWorks
node, see the BroadWorks Platform Dimensioning Guide [1]. For virtualization
configuration and supported virtual machines, see the BroadWorks Virtualization
Configuration Guide [3].
6.1.5
Current Packaged Configuration or Manual Call Model Input. This is optional and only
used if the call model is to be altered for additional capacity planning. Selecting
Manual for the packaged configuration uses the input from the manual configuration
area.
Busy CPU percentage: Collected during the busy hour as described in section
10.1.1.3 Worst Case Busy Hour CPU.
Number of simultaneous calls: Collected during the busy hour from the SNMP gauge
executionServer/callpModule/callpStats/bwCallpActiveCalls. This data is optional and
only required for computing the actual user Erlang.
Calls per second: Collected during the busy hour from the SNMP gauge
executionServer/callpModule/callpStats/bwCallpCallsPerSecond. This data is also
optional and only required for computing the actual user Erlang.
The Input to Model button applies the data to the model. The Clear button removes all live
data inputs and changes the planner to its original state.
Note that changes to the memory profile such as the number of users per group or
number of groups per service provider are not able be changed for additional capacity
planning. The initial memory and database profile is always used.
01-BD5003-00
PAGE 38 OF 95
6.1.5.1
6.1.5.2
6.2
Display the live data input area by clicking on the Toggle View button.
2)
3)
Click on the Input to Model button. An initial growth estimate is displayed to the right
of the live data input area.
4)
Select the new hardware server type for the Application Server node. The new
number of users is computed and displayed.
2)
Display the manual configuration area by clicking on the Toggle View button.
3)
Enter a new value for the Simultaneous Ringing service penetration. This new value
can be a delta value if previous usage is unknown. For example, if no packaged
configuration is used when the Input to Model button is selected, then the usage can
be set to 10% to estimate an additional 10% increase in usage.
4)
The new number of users and server requirements is computed and displayed.
6.2.1
IPSec Tunnels
The overall impact of IPSec with ESP encryption ON (the worst-case scenario) is of 4% on
the system (Kernel) processes. With ESP-Null, the overall degradation of the system
is ~1%.
6.2.2
Application Server
The capacity of a given Application Server node is determined by the processing and
memory requirements as defined by the call model.
Using the global call weighting (derived from the call model) an effective CPS can be
determined. The provisioning load is taken into account by determining the amount of
provisioning transactions expected and applying a weighting factor.
Provisioning traffic is generated by the web interface, command line interface (CLI), and
clients (BroadWorks and third party) proxied by the Open Client Server (OCS). An
Application Server web page generates approximately 2.7 OCI transactions per web page
hit. A high concentration of add, delete, and modify transactions have more impact on the
server.
These are the assumptions for the following example:
Erlang = .2
01-BD5003-00
PAGE 39 OF 95
Formula
Example
Base CPS
33 CPS
Base Provisioning
Transactions per
Second
33 TPS
Weighted CPS
33 / 1.2 = 27.5
.2 * 60 / 3 = 4
Number of
Provisioning
Transactions per
Second
Provisioning
Weighting Factor
.5 + .5 * Provisioning TPS/Base
provisioning TPS
.5 + .5 * 34.375 / 33 =
1.021
Number of Users
CPS
Weighted CPS/Provisioning
weighting factor
A given servers memory requirements are determined from the memory required for the
database, active calls, and additional cached data per subscriber. The following
assumptions are used for memory requirements:
Execution Server (Call Processing Server) heap size = 25% of RAM; at most 60% in
use during busy hour.
Formula
Example
Maximum Database
Size
RAM * 3/8
8 * 3/8 = 3 GB
Maximum Number of
Users based on DB
Size
01-BD5003-00
PAGE 40 OF 95
Value
Formula
Example
Maximum Number of
Users based on Call
Footprint
Maximum Number of
Users based on
Memory
Requirements
40591
The total number of users supported on a given hardware box is the smallest of the
number of users above. In the example, the maximum number of users based on
processing requirements is 24,240 and based on memory requirements is 40,591.
Therefore, the maximum number of users is 24,240.
The total number of Application Server clusters can then be determined from the required
number of users. From the example above, if this system needs to support 60,000 users,
then three Application Server clusters would be required.
6.2.3
Network Server
Each Network Server node can process a maximum number of transactions per second
(TPS). To estimate the number of Network Server nodes required for a given deployment,
the total transactions required must be calculated.
The total TPS required for a system is estimated as the sum of the following:
Call Redirection Traffic The total number of calls that use the Network Server for
redirection processing. This is usually the total number of external incoming/outgoing
calls but in some deployments (for example, IMS) it may include intra-group calls.
Media Server Selection Requests The total number of Application Server initiated
requests to locate a Media Server resource.
Access-side Registration and Call Traffic The total number of registrations and
calls initiated and routed to the Network Server (when configured). This is a system
configuration option.
User Locator Requests: The total number of user logins/location requests from the
web portal, OCS, or Xtended Services Platform.
Erlang = .2
01-BD5003-00
PAGE 41 OF 95
Value
Formula
Example
Base TPS
150 TPS
0.2 * 60 / 3 = 4
Call Redirection
Transactions per Hour
4 * (0.5 + 0.5) = 4
Access-side
Transactions per Hour
If configured:
User Locator
Requests per Hour
Web logins per user per hour + Thirdparty client logins per user per hour
1.5
Media Server
Selection Requests
per Hour
0.2 * 4 = 0.8
Total Number of
Users per Network
Server Node
The total number of Network Server nodes can then be determined from the required
number of users. From the example above, if this system needs to support 120,000
users, then two Network Server nodes would be required, plus one for redundancy.
Therefore, there would be a total of three nodes.
6.2.4
Media Server
A Media Servers capacity is divided among audio IVR/conferencing, video transcoding,
and video conferencing. The number of CPUs and resources for each are controlled via
settings in the command line interface (CLI) described in section 7.1 Media Server
Engineering Rules.
To estimate the total number of Media Servers required for a given deployment, a
calculation is made of the number of users that can be supported for audio IVR, audio
conferencing, video transcoding, and video conferencing.
To determine the Media Server requirements for audio IVR/conferencing, the number of
users per port is calculated. To do this calculation, first the call model must be used to
estimate the percent of calls that require a Media Server audio resource. The average
duration of these calls must also be determined from the call model.
These are the assumptions for the following example:
Erlang = .2
01-BD5003-00
PAGE 42 OF 95
Formula
Example
600 ports
0.2 * 60 / 3 = 4
Average Erlang of
Media Server IVR
Resources in Busy
Hour
0.18 * 4 * 30 / 3600 =
0.006
Average Erlang of
Media Server Audio
Conferencing
Resources in Busy
Hour
1 * 0 + 1.25 * 0 + 1.7 *
1 + 2 * 0 = 1.7
Conference Port
Weighting
1 * 0 + 2 * 0 + 5 * 1 = 5
Number of Weighted
IVR Ports
Number of Weighted
Conferencing Ports
600 * 0.25 / 5 = 30
Number of Users
based on IVR
Number of Users
based on
Conferencing
Total Number of
Users per Media
Server Node Based
on IVR/Conferencing
requirements
6900
To determine the number of users supported for video transcoding, the call model is again
used to determine the duration, frequency, and type of transcoding required. Video codec
determines the amount of time a video transcoding thread is used.
These are the assumptions for the following example:
Formula
Example
Number of Video
Transcoding
Processes
01-BD5003-00
PAGE 43 OF 95
Value
Formula
Example
Transcoding Duration
30 * 1/14 = 2.14
Average Erlang of
Media Server
Resources in Busy
Hour
Total Number of
Users per Media
Server Node based on
Video Transcoding
Requirements
3 * 4205 = 12616
To determine the number of users supported for video conferencing, the call model is
again used to determine the duration and frequency of video conferencing usage. Video
codec determines the weighting.
These are the assumptions for the following example:
Formula
Example
Number of Video
Conferencing Ports
6000
Average Erlang of
Media Server
Resources in Busy
Hour
0.005 * 4 * 3 * 600 /
3600 = 0.01
Port Weighting
70
Weighted ports
6000 / 70 = 85
Total Number of
Users per Media
Server Node Based
on Video
Conferencing
Requirements
85 * 100 = 8500
The number of users per Media Server is the lower of the above three calculations (users
based on audio resources, users based on video transcoding, and users based on video
conferencing). For the previous example, this would be 6814.
The total number of Media Server nodes can then be determined from the required
number of users. From the example above, if this system needs to support 60,000 users,
then nine Media Server nodes would be required, plus one for redundancy. Therefore,
there would be a total of ten nodes.
BROADWORKS SYSTEM ENGINEERING GUIDE
01-BD5003-00
PAGE 44 OF 95
6.2.5
CCC2 penetration = 0%
Value
Formula
Example
Base TPS
500 TPS
0.2 * 10 = 2
BroadWorks
AssistantEnterprise
Transactions per User
per Hour
0.1 * ( 1 * 18 + 2 * 3) =
2.4
OCS (OCI-P)
Transactions per User
per Hour
2.4 + 0 = 2.4
OCS (OCI-C)
Transactions per User
per Hour
4 * (0.05 + 0) * 4= 0.8
Total Number of
Users
01-BD5003-00
PAGE 45 OF 95
The total number of Xtended Services Platform nodes can then be determined from the
required number of users. From the previous example, if this system needs to support
300,000 users, then one Xtended Services Platform node would be required, plus one for
redundancy, for a total of two nodes.
6.2.6
Network bandwidth
Heap usage
CPU
Number of devices
Device type complexity which determines the amount of incoming traffic on a phone
reboot/reset:
Number of GET requests
Amount of controlled rebuild traffic (for example, rebuilding all devices at a group level
due to a template change).
Amount of controlled phone resets (for example, due to a rollout of new firmware).
Background traffic:
6.2.7
6.2.8
01-BD5003-00
PAGE 46 OF 95
UC-Connect
Each UC-Connect node can process a maximum number of transactions per second
(TPS). To estimate the number of nodes required for a given deployment, the total
transactions required must be calculated.
UC-Connect transactions consist of the following:
Login/logout
Call creation and call state changes sent from the Application Server
Formula
Example
Base TPS
250 TPS
Outgoing call
transactions per user
per hour
1.0 * 4 = 4.0
Click To Dial
transactions per user
per hour
01-BD5003-00
PAGE 47 OF 95
Formula
Example
Base ports
1300 ports
13,000
Another aspect of AMS capacity planning is to ensure enough memory is available for
registrations and calls. The following assumptions are used for memory requirements:
Signaling server heap size = 50% of RAM; at most 60% in use during busy hour.
Formula
Example
29 + 11 * 0.1 = 30.1
Maximum number of
users based on
memory footprint
The total number of users supported on a given hardware box is the smallest of the
number of users above.
The total number of Access Mediation Server clusters can then be determined from the
required number of users. A minimum of two nodes are required for each cluster. Four
are required for geographic redundancy.
The System Capacity Planner [2] assumes there is no geographic redundancy. If this is
required, then the number of servers should be doubled.
6.2.11 Service Control Function
Each Service Control Function (SCF) node can process a maximum number of
transactions per second. To estimate the number of nodes required for a given
deployment, the total number of transactions required must be calculated. Transactions
for the SCF come from IN trigger-based originations and terminations as well as message
waiting indicator (MWI) notifications.
01-BD5003-00
PAGE 48 OF 95
7.1
7.1.1
Processor allocation This is the number of available processes for each service.
This is based on the number of CPU cores and can be configured via the CLI.
RTP ports This represents the maximum number of simultaneous RTP streams that
the Media Server can support. This value has a maximum of 4000 and can be
lowered via CLI configuration. The maximum is 1000 for virtualized configurations.
Media Server resources define the limits that apply to the following services: Interactive
Voice Response (Audio/Video), Conferencing (Audio/Video), Fax Messaging, Stream
Mixer (used for call recording), and Repeaters (used for Lawful Intercept and In-Call
Service Activation). Resource allocations can be tuned to favor one service over another.
For example, a Media Server can be tuned to be IVR-centric or conferencing-centric by
optimizing the capacity numbers for that service.
The main controls that affect resource allocation are as follows:
7.1.2
01-BD5003-00
PAGE 49 OF 95
Video processes are further divided into processors dedicated to either transcoding or
conferencing. The CLI parameter, videoTranscodingResourcesRatio, sets the percentage
of video processors dedicated to transcoding (the remaining parameters are dedicated to
video conferencing). By default, the videoTranscodingResourcesRatio defaults to 100.
For a video conferencing-only Media Server, the videoTranscodingResourcesRatio should
be set to 0.
7.1.3
If the Media Server hardware platform is listed in the hardware_cap.csv file located in
/usr/local/broadworks/bw_base/conf, the number of Media Server ports for this server
is equal to the lesser of the hardware_cap.csv file value or the numPorts= value listed
in the license.txt file read at server start-up.
If the Media Server hardware platform is not listed in the hardware_cap.csv file
located in /usr/local/broadworks/bw_base/conf, the number of Media Server ports for
this server is equal to the lesser the numPorts= value listed in the license.txt file or the
port number calculated from the following CPU and memory based formulas:
The CPU-derived port number is based on the following formula:
CpuMaxPorts = #_of_CPU X CPU_Frequency/3
where the #_of_CPU and CPU_Frequency are those provided by cat
/proc/cpuinfo. CPU_Frequency is expressed in MHz (for example, 2 GHz would be
2000 MHz).
A final memory-based port calculation is done to ensure that the server can support
the number of ports calculated based on CPU. The memory-based calculation uses
the lesser of the total physical memory on the server (AvailMem) or shared memory
(ShmMem) (both expressed in MB) and takes into account IVRResourcesRatio that
can be configured under the CLI MS_CLI/System level.
where ShmMem can be obtained using the df k command and looking at the
/dev/shm partition size. By default, this is set to 50% of the RAM on a box with 6 GB
or less and 66% on a box with more than 6 GB.
The final maximum generic port number (maxGenericPorts) is the lesser of licensed
ports, CpuMaxPorts, and MemMaxPorts.
01-BD5003-00
PAGE 50 OF 95
7.1.4
7.1.4.1
Weighting
G.711 IVR
G.711 Conferencing
G.722 IVR
G.722 Conferencing
G.726 IVR
G.726 Conferencing
G.729 IVR
G.729 Conferencing
1.5
6
1.25
2
1.7
8
AMR-NB IVR
2.5
AMR-NB Conferencing
11
AMR-WB IVR
AMR-NB Conferencing
23
Video IVR
FAX
EVRC-A IVR
EVRC-A Conferencing
14
EVRC-NW IVR
12
EVRC-NW Conferencing
56
The number of RTP sessions is limited to 4000 on a bare metal system and 1000 on a
virtualized system.
A 4000 port Media Server could support 4000 G.711 ports or 3200 (4000/1.25)
G.726 ports.
01-BD5003-00
PAGE 51 OF 95
7.1.5
7.1.5.1
H.264 CIF
1/14
H.264 QCIF
1/23
H.263 CIF
1/41
H.263 QCIF
1/55
Given that transcoding is a fraction of playback time, a given transcoding process is only
involved in a fraction of the actual call hold time and can thus successively deal with many
calls within an average hold time. For example, if the average call hold time for a Media
Server call requiring transcoding is 30 seconds with a 20-second playback file requiring
H264 CIF transcoding, the transcoding time for the 30-second call would be (20/14) 1.4
seconds. Therefore, in that 30-second call hold time window, this transcoding process
could theoretically handle 21 other transcodings given an even distribution of calls.
In addition, the Media Server caches transcoded files. Therefore, a file that was
previously transcoded does not require re-transcoding. This reduces the number of actual
transcodings required on the system as greetings and prompts caching hits a steady state
over a period of time.
01-BD5003-00
PAGE 52 OF 95
The BroadWorks System Capacity Planner [2] can be used to help calculate the number
of Media Servers and video processes per Media Server that would be required based on,
a) target transcoding environment, b) overall video penetration, c) video-enabled service
penetration rate, and d) average file size.
7.1.5.2
7.1.5.3
7.1.5.4
7.1.6
Resolution
Conferencing Services
Monitoring Services
CIF
70
195
4 CIF
185
430
720p HD
330
850
7.1.7
01-BD5003-00
PAGE 53 OF 95
The following describes how the Media Server memory behaves for audio and video
playout, as well as voice messaging recording:
Playout Memory Requirements: IVR memory usage for IVR playout actions such as
announcements or treatments, Music On Hold, or IVR prompts is as follows:
Memory_Usage = length_of_file_in_sec x (Codec_Sampling_Rate)
This works out to approximately 500 KB per minute for G.711 audio and 5 MB per minute
for video. IVR memory is released as soon as the file playout ends.
Voice Mail Recording: IVR memory usage for voice mail recording is as follows:
memory_usage = (length_of_greeting_in_sec x Codec_Sampling_Rate) +
(min_duration_of_recording_in_sec x (2*Codec_Sampling_Rate))
where min_duration_of_ recording_in_sec is 60 seconds
The Media Server reallocates 60 seconds worth of memory for each recording. Once
used up, the Media Server allocates memory in 30-second increments until the recording
ends or maximum recording length (configured on the Application Server) is reached. In
general, 60 seconds is a good value to use in calculations for general recording memory
usage.
On greeting playout, memory is released when the greeting playout ends. For memory
used by recording, memory is released when the recording sessions end (around send
mail time).
A good rule of thumb for a G.711 voice mail recording is 1 MB per recording.
7.2
Weight
CIF or smaller
120
4CIF or smaller
345
720p HD or smaller
520
Audio codecs vary by computational complexity and are thus weighted differently. There
is a separate set of weights for audio mixing versus IVR. The Capacity Planner is not
currently taking into account the IVR usage because it is assumed to be minimal
compared to the mixing usage.
Codec
Mixing Weight
IVR Weight
u-law, A-law
01-BD5003-00
PAGE 54 OF 95
7.3
Codec
Mixing Weight
IVR Weight
G.722
9.3
1.8
G.729
1.7
7.3.1
Media files:
Provisioning
Value
Formula
Example
Steady State
Replication Bandwidth
1 KB per second
1 KB per second
Call Replication
Bandwidth
Registration
Replication Bandwidth
RPS * 1400
= 15 * 1400 = 21 KB per
second
01-BD5003-00
PAGE 55 OF 95
Value
Formula
Example
File Replication
Bandwidth
Provisioning
Replication Bandwidth
Total Replication
Bandwidth
= 1 + 23.1 + 21 + 44 +
6.6 = 89 KB per second
In the above example, the Application Server busy hour peer-to-peer bandwidth
requirements would be 89 KBps or (89 KBps * 8 bits) = 712 Kbps.
7.3.2
An Application Server with 100 K users experiences a primary server failure at busy
hour when traffic rates are at 55 CPS.
There are four Network Server nodes in the Network Server cluster.
Value
Formula
Example
Steady State
Replication Bandwidth
1 KB per second
1 KB per second
User Hosting
Replication Bandwidth
= 55 * 1 * 560 = 31 KB
per second
Replication Bandwidth
between the source
Network Server and
any one peer
Sum of above
TOTAL Replication
Bandwidth required
from the source
Network Server to
ALL peers
= 31K + 1K = 32 KB
= 32K * 3 = 96 KB
01-BD5003-00
PAGE 56 OF 95
In this example, the steady state busy hour replication bandwidth between a Network
Server and its peer is ~1 KBps or 8 KBps. In the event of a single Application Server
cluster resulting in a mass migration of users at busy hour, the replication bandwidth
requirement between peers would increase to 32 KBps or 256 KBps, but only for the time
required to migrate all users (for example, ~100K/55 CPS = 1,800 seconds).
7.4
7.4.1
To simplify the following calculations, we assume that fax messaging (if present) is folded
into standard voice messaging.
7.4.1.1
01-BD5003-00
PAGE 57 OF 95
7.4.1.2
%_retrieval_to_deposit_ratio Ratio of how many message retrievals there are permessage deposit (default 50%)
With the above variables, the number of overall messages in/out can be calculated as
follows:
msg_in/sec = (AS_CPS * total_AS) *(%_incoming _calls *
(%_Unanswered_incoming_calls + %_Busy_incoming_calls)) *
%_Diverted_VM_call_deposited
msg_out/sec = (AS_CPS * total_AS) *(%_incoming _calls *
(%_Unanswered_incoming_calls + %_Busy_incoming_calls)) *
(%_Diverted_call_deposited * %_retrieval_to_deposit_ratio)
BROADWORKS SYSTEM ENGINEERING GUIDE
01-BD5003-00
PAGE 58 OF 95
AS_CPS 72
total_AS_ 5
%_Unanswered_incoming_calls 45%
%_Busy_incoming_calls 5%
%_Diverted_call_deposited 30%
%_retrieval_to_deposit_ratio 50%
msg_out/sec = (72 *5) *(0.5 *(0.45 +0.05)) *(0.3 *0.5) = 14 messages in/sec
For the above examples, the overall traffic throughput attributable to message storage
would be:
It is important to note that the bytes_in/sec flows between the storage and all Media
Servers, while the bytes_out/sec flows between the storage and all Application Servers.
7.5
01-BD5003-00
PAGE 59 OF 95
Total Bandwidth
750
Tx: 7 MBps
Rx: 5 MBps
Rx: 1 MBps
Tx: 15 MBps
Rx: 10 MBps
Rx: 2 MBps
Tx: 30 MBps
Tx: 5 MBps
Rx: 20 MBps
Rx: 4 MBps
1500
3000
01-BD5003-00
PAGE 60 OF 95
8.1
Recommended Guideline
<1000
<100
Number of groups
Number of devices
Number of administrators
Number of departments
Enterprise trunks
Number of users
<30000
01-BD5003-00
PAGE 61 OF 95
Items
Recommended Guideline
Number of departments
<1000
Auto Attendants
Hunt groups
Conference Bridges
Call Centers
Trunk groups
Authorization codes
<500
<100
Number of conferences
Number of recordings
<1000
<100
01-BD5003-00
PAGE 62 OF 95
Items
Recommended Guideline
entries
8.2
Recommended Guideline
<30 million
<10 million
<10 million
<32 K
<32 K
01-BD5003-00
PAGE 63 OF 95
9.1
9.1.1
CPU Usage
A quick and easy indicator of any servers health is averaged CPU usage. Averaged
CPU usage can be obtained using SAR or vmstat. A five-minute averaging window is
recommended. Averaged Busy CPU time is calculated by adding %usr (User time) +
%sys (System time).
NOTE: A one-time reading that moves a server into another range for one five-minute interval
can usually be ignored as an anomaly, unless the high reading occurs regularly. For example,
the majority of averaged busy CPU readings are <60%, but periodically throughout the day, the
reading increases to 75% busy. This 75% high water value spike should be used to identify the
servers operating range since at that given time interval, the server is susceptible to the issues
associated with that operating range.
Operating Range
Acceptable
Comment
No resource bottleneck.
01-BD5003-00
PAGE 64 OF 95
Operating Range
Marginal
Poor
Critical
85%
Comment
Possibility of bottleneck at higher ends of the range.
Significant bottleneck.
Critical bottleneck.
NOTE: Application Server clusters using provisioning to secondary capability need to ensure
that the combined CPU Busy usage for both the primary and secondary servers do not surpass
the guidelines listed above.
Network Server clusters need to ensure that in the event of the failure of one of the Network
Servers, the other Network Servers in the cluster can handle the CPU usage of the down server.
For example, in a two Network Server cluster, each Network Server should be able to handle the
combined CPU usage of both Network Servers.
9.1.2
Paging
Excessive paging on a server can impact resource usage and in turn impact BroadWorks.
Memory usage can be impacted by non-application specific events (for example, opening
a CLI session, using a VI editor to edit a large file, compressing/zipping files). In ideal
circumstances, a BroadWorks server does not undergo paging.
01-BD5003-00
PAGE 65 OF 95
The SAR utility can be used to obtain five-minute averaged paging rates (pswpin/s).
Constant non-zero values on any server should be an indication that more memory is
required. The impact of periodic spikes depends on the value. In these cases, the high
value spike should be used. For example, every day there are a few non-zero readings
with the high being 55. The 55 reading should be used to identify the operating range.
NOTE: A one-time reading can usually be ignored as an anomaly. For example, pgscan/s and
pswpin/s is always 0.00 except for one five-minute period on one day.
Operating Range
Ideal
Acceptable
pswin/s
0.00
Periodic 1
Comment
The server is not paging and does not need more
memory.
The server generally has enough memory.
The few paging spikes that do occur, do not impact
performance.
Poor
Critical
Periodic 2
AND/OR constant
paging
9.1.3
Disk Activity
Although BroadWorks applications tend not to be I/O blocking, excessive disk activity can
be an indication of too much I/O traffic such as when writing to disk. Excessive writing to
disk can be caused by a number of activities that can be corrected, such as logging levels
set too high for a server. It is important to monitor disk activity to ensure that disks are not
bottlenecked.
Disk activity can be monitored using the iostat utility by collecting five-minute averaged
readings on average disk service time and average disk busy. The svctm (average
service time of the disk) and %util (percentage of time the disk is busy) parameter
provides an indication of disk activity.
01-BD5003-00
PAGE 66 OF 95
Operating Range
Ideal
Marginal
Poor
9.2
Comment
The server I/O function is
operating normally.
The I/O functions may be
bottlenecked, but the application
should not be impacted.
The I/O functions are
bottlenecked; need to check
thread blocking to see if
application is impacted.
9.2.1
Comment
Execution Server post-collection heap size should
not surpass 60% of allocated permanent size.
Maximum allocated heap size = 8 GB (32 GB RAM)
9.2.2
Database Usage
The Application Server TimesTen database is assigned a fixed permanent size allocation
at installation. The database grows as the system scales. It is important that the
database permanent size in use does not grow beyond 90% of the maximum allocated
permanent size.
The database allocated permanent size is set at installation and should not be set to
greater than 38% of available physical memory.
Database Permanent Size in Use Guidelines
90% of allocated permanent size
Comment
Database size should not surpass 90% of allocated
permanent size.
Maximum allocated permanent size =
12 GB (32 GB RAM)
01-BD5003-00
PAGE 67 OF 95
9.2.3
Although not a hard resource limit such as CPU usage, operating the server above
Acceptable Total MPS Range reduces server capacity. Operating a server substantially
higher (for example, > 50% over) can push the server CPU usage into the Poor or Critical
range.
9.2.4
All provisioning traffic, regardless of the source, uses the OCI-P interface. OCI
transactions per second can be derived by dividing the OCI-P total transactions collected
by the collection period in seconds.
01-BD5003-00
PAGE 68 OF 95
As a rough guideline, the acceptable Application Server OCI PTPS rate for the general
categories of server platforms are as follows:
Platform
Intel Xeon
Although not a hard resource limit like CPU usage, operating the server above the
Acceptable OCI TPS Range reduces server capacity. Operating a server substantially
higher can push the server CPU usage into the Poor or Critical range.
9.2.5
to the primary device of the original called party (for an intra-group call) or to the
network element of the original called party (for a call to the PSTN). Delays incurred
by a dip to the Network Server are removed from the measurement. This
measurement is intended to reflect internal queuing, scheduling, and processing
delays.
01-BD5003-00
PAGE 69 OF 95
Each of the above average delays should be polled and reset every 15 minutes. A
one-time high reading can be discarded. Average delay times should be within the
following guidelines.
Gauge
bwSipStatsSetupSignalDelay
50
bwSipStatsAnswerSignalDelay
20
bwMGCPStatsDialToneDelay
20
bwMGCPStatsSetupSignalDelay
50
bwMGCPStatsAnswerSignalDelay
20
For maximum high water mark delays readings, the rolling daily distribution of all
maximum high water mark delays should be polled and reset every 15 minutes and
compared to the following acceptable ranges.
Distribution Percentage of Readings
Acceptable Range
80%
500 msec
95%
1.5 sec
100%
2.5 sec
0%
A server performing above the acceptable range could be an indication that the server is
over capacity. In general, other indicators such as CPU usage provide the same result. A
server that is not nearing capacity, but reporting high maximum delay queue statistics may
be experiencing other non-performance related issues. (BroadSoft should be contacted to
help identify the root cause).
9.3
9.3.1
01-BD5003-00
PAGE 70 OF 95
The post Java garbage collection heap size needs to be monitored daily and should
always be 60% of the allocated heap. As the heap increases towards 60%, it may be
possible to increase the maximum allocated heap by adding more memory to the server.
Allocated heap size can be increased to a maximum of 8 GB with 32 GB of physical
memory present.
Post-Collection Heap Size Guidelines
Comment
9.3.2
Database Usage
The Network Server TimesTen database is assigned a fixed permanent size allocation at
installation. The database grows as the system scales. It is important that the database
permanent size in use does not grow beyond 90% of the maximum allocated permanent
size.
The database allocated permanent size is set at installation and should not be set to
greater than 48% of available physical memory. By default, database temporary size
should be sized to 1/6 of permanent size.
Database Permanent Size in Use Guidelines
90% of allocated permanent size
Comment
Database size should not surpass 90% of
allocated permanent size.
Maximum allocated permanent size =
24 GB (48 GB RAM).
9.3.3
Intel Xeon
Although not a hard resource limit such as CPU usage, operating the server above the
Acceptable Total MPS range reduces server capacity. Operating a server substantially
higher (for example, > 50% over) can push the server CPU usage into the Poor or Critical
range.
01-BD5003-00
PAGE 71 OF 95
9.3.4
Comment
Acceptable
25
Poor
> 25
For primary queue maximum high water mark delays, the rolling daily distribution of all
maximum high water mark delays should be collected and compared to the following
acceptable ranges.
Distribution Percentage of Readings
Acceptable Range
80%
500 msec
95%
1.5 sec
100%
2.5 sec
0%
A server performing above the acceptable range could be an indication that the server is
over capacity. In general, other indicators such as CPU usage provide the same result. A
server that is not nearing capacity, but reporting high maximum delay queue statistics may
be experiencing other non-performance related issues. (BroadSoft should be contacted to
help identify the root cause).
9.4
9.4.1
Jitter
Excessive jitter in the absence of packet loss is often a sign of some network condition (for
example, congestion, queuing delays in network equipment, and so on) preventing RealTime Transport Protocol (RTP) packets from being delivered in a timely manner.
Excessive jitter can lead to voice quality issues.
01-BD5003-00
PAGE 72 OF 95
The Media Server maintains two measurements for jitter, msRtpReceivedPacketJitter, and
msRtpTransmitJitter. Both measurements are in units of microseconds. The
msRtpReceivedPacketJitter measurement is a cumulative measurement tracking the jitter
of incoming RTP voice packets experienced by each RTP session. The
msRtpTransmitJitter measurement is a cumulative measurement tracking the jitter
reported by remote RTP endpoints.
Since these measurements are cumulative, it is important to observe how these
measurements trend over time as more RTP sessions are handled. For a given time
period, the average receive-packet jitter per RTP session and average transmit-packet
jitter per RTP session are calculated as follows.
Average Jitter
Formula
Note that selecting a longer time period may mask large intermittent jitter increases.
Average received packet jitter per RTP session of 40 milliseconds (that is, 40000
microseconds) or less is considered acceptable.
9.5
Intel Xeon
01-BD5003-00
PAGE 73 OF 95
User traffic pattern does not change Per-user Erlang contribution remains at the
same level as the system grows.
A change in either of these two items would require a recalculation of growth estimate.
As described in section 6.1.5 Use Live Data Input, the BroadWorks System Capacity
Planner [2] live input area can be also be used to automate the growth estimate
procedure.
CPU usage
DB permanent size
A server can continue to scale as long as these indicators are within acceptable range.
For performance guidelines, see section 8 Server Provisioning Guidelines. To estimate a
servers growth potential, we first collect information on the above key resource indicators
and the number of current users. Then we can calculate the per-user contribution to these
key indicators and plot out the linear growth of each indicator versus users to see when
each one hits a bottleneck condition (for example, reaching the acceptable limit for that
resource). Since heap size and database size are a function of server physical memory,
these bottlenecks can sometimes be addressed easily by adding more physical memory
to the server (up to the supported 32 GB). CPU resource is a function of the server
platform and tends to be a hard bottleneck.
To use this procedure, you need a certain level of growth to have already occurred on the
cluster so that the key resource indicators can start tracking. In general, on a small
configuration system you could start using this procedure after at least 500 users have
been provisioned, while on a medium to large configuration, these indicators generally
start tracking in a linear fashion after 4,000 to 5,000 users have been provisioned.
01-BD5003-00
PAGE 74 OF 95
804212K is the heap size after a full garbage collection and 4194240K is the maximum
heap size. After this full collection, 804212 /4194240 or 19.1% of the 4 GB heap is in use.
To obtain the post-collection heap size for the purposes of this procedure, a number of
busy-day (days that have the highest traffic)
/var/broadworks/logs/appserver/XSOutputXX.log files should be analyzed. The high value
full post-collection heap sizes can be obtained using a simple awk statement such as:
cat /var/broadworks/logs/appserver/XSOutput24.log |awk '$2=="[CMS-concurrentreset:"{getline;print}' >> post-collection_heap.out
You can now obtain the maximum post-collection heap size from the postcollection_heap.out file. For example, if post-collection_heap.out contains the following:
231662.434: [GC 231662.434:
811655K->791912K(1572800K),
231773.201: [GC 231773.201:
809310K->789781K(1572800K),
231883.193: [GC 231883.194:
821889K->803170K(1572800K),
231993.503: [GC 231993.503:
812462K->793207K(1572800K),
232104.661: [GC 232104.661:
800871K->781200K(1572800K),
232221.538: [GC 232221.538:
806474K->786846K(1572800K),
232335.614: [GC 232335.614:
803134K->783621K(1572800K),
232458.578: [GC 232458.579:
794432K->774487K(1572800K),
232579.809: [GC 232579.809:
789489K->769703K(1572800K),
[ParNew: 24448K->0K(24512K),
0.0858999 secs]
[ParNew: 24448K->0K(24512K),
0.0798135 secs]
[ParNew: 24448K->0K(24512K),
0.0923137 secs]
[ParNew: 24448K->0K(24512K),
0.0686410 secs]
[ParNew: 24448K->0K(24512K),
0.0774966 secs]
[ParNew: 24448K->0K(24512K),
0.0715919 secs]
[ParNew: 24448K->0K(24512K),
0.0856315 secs]
[ParNew: 24448K->0K(24512K),
0.0924747 secs]
[ParNew: 24448K->0K(24512K),
0.0707344 secs]
0.0856301 secs]
0.0795525 secs]
0.0920691 secs]
0.0683859 secs]
0.0772532 secs]
0.0713419 secs]
0.0853518 secs]
0.0922371 secs]
0.0705055 secs]
then 803170 is the maximum post-collection heap size and 1572800 is the configured
maximum heap size.
10.1.1.2 Database Permanent Size
Database permanent size in use can be obtained using the following command sequence.
bwadmin@as1$ ttIsql
Command> dssize;
PERM_ALLOCATED_SIZE:
PERM_IN_USE_SIZE:
BROADWORKS SYSTEM ENGINEERING GUIDE
1310720
929406
01-BD5003-00
PAGE 75 OF 95
PERM_IN_USE_HIGH_WATER:
TEMP_ALLOCATED_SIZE:
TEMP_IN_USE_SIZE:
TEMP_IN_USE_HIGH_WATER:
936963
348160
4597
71409
The PERM_IN_USE_SIZE parameter shown above indicates that 929 MB is in use out of
1.31 GB (PERM_ALLOCATED_SIZE) available or 71% (929/1310) of the available
database.
10.1.1.3 Worst Case Busy Hour CPU
Worst Case Busy Hour CPU is obtained by analyzing SAR output for a number of busydays. One needs to look for the highest sum that is obtained by adding the following
numbers together: user CPU usage, system CPU usage, and, if this information is
available, nice CPU usage.
Note that any anomaly (for example, a one-time, one-day low reading) should be
discarded. Wait for IO (wio) CPU should not be included. This high reading should occur
during high traffic hours. If the low reading corresponds to a time in which an item such as
a system backup is running, it should be disregarded. If the following represents the CPU
usage peak that in general reoccurs over multiple days:
06:30:00
06:35:00
06:40:00
06:45:00
06:50:00
06:55:00
18
21
19
18
18
20
6
7
6
5
5
6
7
3
3
3
7
3
69
69
73
74
70
71
64345
This number represents the total number of all types of users on the Application Server
(for example, real users and virtual users such as Voice Portals, Hunt Groups, Call
Centers) and as such, this is not the best indicator of users for the purpose of this
procedure.
For this procedure, the number of real trunking and non-trunking users should be used in
all calculations. This can be obtained from the following SNMP gauge.
executionServer/systemModule/systemStats/bwNumberOfNonVirtualUsers 35092
01-BD5003-00
PAGE 76 OF 95
where:
MAX_ALLOWED_ALLOC_PERM = 38% of MAX_SERVER_MEM
MAX_ALLOWED_HEAP = 25% of MAX_SERVER_MEM
The following example demonstrates the growth estimation procedure:
Given the following data:
Number of Users
35092
Worst Case Busy Hour CPU = 28% busy
Database Perm Size = 929406
(out of a allocated size of 1310720)
Post Full Collection Heap Size = 803170 (out of a allocated size of
1572800)
1)
First, calculate the per-user resource contribution (rounding down the users to
35,000).
Then extrapolate the maximum number of users for each resource indicator:
CPU
Acceptable CPU is < 60% busy.
max_num_users_based_on_cpu = 60/Busy_CPU_Per_User= 60/0.0008 = 75000
users
Heap
The current configured allocated heap is 1572800. 60% of this allocated heap value
would be 1572800 X 0.6 = 934680.
max_num_users_based_on_current_heap =
934680K/Post_Collection_Heap_Per_User = 934680K/22.9K =
40815 users
This server currently has 6 GB of memory. This server platform can support a memory
upgrade to 16 GB, so the maximum allocated heap could be increased to 4 GB
(4194240). Sixty percent (60%) of the allocated heap would then be 4194240 x 0.6 =
2516544, which would result in the following.
max_num_users_based_on_max_heap = 2516544K/Post_Collection_Heap_Per_User
= 2516544K/22.9 = 109892 users
BROADWORKS SYSTEM ENGINEERING GUIDE
01-BD5003-00
PAGE 77 OF 95
Database
The current configured allocated PERM_ALLOCATED_SIZE is 1310720K. Ninety
percent (90%) of this is 1310720 X 0.9 = 1179648.
max_num_users_based_on_current_db = 1179648/DB_Perm__Per_User =
1179648K/26.5K = 44515 users
This server currently has 6 GB of memory. If the server platform can support a memory
upgrade to 16 GB then the maximum PERM_ALLOCATED_SIZE could be increased to
6G (6291360). Ninety percent (90%) of the PERM_ALLOCATED_SIZE would then be
6291360 X 0.9 = 5662224, which would result in the following.
max_num_users_based_on_max_db = 5662224/DB_Perm__Per_User =
5662224K/26.5K = 212668 users
The bottleneck is a heap size since it is the lower of the user values and restricts the
server growth to an estimate of 40,000 users. Since this server can be expanded in terms
of memory, increasing the server to 16 GB changes the bottleneck and the maximum
estimated number of users.
max_num_users_based_on_cpu = 75000 users
max_num_users_based_on_max_heap = 109892 users
max_num_users_based_on_max_db = 212668 users
With 16 GB, the bottleneck is now CPU and restricts the growth to an estimate of 75,000
users.
10.1.4 Revisit Growth Estimate
Once a maximum growth estimate is obtained, this procedure should be rerun periodically
as the server continues to scale (approximately every addition of 5,000 users) to ensure
that user versus key resource indicator is tracking in a linear fashion. Initially, one would
expect a linear tracking with a margin of error no worse than +/-10%. As the server growth
reaches the higher end of the range (for example, > 50% of the original expected users),
the tracking margin of error should decrease to be within +/-5%. Any larger margin
between the original growth estimate and recalculation may be the result of a footprint
change in per-user traffic or service assignment. Key performance indicators (for
example, call attempts, calls per second, SIP messages per second, and OCI messages
per second) as defined in the BroadWorks Maintenance Guide should be collected prior to
the calculation of any growth estimate to ensure that the per-user footprint has not
changed.
10.1.4.1 Server Health
It is critical that as your server grows, you continually monitor the health of the server to
ensure that all key resource indicators and performance indicators are within acceptable
ranges. For a view on what key indicators need to be monitored, see section 18 in the
BroadWorks Maintenance Guide [4].
BROADWORKS SYSTEM ENGINEERING GUIDE
01-BD5003-00
PAGE 78 OF 95
11.1 Collect Information from Xtended Services Platform and Profile Servers
The information in the following sections should be collected from the Xtended Services
Platform and Profile Servers.
11.1.1 Tomcat Full Collection Heap Size
The Tomcat garbage collection information can be obtained from the
/var/broadworks/logs/tomcat/TomcatOutputXX.log files. The line to look at is after a line
with the text Full GC and can be collected using a simple awk statement such as:
cat /var/broadworks/logs/tomcat/TomcatOutput17.log |awk '/Full GC/
{getline;print}' >> post-collection_heap.out
You can now obtain the maximum post-collection heap size from the postcollection_heap.out file. For example, if post-collection_heap.out contains the following:
10368662.254: [GC [PSYoungGen: 35648K->656K(53952K)] 212910K>177918K(242368K), 0.0181865 secs] [Times: user=0.01 sys=0.00,
.02 secs]
10369055.305: [GC [PSYoungGen: 32448K->304K(31488K)] 203692K>171548K(213760K), 0.0190663 secs] [Times: user=0.01 sys=0.00,
.02 secs]
10369611.496: [GC [PSYoungGen: 12800K->368K(22400K)] 192987K>180555K(212864K), 0.0188284 secs] [Times: user=0.02 sys=0.01,
.02 secs]
10369912.144: [GC [PSYoungGen: 12736K->592K(14656K)] 185426K>173282K(196928K), 0.0182446 secs] [Times: user=0.01 sys=0.00,
.02 secs]
10370045.447: [GC [PSYoungGen: 17792K->416K(18304K)] 189035K>171659K(198528K), 0.0186604 secs] [Times: user=0.02 sys=0.00,
.02 secs]
10370163.065: [GC [PSYoungGen: 16640K->1152K(17344K)] 180872K>165384K(191424K), 0.0198002 secs] [Times: user=0.02 sys=0.01,
0.02 secs]
real=0
real=0
real=0
real=0
real=0
real=
01-BD5003-00
PAGE 79 OF 95
This table shows the number of provisioned devices by type at a system level. The
number of devices using Device Management can be calculated from the sum of the total
devices, eliminating device types that are not using Device Management.
The number of devices utilizing a particular Xtended Services Platform / Profile Server can
be determined by dividing the total number of devices in the system by the number of
Xtended Services Platform/ Profile Servers that are actively serving traffic.
NOTE: It is assumed that traffic is disturbed in a round robin fashion. If this is not the case, a
different weighting must be used.
01-BD5003-00
PAGE 80 OF 95
5000
2% busy
100170 (out of a allocated size of
5000
300 Mbps
11.2
189 KB
0.575 seconds
Then extrapolate the maximum number of devices for each resource indicator.
CPU
Acceptable CPU is < 60% busy.
max_num_devices_based_on_cpu = 60/Busy_CPU_Per_Device = 60/0.04 = 150000
devices
Heap
The current configured allocated heap is 5872025. 60% of this allocated heap value
would be 5872025X 0.6 = 3523215.
max_num_devices_based_on_current_heap = 3523215/Post_Collection_Heap_Per_
Device = 3523215K/20K = 176160 devices
01-BD5003-00
PAGE 81 OF 95
Bandwidth
The usable bandwidth on this server is 600 Mbps.
max_num_devices_based_on_bandwidth = 300/Bandwidth per device =
600/0.0033 = 90909 devices
The constraining factor is the bandwidth; therefore, each Xtended Services Platform can
support approximately 90K users.
5000
450
100
Then extrapolate the maximum number of devices for each resource indicator.
IOPS
max_num_devices_based_on_IOPS = 450/IOPS per_Device = 450 / 0.02 = 22500
devices
01-BD5003-00
PAGE 82 OF 95
The input/output (I/O) calibrated results are only for the DATA ASM disk group. The FRA
ASM disk group should be sized the same as DATA ASM disk group, so that the total
disk capability is twice the disk-calibrated numbers provided.
01-BD5003-00
PAGE 83 OF 95
BWBaseUserInfo
size (bytes)
BWFullUserInfo
(bytes)
BW-Services
(bytes)
MMTelServices
(bytes)
Total
Basic User
500
4000
500
4000
9000
Full Business
User
500
10000
20000
4000
34500
01-BD5003-00
PAGE 84 OF 95
Steady State The Execution Server cache is full and the Network Server is not
performing any subscriber migration. The Sh traffic is characterized by notifications from
the HSS due to provisioning activities and by notification subscription (and optionally
profile) refreshes from the Execution Server, which take place on a configurable interval. It
is expected that provisioning activities are higher during the day and notification
subscription/profile refreshes to converge are uniform throughout the day.
13.2.2 Example
The following figures illustrate the Sh traffic on a given Execution Server that is initially in
steady state. The Execution Server is hosting 300K full business users and is performing
notification subscriptions and profile refreshes as well as processing profile modification
notifications from the HSS, with higher traffic during daytime.
On Day 2, at 10:00 A.M., 200K subscribers are migrated by the Network Server after a
failure of an Execution Server in the farm. This causes a peak of profile fetches due to
cache misses for newly migrated subscribers. The following smaller peaks are profile
refreshes for the newly hosted subscribers, which occur within 70 percent and 90 percent
of the subscriptions expiration, to converge eventually to a constant rate. Note that when
the Execution Server performs profile fetches triggered from SIP traffic (and cache miss),
there are two Subscribe-Notification-Requests (SNRs) sent. The first fetches the users
main identity and the second downloads the remainder of the profile. When performing a
profile refresh, the Subscriber Agent already knows the main identity; thus, only one SNR
is sent per profile refresh.
140
120
100
80
SNR txns/sec
60
PNR txns/sec
40
20
0
Day
1
Day
2
Day
3
Day
4
In this example, the 200K subscriber migration causes a peak of ~120 SNRs/sec in the
hour following the migration due to registrations and call setup.
01-BD5003-00
PAGE 85 OF 95
3000
2500
2000
1500
1000
500
Day 4
Day 3
Day 2
Day 1
The subscriber migration results in a peak of ~2500 KBps generated by the HSS toward
the Execution Server.
The above-mentioned numbers are based on the following key configuration parameters:
01-BD5003-00
PAGE 86 OF 95
13.3.2 Example
This example is for a Profile Server in steady state during business activity. It assumes
that the cache hit is on average 66 percent on reads. Note that careful tuning of the profile
cache may yield better results. For a system of 5 million users, the intention is that a
single Profile Server should be able to handle the entire load of 750 PTPS. This
represents 600 reads and 150 writes per second and it translates to 200 profile fetches
per second (66 percent cache hit) and 150 profile updates per second.
Thus, for a full business user, this represents 200 SNRs/sec and 150 Profile Update
Requests per second (PURs/sec). The corresponding outgoing traffic volume is ~3000
KBps on the outgoing side (from the Profile Server to the HSS, assuming an update to the
BW-Services document) and ~7500 KBps on the incoming side.
01-BD5003-00
PAGE 87 OF 95
MGCP traffic
Each zone has a separate configurable queue-delay threshold that causes the Application
Server to transition to the next zone when exceeded.
In the yellow zone, the Application Server continues to process existing calls in progress.
If new call originations are detected, half of them are processed. The other half of call
originations are denied. In the red zone, the Application Server continues to process
existing calls in progress. If new call originations are detected, they are all denied. The
Application Server remains in the corresponding overload zone until the queue delay
returns to an acceptable threshold value.
An alarm is generated on entry into each zone. If the overload condition subsides, then
the alarm is cleared upon exiting the overload zone.
The Application Server uses an algorithm to prevent hysteresis loops. This is done to
prevent rapid fluctuations between zones. The system remains in a particular zone for a
pre-defined amount of time before transitioning to another zone. This keeps the system
from experiencing a ping-pong effect at the border of two zones.
When the Application Server denies new call originations, it can be configured to send an
error response (503 for SIP with or without a Retry-After header; 409 for MGCP), drop
the request, or redirect the request. In all cases, the end goal is to cause the endpoint to
roll over to the secondary Application Server and complete. The recommended setting is
to send an error response.
It is important to note that in an overload zone (yellow or red), the Application Server can
be configured to treat most new emergency calls as if they were existing calls in
progress.
The Application Server also implements extreme overload control protections. These
protections limit queue length, time in queue, as well as force the server into overloads
during low memory conditions. Different maximum time in queue (also referred to as the
maximum packet age) values is used during overload and non-overload conditions.
01-BD5003-00
PAGE 88 OF 95
The maximum queue time and memory values are configured via the CLI. The default
maximum queue length is computed based on the server memory but can be overridden
by a start-up parameter. By default, the maximum queue length value is set to 2500
messages per 256 MB of heap. Typically, the heap size is calculated to be a quarter of
the total amount of memory on the system. For example, a box with 2 GB of RAM would
have a heap size of 512 MB and the default value for the number of messages in the
queues would be 5000.
Each zone has a separate configurable queue-delay threshold that causes the Network
Server to transition to the next zone when exceeded.
In the yellow zone, the Network Server denies 50% of incoming traffic. In the red zone,
the Network Server denies 100% of incoming traffic. The Network Server remains in the
corresponding overload zone until the queue delay returns to an acceptable threshold
value.
An alarm is generated on entry into each zone. If the overload condition subsides, then
the alarm is cleared upon exiting the overload zone.
The Network Server uses an algorithm to prevent hysteresis loops. This is done to
prevent rapid fluctuations between zones. The system remains in a particular zone for a
predefined amount of time before transitioning to another zone. This keeps the system
from experiencing a ping-pong effect at the border of two zones.
When the Network Server denies new call originations, it can be configured to send an
error response (503 for SIP with or without a Retry-After header) or drop the request.
The recommended setting is to send an error response.
It is important to note that in an overload zone (yellow or red), the Network Server can be
configured to accept all emergency calls.
The Network Server also implements extreme overload control protections. These
protections limit queue length and time in queue. They also force the server into
overloads during low memory conditions. Different maximum time in queue (also referred
to as the maximum packet age) values are used during overload and non-overload
conditions.
The maximum queue time and memory values are configured via the CLI. The default
maximum queue length is computed based on the server memory; however, it can be
overridden by a start-up parameter. By default, the maximum queue length value is set to
2500 messages per 256 MB of heap. Typically, the heap size is calculated to be a
quarter of the total amount of memory on the system. For example, a box with 2 GB of
RAM would have a heap size of 512 MB and the default value for the number of
messages in the queues would be 5000.
01-BD5003-00
PAGE 89 OF 95
14.5 UC-Connect
As with the Application Server, UC-Connect supports input queue delay-driven overload
controls. If the queue delay becomes too long, overload conditions are triggered.
01-BD5003-00
PAGE 90 OF 95
Weighting
Internal Calls
User Calls
Answered Calls
1.00
Busy Calls
1.08
Unanswered Calls
0.69
Failure Calls
1.12
1.85
3.0
3.0
3.0
Service Calls
Auto Attendant
2.31
Call Center
Simultaneous Ringing
Three-Way Conferencing
4.27
Voice Portal
1.92
Custom Ringback
4.74
Push To Talk
6.14
Two-Stage Dialing
2.71
2.86
2.29
External Calls
Outgoing Calls
Answered Calls
1.00
Unanswered Calls
0.93
01-BD5003-00
PAGE 91 OF 95
Calls
Weighting
Busy Calls
1.07
Failure Calls
0.89
Incoming Calls
Basic Calls
Answered Calls
1.00
Busy/Failure Calls
1.11
Unanswered Calls
0.68
2.05
1.95
1.15
1.30
Service Calls
Auto Attendant
2.32
Call Center
Simultaneous Ringing
2.50
Three-Way Conferencing
4.26
N-Way Conferencing
Voice Portal
1.95
Custom Ringback
2.21
Push To Talk
6.14
4.74
Push To Talk
6.14
Two-Stage Dialing
2.71
2.86
2.29
Enhanced Functions
Shared Call Appearance - Call Info/Line Seize
Invite Authentication
0.21
CAP/OCI-C Usage
01-BD5003-00
PAGE 92 OF 95
Calls
Weighting
CPE Monitoring
0.19
0.21
Rf Interface
0.02
Ro Interface
Music On Hold
2.71
Device Management
Route Point
01-BD5003-00
PAGE 93 OF 95
PR
BL
BT
SE
PE
Erlang
0.1
0.1
0.2
0.2
0.2
0.2
N/A
N/A
0.8
0.8
N/A
N/A
Attendant Console
0.00%
0.00%
0.00%
0.00%
3.00%
3.00%
Auto Attendant
0.00%
0.00%
0.00%
0.00%
3.00%
3.00%
0.00%
0.00%
0.00%
0.00%
1.50%
1.50%
Call Center
0.00%
0.00%
0.00%
0.00%
0.00%
5.00%
Call Manager
0.00%
2.50%
0.00%
0.00%
0.00%
5.00%
Client Applications
0.00%
10.00%
0.00%
0.00%
0.00%
10.00%
0.00%
100.00%
0.00%
0.00%
0.00%
100.00%
Fax
0.00%
0.50%
0.00%
0.00%
0.00%
0.50%
N-Way Conferencing
using Conferencing
Server
0.00%
0.00%
0.00%
0.00%
0.00%
1.00%
N-Way Conferencing
using Media Server
0.00%
0.50%
0.00%
0.00%
0.00%
0.50%
Push To Talk
0.00%
0.00%
0.00%
0.00%
0.00%
0.50%
Shared Call
Appearance
0.00%
0.00%
0.00%
0.00%
5.00%
5.00%
Simultaneous
Ringing
0.00%
20.00%
0.00%
0.00%
0.00%
20.00%
Three-Way Calling
0.50%
0.50%
0.50%
0.00%
0.50%
0.50%
Voice Portal
2.50%
2.50%
0.00%
0.00%
3.00%
3.00%
Voice Messaging
No Answer
45.00%
45.00%
0.00%
0.00%
40.00%
40.00%
Voice Messaging
Busy
5.00%
5.00%
0.00%
0.00%
40.00%
40.00%
Web Portal
Penetration
10.00%
10.00%
20.00%
20.00%
20.00%
20.00%
10
10
10
10
Real-time Accounting
Enabled
01-BD5003-00
PAGE 94 OF 95
References
[1] BroadSoft, Inc. 2015. BroadWorks Platform Dimensioning Guide. Available
from the BroadSoft Xchange at xchange.broadsoft.com.
[2] BroadSoft, Inc. 2015. BroadWorks System Capacity Planner. Available from the
BroadSoft Xchange at xchange.broadsoft.com.
[3] BroadSoft, Inc. 2015. BroadWorks Virtualization Configuration Guide. Available
from the BroadSoft Xchange at xchange.broadsoft.com.
[4] BroadSoft, Inc. 2015. BroadWorks Maintenance Guide. Available from the
BroadSoft Xchange at xchange.broadsoft.com.
01-BD5003-00
PAGE 95 OF 95