You are on page 1of 19

ThingWorx Navigate

Platform Sizing Guide


ThingWorx Navigate 8.5.x
March 2020
Copyright © 2020 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved.

User and training guides and related documentation from PTC Inc. and its subsidiary companies (collectively
"PTC") are subject to the copyright laws of the United States and other countries and are provided under a
license agreement that restricts copying, disclosure, and use of such documentation. PTC hereby grants to the
licensed software user the right to make copies in printed form of this documentation if provided on software
media, but only for internal/personal use and in accordance with the license agreement under which the
applicable software is licensed. Any copy made shall include the PTC copyright notice and any other
proprietary notice provided by PTC. Training materials may not be copied without the express written consent
of PTC. This documentation may not be disclosed, transferred, modified, or reduced to any form, including
electronic media, or transmitted or made publicly available by any means without the prior written consent of
PTC and no authorization is granted to make copies for such purposes. Information described herein is
furnished for general information only, is subject to change without notice, and should not be construed as a
warranty or commitment by PTC. PTC assumes no responsibility or liability for any errors or inaccuracies
that may appear in this document.

The software described in this document is provided under written license agreement, contains valuable trade
secrets and proprietary information, and is protected by the copyright laws of the United States and other
countries. It may not be copied or distributed in any form or medium, disclosed to third parties, or used in any
manner not provided for in the software licenses agreement except with written prior approval from PTC.

UNAUTHORIZED USE OF SOFTWARE OR ITS DOCUMENTATION CAN RESULT IN CIVIL


DAMAGES AND CRIMINAL PROSECUTION.

PTC regards software piracy as the crime it is, and we view offenders accordingly. We do not tolerate the
piracy of PTC software products, and we pursue (both civilly and criminally) those who do so using all legal
means available, including public and private surveillance resources. As part of these efforts, PTC uses data
monitoring and scouring technologies to obtain and transmit data on users of illegal copies of our software.
This data collection is not performed on users of legally licensed software from PTC and its authorized
distributors. If you are using an illegal copy of our software and do not consent to the collection and
transmission of such data (including to the United States), cease using the illegal version, and contact PTC to
obtain a legally licensed copy.

Important Copyright, Trademark, Patent, and Licensing Information: See the About Box, or copyright
notice, of your PTC software.

UNITED STATES GOVERNMENT RIGHTS

PTC software products and software documentation are “commercial items” as that term is defined at 48 C.F.
R. 2.101. Pursuant to Federal Acquisition Regulation (FAR) 12.212 (a)-(b) (Computer Software) (MAY 2014)
for civilian agencies or the Defense Federal Acquisition Regulation Supplement (DFARS) at 227.7202-1(a)
(Policy) and 227.7202-3 (a) (Rights in commercial computer software or commercial computer software
documentation) (FEB 2014) for the Department of Defense, PTC software products and software
documentation are provided to the U.S. Government under the PTC commercial license agreement. Use,
duplication or disclosure by the U.S. Government is subject solely to the terms and conditions set forth in the
applicable PTC software license agreement.

PTC Inc., 121 Seaport Blvd, Boston, MA 02210 USA


Contents

Overview ....................................................................................................................6
Introduction to Sizing for ThingWorx Navigate.........................................................7
Options for Architecture and Authentication ............................................................8
Sizing Matrices ................................................................................................... 11
Recommendations to Improve Performance and Scalability ...................................16
Test Architecture, Criteria, and Results .................................................................18

3
About this Guide
Welcome to the ThingWorx Navigate Platform Sizing Guide. In this document,
we’ll help you calculate the resources you need to deploy ThingWorx Navigate in
your organization.

Audience
This guide is intended for these roles:
• Architects
• System administrators
• Business administrators
• Developers
• Process experts
• Managers

Supported Products and Versions


