Introduction
The PrizmDoc Application Service (PAS) can run on a wide variety of server configurations. It will automatically scale to utilize available cores, and payload data is streamed as much as possible to reduce RAM usage. It is typically external dependencies like the PrizmDoc Server, which PAS uses for process-heavy conversions that can affect its perceived responsiveness.
PAS may also be configured to run on multiple servers. This, combined with modest hardware requirements, means that smaller, low-cost servers can be used and scaled horizontally (more servers are added) when additional capacity is needed.
Network Throughput
Many requests handled by PAS will result in a HTTP request to PrizmDoc Server. If PAS and PrizmDoc Server are hosted on separate servers, it is important to have good network throughput between nodes for optimal performance.
Example Server Configurations
The following minimum requirements can reasonably support 500 native PAS requests per second. A native PAS request is one that PAS handles entirely and does not depend on a supporting resource like PrizmDoc Server to fulfill the request.
NOTE: The Docker recommendations below apply to resources available to the container, rather than resources available to the Docker host.
NOTE: Running a PrizmDoc container on a virtualized Windows host is not recommended.
Minimum Requirements
- Logical Cores: 1
- Memory: 0.5 GB (Docker) / 1 GB (Windows)
- Drive Type: SSD
- AWS: t2.nano (Docker) / t2.micro (Windows)
Suggested Requirements
- Logical Cores: 2
- Memory: 4 GB (Docker) / 8 GB (Windows)
- Drive Type: SSD
- AWS: t2.medium (Docker) / t2.large (Windows)
Additional Considerations for Pre-Conversion Services
When enabling the Viewing Packages feature, there are additional considerations for hardware requirements. This feature requires a database and will cause PAS to make additional HTTP requests to PrizmDoc Server, increase Disk IO, and execute queries against the database.
Network Throughput
If the database is hosted on a separate server, it is important to have good network throughput between nodes for optimal performance.
File Storage
PAS will use the file system to store all artifacts of a viewing package which increases the amount of storage needed by the service. The amount of storage needed is very closely tied to the number of active viewing packages and the types of documents being viewed. For example, a viewing package of a 100 page document requires several times the storage that a 1 page document needs. Likewise, a document page that contains drawings and images will consume more storage than a page with just text. Testing with a representative set of sample documents is recommended to understand the file storage requirements of a specific application.
Database
PAS will store various bits of metadata about each viewing package in the configured database. The total amount of data stored for a viewing package in the database partly depends on the number of pages in the source document. However, the metadata size is not currently affected by the content of individual pages. Again, testing with a representative set of sample documents is recommended.
NOTE: Use of a Central Database for PrizmDoc will be required in order to move towards eliminating server affinity.
Example Server Configurations
The following minimum requirements can reasonably support 5 simultaneous viewing package creation processes per logical core. However, viewing package creation is heavily dependent on PrizmDoc Server for generating content. As PAS instances are scaled up, the supporting PrizmDoc Server instances must be scaled up appropriately to avoid overloading them. Additionally, the overall number of simultaneous viewing package creation processes should be throttled to avoid overburdening the system.
Minimum Requirements
- Logical Cores: 2
- Memory: 4 GB (Docker) / 8 GB (Windows)
- Drive Type: SSD
- AWS: t2.medium (Docker) / t2.large (Windows)
Suggested Requirements
- Logical Cores: 2
- Memory: 8 GB
- Drive Type: SSD
- AWS: m4.large