Capacity planning
- Last Updated: May 13, 2026
- 4 minute read
- Semaphore
- Documentation
Introduction
There are a large number of factors that come into play when determining what resources are needed for a Semaphore installation. How many servers, how much RAM, how much disk space, etc, are all based upon various metrics including:
- How many documents are to be classified by Semaphore? If documents are regularly added that are to be classified, how many and how often?
- How large/complex are those documents?
- How often does the corpus need to be re-classified?
- Is classification interactive or batch?
- How many users are interacting with the portal, CMS or search interface?
- How big is the model?
- What is the nature of the classification strategy?
- What are the high availability and fail over requirements?
There are also other more concrete aspects that effect the capacity of an implementation including:
- Minimum configurations - What is the minimum configuration for any Semaphore server?
- Licencing - What configuration has Semaphore been licenced for? Obviously in many cases the licencing will follow a capacity planning exercise so this may be largely “putting the cart before the horse”.
The critical aspect of capacity planning are:
- Ensuring that the Classification Server can handle the volume and the flow of data so information is processed in a timely manner
- Ensuring that the Semantic Enhancement Server can handle the volume of queries with minimal latency so the user interface is responsive
Obviously, in some situations there may be a trade off between the resources required and those actually available but it is the intention of this chapter to identify the recommended configurations for any particular installation.
Licensing
When Semaphore is purchased the sales team will work with the customer to roughly (but hopefully accurately) determine the general resource requirements then agree upon appropriate licensing restrictions. Specifically the team will determine, for any production installation, the number of processor cores on which the product can run and/or how many servers on which the software can be installed. This is generally done on a module basis but it can also be done on as a “maximum” basis for all modules.
During production installation Semantic Enhancement Server and Classification Server must be configured to adhere to the processor core restrictions imposed by the license which corresponds to how many workers for each application can execute at any one time. For example, “Classification Server - 2 cores” corresponds to Classification Server being configured to have a maximum of 2 workers functioning at any one point in time. Other obvious restrictions would be the number of production installations allowed for each product.
If you have any questions about your specific license limitations, it is recommended that you review your contract with Progress or contact your Progress sales representative.
Note:
Any production installation of Semaphore must not exceed the restrictions imposed by the Semaphore license that has been purchased even if the configuration of the product would allow you to do so.
Minimum Configuration
There are two critical end-user functions of the Semaphore solution:
- Classification of content - Performed by Classification Server, this is making sure your content is correctly classified.
- Semantic enhancement services - Performed by Semantic Enhancement Server this is displaying of model information to the user.
Generally these two functions are logically separate from one another so Progress advises that in order to ensure that the resources consumed by one does not effect the performance of the other that the two applications be installed on physically separate servers.
Any the servers involved in any installation must at least meet the minimum specifications given below but must also meet the requirements determined for the specific installation (for example, more memory may be required). If the server does not meet these minimum specifications then Progress cannot guarantee that the product will function correctly (or at all).
Windows Minimum Server Specification
Each Windows server on which any Semaphore server component is installed must have at least the following:
- 2 x 2.4 GHz processors
- 16 GB RAM (plus 2 GB per CPU core)
- 40 Gb Hard Disk space free
- Microsoft Windows Server 2012 (64 Bit)
Linux Minimum Server Specification
Each Linux server on which any Semaphore server component is installed must have at least the following:
- 2 x 2.4 GHz processors
- 16 GB RAM (plus 2 GB for each CPU core)
- 200 Gb Hard Disk space free
- 64-bit Red Hat Enterprise 7.x or 8.x compatible Linux. (Semaphore will run on other options, but please contact Progress should you wish to use another version)
Specific Component Configuration
This section describes the specific metrics for particular Semaphore components that can be used to determine the server requirements for a Semaphore installation.
Product-Specific Notes
Studio/KMM
| Recommendation | One dedicated server. |
|---|---|
| In Practice | Generally operates well with 8 Gb or more of RAM though more RAM can help if performance suffers. |
| Reason to Scale | Size of model or number of concurrent information scientists managing models. |
| How to Scale | Increase the amount of RAM. |
Classification Server
| Recommendation | Do not exceed 700 documents per core per hour to be on the safe side. |
|---|---|
| In Practice | Moderately complex model (IPSV, the default model distributed with Semaphore) installed in Classification Server is at approximately 900 document / hour / core sustained Typical model is at 1200 document / hour / core on Windows Same model is at 1500 documents / hour / core on Linux |
| Reason to Scale | The number of documents per hour requiring classification |
| How to Scale | Vertically or horizontally (ie add cores, be they in the same server or in new servers added to the farm). As a rule of thumb ensure 2GB of RAM per core. Note that the minimum requirement is 2GB RAM for the 1 core then a minimum of 512MB for each extra core on a given server. |
Semantic Enhancement Server
| Recommendation | Introduce at 1000 queries per minute per “core” and go cautiously. |
|---|---|
| Reason to Scale | Larger models or higher user request throughput |
| How to Scale | Vertically and horizontally. |