Each version of ThingWorx Navigate supports specific versions of ThingWorx,
Windchill, ThingWorx Integration Runtime, databases, and browsers. For the most
detailed, up-to-date support information for a particular version, see the Platform
Support Matrix for ThingWorx Navigate
This edition of the ThingWorx Navigate Platform Sizing Guide supports these
product versions:
Product Version
ThingWorx Navigate 8.5.x
1.7.x
ThingWorx Platform 8.x.x
Windchill PDMLink 11.x
10.2
Windchill ProjectLink 11.x
10.2

Definitions
First, let’s go over the relevant terminology:
• Named user—A user who can sign in to ThingWorx Navigate.
• Active user—A named user who is signed in and actively using the system.
Also known as a concurrent user.

4
Prerequisite knowledge
Before you begin, estimate the number of named users to accommodate. You also
need a basic understanding of the architecture for the relevant software:
• ThingWorx Navigate
• ThingWorx Platform
• Windchill
Time to get started. Go ahead to the next section, Introduction to Sizing for
ThingWorx Navigate on page 7.

Additional resources
This guide provides a sizing overview. For more information, check out the
documents listed below.
ThingWorx Navigate:
• Summary of the ThingWorx Navigate Installation
• Tech Support article on ThingWorx Navigate and Single Sign-on
ThingWorx:
• ThingWorx Platform 8.x System Requirements (select the requirements guide
for your version of ThingWorx)
• ThingWorx Deployment Architecture Guide
• ThingWorx High Availability (HA) article hub
Windchill and Pro/INTRALINK 11.x Server Hardware Sizing Guidelines:
• Linux Platform with Oracle Database
• Microsoft Windows Platform with Oracle Database
• Microsoft Windows Platform with SQL Server Database
Windchill Sizing Calculator

5
1
Overview
Introduction to Sizing for ThingWorx Navigate ...............................................................7
Options for Architecture and Authentication ...................................................................8
Sizing Matrices.......................................................................................................... 11
Recommendations to Improve Performance and Scalability..........................................16
Test Architecture, Criteria, and Results........................................................................18

6 ThingWorx Navigate Platform Sizing Guide


Introduction to Sizing for ThingWorx
Navigate
ThingWorx Navigate provides simplified, role-based applications. It’s part of a
product family that combines a ThingWorx platform server with one or more
resource providers. Within this product family, the ThingWorx Navigate PLM
App Extension displays PLM data from Windchill. This version of the Sizing
Guide also applies to the ThingWorx Navigate Contribute My Tasks App.
In this document, we’ll guide you through sizing your system components to help
you plan your implementation of ThingWorx Navigate with new or existing
Windchill installations. We provide guidance for systems that use Windchill
Authentication or for systems that use Single Sign-on with PingFederate.
We’ll help you size a new system for the predicted number of users, or resize an
existing combined system to handle an increase in active users.
Our recommendations are based on test results from automated scalability tests
against virtualized hosts running Microsoft Windows Server 2012 and Red Hat
Enterprise Linux.

Benefits and challenges


There are many benefits to properly sizing and configuring the ThingWorx
Navigate and Windchill systems:
• Faster performance
• Better user experience
• Increased productivity
• Wider adoption
• Faster return on investment
Allocate too few resources, and poor performance creates an unsatisfactory user
experience. In turn, this could prevent users from successfully adopting the
software into their workflow.
On the other hand, allocating too many resources also has costs: it takes longer to
recoup the cost of the system, and the overall return on investment is decreased.

Solution
Your system components can be sized based on the number of active users
expected in the system.
This solution is the result of tests using several data sets and a large range of
active users. Sizing points were determined for all system components used in a
standard ThingWorx Navigate PLM deployment.

Overview 7
Some performance tuning is required to optimize the system for larger numbers of
active users. These recommendations are included in the section
Recommendations to Improve Performance and Scalability on page 16.

Options for Architecture and


Authentication
Architecture
ThingWorx Navigate PLM App Extension uses the ThingWorx platform as a
server. This architecture can be deployed in two ways:
• Monolith (recommended for non–production environments or small
deployments)—Combines Windchill and the ThingWorx platform server on
one host. Databases may still be on separate hosts.

