Every system is different. Consequently, system planning is unique for each customer and situation. Below are things to consider.
Business Goal
As with all projects, you need to first identify why you are building or modifying your system. What is your goal? Is it to collect more data? Is it to be more efficient? Is it to reduce defects?
Variables
Identify the variables in your environment that will impact performance. These variables define the load on the overall system. Some common variables are:
- How many users?
o Number of simultaneous users and the types of users
o Are users in the same location or on the same network?
- How is the data being collected?
o CMM
o Gages
o Automated data feeds
o Manual entry
- How much data?
o Number of part files
o Number of records per part file
o Number of characteristics and trace fields per record
o Number of records processed each minute (frequency or read rate)
o Complexity of record or characteristic filters
o Number of reports
o Number of exports
o Number of data groups
o Number of dashboards
o Number of full views
o Number of snapshots
- What tools do you have?
o Measurement systems
o Interfaces to other applications (e.g., MES, SPC, Minitab, etc.)
o Computer – age, performance level, load from other applications, operating system.
o Database – volume of data, MS SQL, QCQ files, shared with other applications.
o Network – LAN, WAN, Internet access, load from other applications
o Prolink applications
o Third party applications
Tools
Computers
Computers have a significant impact on the performance of data collection and analysis. Prolink applications can run on older slower computers with less resources, but you will see slower performance. The recommended client computers have a high-speed CPU, SSD hard drive, and plenty of RAM. The suggested client computer configuration is:
- Intel i7, i5, or equivalent with 12 or more threads (Gen 11 or better)
- 16 GB of RAM or more
- 512 GB SSD
Windows 11 is recommended since the newer generation software and future releases may require the latest Windows release. Prolink applications can run on older versions of Windows, but this could impact performance and limit application features that are available.
More details on client computers are in Appendix A - Thick Client vs. Thin Client.
Servers
Server selection and configuration is completely up to the customer. Prolink applications cause minimal direct load on the server. The server load is primarily Microsoft SQL Server and Microsoft Windows RDS client sessions.
Physical vs. Virtual
Prolink applications run on either Physical or Virtual computers. It is up to the Customer to determine if the virtual machine has sufficient resources to run the Prolink application and support other products like SQL Server or RDS. Also, the physical server hosting the virtual machines must have sufficient resources to perform well.
Other Considerations
Customers may have other server architecture needs. The customer may need a server farm or more complex server configuration. These types of systems have support challenges and may be more expensive. These advanced architecture needs may include:
· Load Balancing
· Redundancy
· Fault Tolerance
· Virtualization
· Storage on the network (e.g., SAN)
Server Performance Tuning Articles
Prolink relies on the customers to do their own performance tuning. Here are handful of examples of the many articles on server performance tuning found on the web:
For RDS:
https://learn.microsoft.com/en-us/windows-server/administration/performance-tuning/role/remote-desktop/session-hosts
https://hub.acctivate.com/articles/remote-desktop-performance
For SQL Server:
https://learn.microsoft.com/en-us/sql/sql-server/install/hardware-and-software-requirements-for-installing-sql-server-2022?view=sql-server-ver16
https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitor-and-tune-for-performance?view=sql-server-ver16
https://www.mssqltips.com/sqlservertip/3235/sql-server-hardware-configuration-best-practices/
https://www.mssqltips.com/sqlservertutorial/276/sql-server-performance-tuning-and-monitoring-tutorial/
https://docs.media.bitpipe.com/io_10x/io_106127/item_568340/Top10SQLPerf3.pdf
https://www.petenetlive.com/kb/article/0001753
https://greenclouddefense.com/knowledge-base/rds-sizing-guide/
Database
Prolink applications store data in QCQ files or a SQL Server database.
SQL Server vs. QCQ
Prolink applications store data in two formats: Microsoft SQL Server database or QCQ files.
A QCQ file contains a single part file. The file is an SQLite database file.
Microsoft SQL Server contains many part files and related data. MS SQL is used by a high percentage of Prolink customers and is better suited for Prolink enterprise applications.
Prolink applications work with all variants of Microsoft SQL Server (e.g., Express, Standard, Enterprise, etc.). However, be aware of the limitations of the different variants. As an example, SQL Server Express can only handle database files size of up to 10 GB.
Archiving
Customers are encouraged to use Enterprise Data Loader to archive older data. This will reduce the amount of data in a working database, which will improve performance. EDL can run periodic jobs to move data to another database when it is sufficiently old (e.g., monthly, annually, etc.). Archiving older part files or records will keep the working database smaller, which enables queries to run faster.
Network
Network performance and reliability impact Prolink applications.
· If a network is overwhelmed, then Prolink applications are likely to have latency responding to user actions.
· An unreliable network will slow down data collection and risk data loss. Prolink’s QC-CALC Real-Time is designed to mitigate losing contact with the SQL Server. However, other applications may not be as resilient.
· Firewall and other cyber security measures will complicate and potentially degrade network performance, which can slow down data collection and analysis.
Prolink recommends the shortest physical distance between the data collection station and the database. This recommendation also applies to the computers hosting data analysis tools. Ideally all computers are in the same building on the same LAN, but this is becoming less common. A worst-case example is having thin clients running off a server in one location, the database hosted on a different server in another location, and the ERS & QC-Mobile applications running on different servers in yet another location. This undesirable example is vulnerable to many potential failure points.
Application Load
The load on the client computer or server is determined by the sum of the load of all applications running on it. Appendix B – Load of Prolink Applications has observations about the typical load that Prolink applications put their host computer. Customers also need to consider all the other applications that may be running on each computer.
Resources
What resources is the customer investing in the system?
- Time – What are the deadlines?
- Funding
- Staff – How many people? What are their existing skills and abilities? Training?
- Champion – Who is leading this project? Who will be the primary contact for support?
Risks & Vulnerabilities
Identify what can go wrong, so you can proactively plan to mitigate it. The following are a small number of example scenarios that should be considered:
- Collecting more data than your database can handle.
- Collecting data faster than the system can process it.
- The system is sluggish, and the latency is more than the users can tolerate.
- What happens when the WAN fails?
Conclusion
Each Customer’s needs and environment are unique. Consequently, no formula exists to easily define the solution or server configuration needed to reach a customer’s goals. System planning is a dynamic process that is constantly evolving.
Appendix A – Thick Client vs. Thin Client
Customers need to decide whether they want to use Thick Clients or Thin Clients. This decision is unique to each organization and has many things to consider. Often customers use a combination of Thick and Thin Clients.
What is a Thick or Thin Client?
A Thick Client would be a physical computer running Windows and hosting Windows applications.
A Thin Client is a device that runs a virtual desktop session on a server to run applications on the server. A thin client can be a Wyse terminal, a Raspberry Pi, or Windows computer. A Thin Client device is sometimes referred to as a “dumb terminal”.
Factors to Consider
Hardware & Software Needed
ADVANTAGE: Toss-up – Both requires similar hardware or software
A Thick Client system only needs a computer for each user or station. The computer could be a desktop, industrial computer, laptop, etc. Each computer needs its own copy of Windows and the Prolink applications (e.g. GageStation, SPC Office Buddy, etc.). You can have a successful data collection and SPC system with just a client computer, but typically a server is needed to host a SQL database, file sharing, or other shared resources.
A Thin Client needs a device on the user’s desk or station and a server to host the virtual desktop and applications. A Thin Client device does not host any software, so it relies on the server to desktop environment and the Prolink applications.
Both need a keyboard, mouse, monitor, and possibly USB for connection to gages). The size of the cabinet holding a thick or thin client has become essentially the same.
Cost
ADVANTAGE: Thin Client – A Thin Client system may cost less, but it has more variables. In certain situations, the Thick Client system may be more cost effective.
Sample budgets for Thick Client systems
Budget for a single Thick Client seat
Item | Cost | Purpose |
Computer (Intel i7,16GB,512GB SSD,Win11Pro) | $800 | Estimated typical cost for this config |
Monitor (24”) | $100 | |
GageStation | $1,560 | Quantity discount (single seat is $1,950) |
TOTAL | $2,460 | |
Budget for a server for a Thick Client system supporting 10 users on a SQL Server database.
Item | Cost | Purpose |
Server (2x Intel Xeon, 32GB, 1TB SSD) | $5,000 | Estimated typical cost for this config |
Windows Server 2022 | $1,000 | Broad estimate of OS plus client licenses |
SQL Server 2022 | $3,000 | |
SQL Server 2022 – 10 User CAL’s | $1,800 | |
TOTAL | $10,800 | |
Budget for a 10 user Thick Client system
Item | Cost | Purpose |
10 Thick Client | $24,600 | |
1 Server | $10,800 | |
TOTAL | $35,400 | |
Sample budgets for Thin Client systems
Budget for a single Thin Client seat
Item | Cost | Purpose |
Device (Raspberry Pi) | $100 | Estimated typical cost for this config |
Monitor (24”) | $100 | |
TOTAL | $ 200 | |
Budget for a server for a Thin Client system supporting 10 users on a SQL Server database.
Item | Cost | Purpose |
Server (2x Intel Xeon, 64GB, 1TB SSD) | $6,000 | Estimated typical cost for this config |
Windows Server 2022 | $1,000 | Broad estimate of OS plus client licenses |
Windows Remote Desktop Service CAL (10x) | $1,250 | Needed for clients to run on Windows Server |
SQL Server 2022 | $3,000 | |
SQL Server 2022 – 10 User CAL’s | $1,800 | |
Prolink GageStation for 10 seats | $15,600 | |
TOTAL | $28,650 | |
Budget for a 10 user Thick Client system
Item | Cost | Purpose |
10 Thick Client | $2,000 | |
1 Server | $28,650 | |
TOTAL | $30,650 | |
IT Support & System Maintenance
ADVANTAGE: Toss-up – Both have advantages
A Thick Client system requires maintaining client computers and likely a database server. Since the client computers host Windows and applications, each computer needs to be maintained. For example, updating Windows or Prolink applications needs to be done on each client separately. The server will be updated independent of client computers.
A Thin Client has different support challenges. The client device generally does not run Windows, so IT support needs to be fluent in the Thin Client operating system (e.g., Linux). Updating Windows and Prolink applications occurs on the server. Consequently, an application only needs to be updated on one computer. However, updating the applications may require an outage, since all seats will update simultaneously, and the application cannot be in use during the update process.
CMM & Gage Support
ADVANTAGE: Thick Client
A Thick Client can support any CMM, gage, or measurement devices.
A Thin Client is limited to the devices that it supports. Thin Clients only support keyboard input. Fortunately, the MicroRidge Keyboard Wedge converts data from a variety of measurement devices to keystrokes.
Network
ADVANTAGE: Thick Client
A Thick Client collects data on the local computer and saves it to a local QCQ file or uploads it to the SQL Server database. Prolink applications.
A Thin Client is dependent on Network performance. All operations occur on the server. The Thin Client sends the user input (primarily keystrokes and mouse actions) and receives the graphics from the server. If the network is overwhelmed, the user may see latency in feedback to input (e.g. the user clicks on a menu item, and it takes seconds for the application to display a new dialog). This latency can be worsened by an overwhelmed server.
Performance
ADVANTAGE: Thick Client
A Thick Client system’s performance is more predictable since it is spread between the client computers and the server. Prolink applications are running the individual’s computer, so resources are not shared. The server is focused on hosting enterprise applications. These applications may include the SQL Server database, QC-CALC Real-Time as a Service, Enterprise Report Scheduler (ERS), Enterprise Data Loader (EDL), QC-Mobile, or Prolink License Server (PLS). The Prolink enterprise applications rarely put overwhelming load on the server.
A Thin Client system puts all the load on the server, which can be more challenging to balance. Like a Thick Client system, the server may host the enterprise Prolink applications and a SQL Server. The Thin Client server also hosts virtual desktops for each client computer. Microsoft Windows Server does this through its Remote Desktop Services (RDS). RDS requires CPU, memory, and disk resources to run each user session, and this load adds up fast. To make a Thin Client system successful, you need an IT support team with RDS skills and willingness to invest in more powerful servers.
Virtualization or Cloud Support
ADVANTAGE: Thin Client
Some companies have a mandate to virtualize their systems or use cloud technologies. Only Thin Clients support this.
Appendix B - Load of Prolink Applications
Below are observations of the load that Prolink applications typically put on the host computer. These observations are on Prolink’s test systems, so a customer needs to investigate how their data load with Prolink applications impacts their systems.
As an example, when a customer has over 1000 part files with less than 50 records per file, they may see different resource use when compared to a customer with only 10 part files with over 10,000 records per file. In this example, the size of each customer’s SQL database may be the same, but the performance of Prolink applications will behave very differently.
Application | Overall | Runs on | CPU | Memory | Disk | Network | Database |
QC-CALC Real-Time | Collect data & displays graphics | Client | Medium | Medium | variable* | Medium | High – read & write |
QC-CALC SPC | Data analysis | Client | Low | Low | Low | Low | Low – Queries only |
QC-Gage | Get gage data | Client | Low | Low | Low | Low | Trivial – Queries only |
SPC Office Buddy | Convert data | Client | Medium | Medium | Low | Low | Low – Queries only |
QC-PLC | Get PLC data** | Client | Medium | Medium | Low | Low | None |
QC-View | View data | Client | Low | Low | Low | Low | Low – Queries only |
DCS | Get data for RTS | Client | Low | Low | Low | Low | None |
EDL | Transfer data between DBs | Server | Medium | Medium | variable* | Low | High – read & write |
ERS | Data analysis | Server | High | High | Low | Medium | High – many Queries |
ERS Service | Batch data analysis without graphics | Server | High | High | Low | Medium | High – many Queries |
QC-Mobile | Display data | Server | Medium | Medium | Low | Low | High – many Queries |
Real-Time as a Service | Collect data without graphics | Server | High | High | variable* | Medium | High – read & write |
PLS | License management | Server | Trivial | Trivial | Low | Low | None |
* - Disk space and activity depend on numerous factors. Disk space and activity will be higher on the client computer when QCQ files are used, and it will be higher on the server when a SQL database is used. Total disk space needed depends on the number of part files, records per part file, and characteristics & trace fields in each record. The disk activity and CPU usage are based on the number of records processed each minute and the number of users sharing the SQL database. Also, RAM & CPU use will be proportional to the number of records in a part file and the number of characteristic & trace fields in each record.
** - The number of records per minute will determine the CPU usage. The number of characteristics and trace fields will determine RAM usage.