• Distributed—Uses separate hosts for Windchill and for the ThingWorx


platform (ThingWorx Navigate server). Communication from ThingWorx
Navigate to Windchill using ThingWorx Integration Runtime uses a
certificate-validated SSL connection or an SSL connection with PingFederate

8 ThingWorx Navigate Platform Sizing Guide


validation. This allows horizontal scaling of Windchill and PingFederate, and
failover of various server components in a high availability deployment.

For advanced options to address requirements such as load balancing, high


availability, and failover, refer to:
• ThingWorx Architecture Overview guide
• Windchill Advanced Deployment guide

Overview 9
Note
Other architectural considerations in your environment can affect the
infrastructure required to support a combined ThingWorx Navigate and
Windchill system. Requirements such as the following must be considered in
conjunction with scalability:
• High availability
• Fault tolerance
• Disaster recovery
• Network latency
• Business continuity
• Security boundaries
• IT policies

Authentication
ThingWorx Navigate PLM App Extension is a Service Provider (SP) that queries
and updates PLM information in Windchill, a Resource Provider (RP). Queries
and updates generated by ThingWorx Navigate apps must be authenticated by the
Resource Provider.
The authentication mechanism uses an external identity provider to identify users
and passwords. In a production environment, there are two options for
authentication:
• Single Sign-on (SSO)—Uses SAML2 and OAuth 2.0 tokens provided by a
PingFederate authorization server. The PingFederate server is included in the
sizing recommendations in this guide.
• Windchill Authentication—Windchill acts as the identity provider, using the
Session User credentials passed from ThingWorx.
For both authentication methods, communication between the Service Provider
and the Resource Provider is facilitated by one or more ThingWorx Integration
Runtime instances. These processes are included in the sizing and tuning
recommendations in this guide.
Once you determine your architecture and authentication method, you can
calculate your resource needs. Continue to Sizing Matrices on page 11 on page 11
for algorithms and a sample calculation.

10 ThingWorx Navigate Platform Sizing Guide


Sizing Matrices
Estimating the number of active users is a key part of properly sizing the system.
PTC currently estimates that typical ThingWorx Navigate customers using out-of-
the-box (OOTB), role-based applications have a concurrency rate of roughly 5%
of named users.
For example, a company with 2000 named users typically has an average of 100
active ThingWorx Navigate users.

Note
Some customers may want to use a more conservative estimate, such as 20%,
according to their browser-based Windchill actions that are expected to be
partially or fully replaced by ThingWorx Navigate apps.
The sizing estimates in this guide are based on scalability testing using OOTB
mashups and services acting upon small and medium-sized assemblies in
Windchill. If custom mashups and services are added to ThingWorx Navigate,
you may have to adjust your sizing estimates accordingly. To refine your
sizing estimate, PTC recommends monitoring and comparing the performance,
CPU, and memory utilization of any customizations.
The tables below are subject to change. Check the links below for the most
updated information:
Windchill and Pro/INTRALINK 11.x Server Hardware Sizing Guidelines:
• Linux Platform with Oracle Database
• Microsoft Windows Platform with Oracle Database
• Microsoft Windows Platform with SQL Server Database
Windchill Sizing Calculator

Sizing for deployment using Single Sign-on with PingFederate


For this configuration, the ThingWorx Platform host also includes ThingWorx
Integration Runtime processes. In the Single Sign-on deployment, inter-tier
communication doesn’t require a 2-way SSL handshake to be secure. Instead,
PingFederate and Windchill validate requests using OAuth tokens. As a result,
CPU utilization by ThingWorx Integration Runtime is minimal in this deployment.
The following matrix shows the resources required per number of active users for
each software element or host in a Single Sign-on deployment of ThingWorx
Navigate using PingFederate. The adjustments to Windchill sizing for ThingWorx
Navigate users is shown in a separate section.

Overview 11
Single Sign-on: Resources per number of active users

ThingWorxPlatform & PingFederate ThingWorx


Integration Runtime Database
(PostgreSQL)
Active users Cores Memory Cores Memory Cores Memory
0 - 1500 4 12 4 8 2 4
1600 - 2300 6 16
2400 - 3000 8 20
3100 - 3700 10 24 8 16 4 8
3800 - 4400 12 28
4500 - 5100 14 32
5200 - 6000 16 36 12 20 8 12

Sizing for deployment using Windchill Authentication


With Windchill Authentication, the architecture of your system affects your
resource requirements:
• Distributed—The server-to-server communication from ThingWorx to
Windchill must be secure and validated. To validate, Windchill requires Client
Authentication using an X509 certificate from the ThingWorx host. The
request-and-response interaction increases CPU utilization by the ThingWorx
Integration Runtime processes. Since this is a CPU-intensive process, choose a
compute-optimized VM to host.
• Monolith—The additional Client Authentication handshake mechanism is not
necessarily required for intra-host traffic between the software processes, and
the ThingWorx Integration Runtime process does not require additional
resources.
The following matrix shows the resources required per number of active users for
each software element or host in a deployment of ThingWorx Navigate using
Windchill authentication. The adjustments to Windchill sizing for ThingWorx
Navigate users are shown below.

Windchill Authentication: Resources per number of active users

ThingWorx ThingWorx ThingWorx


Platform Integration Runtime Database
(PostgreSQL)
Active users Cores Memory Cores Memory Cores Memory
0 - 1500 4 12 2 4 2 4
1600 - 2300 6 20 3 6
2400 - 3000 8 28 4 8

12 ThingWorx Navigate Platform Sizing Guide


Windchill Authentication: Resources per number of active users
(continued)
ThingWorx ThingWorx ThingWorx
Platform Integration Runtime Database
(PostgreSQL)
Active users Cores Memory Cores Memory Cores Memory
3100 - 3700 10 34 5 10 4 8
3800 - 4400 12 42 6 12
4500 - 5100 14 50 7 14
5200 - 6000 16 58 8 16 8 12

Windchill sizing for ThingWorx Navigate PLM apps


To predict the number of cores and amount of memory required on the Windchill
hosts for a set of users that includes a group of ThingWorx Navigate View users,
factor the test results into the algorithm that you previously used to size your
Windchill system.
We compared the CPU utilization by the ThingWorx Navigate test scripts with the
CPU utilization by the Windchill test scripts for standard Windchill sizing on a
similarly sized Windchill system.
The resource usage ratio of ThingWorx Navigate to non-CAD Windchill users is
0.5:1. Use this ratio to add a weighting factor for ThingWorx Navigate users
within the Windchill Sizing Guide algorithm.
This is the existing algorithm for weighted active users (A) from Windchill sizing
guide Windchill and Pro/INTRALINK 11.x Server Hardware Sizing Guidelines –
Microsoft Windows Platform with Oracle Database:
A = (3 * Y) + Z, where
Y = Number of active CAD users, and
Z = Number of active non-CAD users.
To add a weighting factor for the number of ThingWorx Navigate active users (V):
Z = 0.5 * V

Windchill sizing formula for ThingWorx Navigate PLM app extension


As a result, this is the algorithm to determine weighted active users for a mix of
CAD, non-CAD, and ThingWorx Navigate View users:
A = ((3 * Y) + Z + (0.5 * V))
You can use the resulting value A in the tables for CPU and RAM in the Windchill
Sizing Guide for your deployment. For example, here are the tables for
Application and Database Server resources for the Windows and Linux platforms:

Overview 13
Application Server Sizing for Windchill 11.x
Weighted Number of Active Intel Xeon Processor
Users Cores Memory
10 2 8
25 2 8
50 2 8
100 2 12
200 3 17
300 4 17
400 6 17
500 7 22
600 8 27
700 10 27
800 11 32
900 12 32
1000 14 36
1200 16 36
1500 20 46
2000 27 46
2500 35 56
Database Server Sizing for Windchill 11.x
Weighted Number of Active Intel Xeon Processor
Users Cores Memory
10 2 8
25 2 8
50 2 8
100 2 10
200 2 10
300 2 10
400 3 10
500 4 12
600 4 12
700 5 12
800 6 16
900 6 16
1000 7 18
1200 8 18
1500 10 22
2000 14 22
2500 18 28

14 ThingWorx Navigate Platform Sizing Guide


Example: Sizing calculation
The following is an example of a sizing calculation.
Widget Inc. currently has 166 active CAD users and 500 active non-CAD users in
a Windchill PDMLink deployment. Windchill was originally sized according to
this result:
A = (3 * Y) + Z
A = (3 * 166) + 500 = 1000 weighted active users
With 1000 weighted active users, Widget has the following resources deployed:
• Windchill Application—14 cores, 36 Gb memory
• Windchill Database—7 cores, 18 Gb memory
• Total—21 cores, 54 Gb memory
Widget is now adding ThingWorx Navigate to the deployment. They estimate that
400 of the original 500 non-CAD users will now use the ThingWorx Navigate
View apps for most of their daily PLM-related tasks. These are the new initial
values for each user group:
Z = 500-400 = 100 (non-CAD users)
V = 400 (active ThingWorx Navigate users)
Y = 166 (CAD users)
A = (3 * Y) + Z + (0.5 * V)
A = (3 * 166) + 100 + (0.5 * 400) = 800 weighted active users
Based on this result, Widget should now deploy the following resources:
• Windchill Application—11 cores, 32 Gb memory
• Windchill Database—6 cores, 16 Gb memory
• ThingWorx platform host—4 cores, 12 Gb memory
• ThingWorx Integration Runtime—1 core, 2 Gb memory
• ThingWorx Database—2 cores, 4 Gb memory
• Total—24 cores, 66 Gb memory
You can now calculate the resources you’ll need to deploy ThingWorx Navigate
for your organization. Continue to the next section, Recommendations to Improve
Performance and Scalability on page 16, for additional important sizing
recommendations.

Overview 15
Recommendations to Improve
Performance and Scalability
Here are some additional recommendations to improve the scalability of your
system. This section includes sizing recommendations for ThingWorx Integration
Runtime, as well as recommendations for configuring ThingWorx and Windchill.

ThingWorx Integration Runtime sizing recommendations


Follow these guidelines to help you decide how many ThingWorx Integration
Runtime processes to use:
• Use a minimum of two ThingWorx Integration Runtime processes for any
deployment of 400 active users or more.
• Use an additional ThingWorx Integration Runtime process for each 1000
active users.
• For systems with Windchill Authentication, use 1 CPU core per ThingWorx
Integration Runtime process, because the Single Sockets Layer (SSL) Client
Certificate handshake consumes significant CPU resources on the ThingWorx
Integration Runtime host.

ThingWorx configuration recommendations


During your ThingWorx setup, you can configure Apache Tomcat, ThingWorx,
and PostgreSQL to optimize your deployment.

Note
You can specify Tomcat startup options from multiple places. Check the
Apache Tomcat Documentation Index for specifics.

• Apache Tomcat for ThingWorx platform:


○ Xmx = 8 Gb—In the <tomcat> startup options, increase the maximum
heap size (Xmx) to at least 8 Gb for ThingWorx.
Set Xmx to 12 Gb for 1200 active users, and add 4 Gb for each additional
multiple of 1200 active users.
○ In the <Tomcat installation location>/conf/server.xml
connector definition configured for ThingWorx, increase the maximum
number of threads parameters (maxthreads):

16 ThingWorx Navigate Platform Sizing Guide


maxthreads=200—Minimum value. Set to 400 threads for 600 active
users, and add 200 threads for each additional multiple of 600 active users.
See the Apache Tomcat 8.x documentation for more details on startup options and
connector configuration options.
To improve performance, in the <Tomcat installation location>/
conf/server.xml turn on compression settings. For instructions, see the topic
“Improve the Performance of ThingView WebGL” in the ThingWorx Navigate
Help Center.
• ThingWorx platform-settings.json file:
In the <Thingworxplatform>/platform-settings.json file, in
the PersistenceProviderPackageConfigs block, increase the
values for these parameters:
○ maxPoolSize: 200—Minimum value. Increase by 100 for 800 active
users, and increase by 100 for every additional multiple of 800 active
users.
○ numHelperThreads: 8—This is the default value and the minimum
recommendation. Increase by 8 for every 1000 active users.
See the ThingWorx Help Center for more details on the platform-
settings.json options. Search for the topic “platform-settings.json
Configuration Details.”
• PostgreSQL database (if applicable)
The default number of connections is 100. The number of connections must
exceed the maxPoolSize parameter set in the ThingWorx platform for the
two systems to successfully distribute connections under load. Configure the
number of connections on the PostgreSQL server, or as part of the pgpool
connection manager.
Edit the <postgresql>/data/postgresql.conf file to change these
parameters:
○ max_connections
○ shared_buffers
○ work_mem

Note
Increasing these values requires sufficient RAM on the host to perform
well.

Overview 17
Windchill configuration recommendations
To improve handling of higher concurrency, increase values for these items:
• Database connections per Method Server
• Number of Method Servers
• Both
To determine if you have enough connections configured, monitor for increasing
database connection wait times or servlet connection timeouts.
These are the Windchill parameters that limit database connections in the
targetFile db.properties:
• wt.pom.maxDbConnections
• wt.pom.dbConnectionsHardLimit

Test Architecture, Criteria, and Results


This section contains an explanation of the testing environment and criteria for
this guide.

Test architecture for this guide


The test architecture is identical to the Distributed diagram in Options for
Architecture and Authentication on page 8 on page 8. The deployment on Amazon
Web Services cloud used multiple hosts running Microsoft Windows Server 2012
R2.
The Windchill application tier used Microsoft Azure VMs with the following size
for testing:
• F16s (16 vCPU, 32 Gb memory)
The Windchill database tier used Oracle on Amazon RDS with the following size
for testing:
• D8s_v3 (8 vCPU, 32 Gb memory)
The ThingWorx platform and database host used Amazon EC2 with the following
size points for testing:
• D4s_v3 (4 vCPU, 16 Gb memory)
• D8s_v3 (8 vCPU, 32 Gb memory)
• D16s_v3 (16 vCPU, 64 Gb memory)
The third host in the ThingWorx deployment was used for PingFederate for SSO,
or the ThingWorx Integration Runtime processes for Windchill Authentication.
The following size points were used for testing:

18 ThingWorx Navigate Platform Sizing Guide


• B4ms (4 vCPU, 16 Gb memory)
• B8ms (8 vCPU, 32 Gb memory)

Criteria and results


We used the criteria from Windchill sizing tests to determine the highest number
of users supported by a particular amount of CPU or memory resources running
ThingWorx Navigate PLM Extension. The simulated multi-user load tests
measured for these variables:
• Response time
• Utilization of host resources, including:
○ CPU
○ Memory
○ Process threads
○ Disk I/O
○ Network bandwidth
Thread counts were increased until the single user simulated response times
doubled in multiple tests accompanied by saturation of one or more resources on
one or more system hosts. Performance optimizations for the software were also
determined to best utilize the system resources. The highest number of user
threads was determined at each saturation point and used as reference points to
create an overall sizing matrix.
Resource usage per thread created a consistently linear curve for sizing that is
reflected in the sizing matrix. This is the expected result, similar to the sizing
results of other PTC products, such as Windchill.

Overview 19

You might also like