System configuration case study of large deployment
Requirements
Large enterprise environment
Company
approximately 5 500 devices
approximately 250 000 entities in LDAP divided over more than 10 LDAP user domains
Print volume
400 million printed pages per year with average of 4,2 pages per job = ~ 100 million jobs / year
100 million jobs / 251 working days / 10 working hours / 60 minutes / 60 seconds = ~ 11 jobs / sec
scanning features used without OCR
Business requirements
Highly Available solution
Store reporting data for last 5 years
YSoft SafeQ Architecture
To achieve the above, Y Soft have implemented the following design:
2 Management servers
Management with embedded PostgreSQL deployed on both servers
PostgreSQL server configured in SSMD (see section Single Server Multiple Database deployment in PostgreSQL cluster)
Primary and DWH (datamart) databases are split for ease of maintenance including backup and recovery of databases
One PostgreSQL takes role of primary database, second PostgreSQL takes role of standby database, there is streaming replication from master to standby
Management Server virtual machine specs
16 GB RAM
8 CPU units
21 Site Servers
Grouped in three Site Server Clusters (SPOC Group) of 10, 6, 5 nodes
Site Server specs
8 GB RAM
4 CPU units
Print volume
Mostly server side spooling, CBPR only on few devices
~ 50 GB of disk space used by primary PostgreSQL database
Data retention in DWH
Keep 5 years of reporting data in DWH
Time span requires ~500 GB of disk space used by DWH PostgreSQL database
Optimized Configuration
Optimization of Management server
Increasing Java memory to 2 GB is recommended for installations over ~100 000 users.
Management | JVM tweaks | Default Value | Optimized Value |
Maximum Java heap memory (Xmx) | 1024 | 2048 |
The recommended solution for large scale reporting is Data Mart Mode and using the including Power BI reporting templates for data visualization. Using Web Reports and Management reports are not recommended for large installations with high print volume.
Management | System | Configuration | Default Value | Optimized Value |
enableManagementReport | TRUE | FALSE |
web-stats-enable | TRUE | FALSE |
enableCMLDataMart | FALSE | TRUE |
Optional change to increase reporting data retention from 36 month default to 60 months.
Management | System | Configuration | Default Value | Optimized Value |
maximumCMLDataMartMonths | 36 | 60 |
Increase LDAP timeout for initial connection and network communication.
Management | System | Ldap Integration | Default Value | Optimized Value |
Timeout (milliseconds) | 5000 | 180000 |
Increase Management database timeout when data is archived and processed for reporting in DWH database.
Management | C:\SafeQ6\Management\conf | Default Value | Optimized Value |
databaseWarehouse.connections.queryTimeout (seconds) | 1800 | 18000 |
Optimization of Site Servers
Increasing Java memory to 2 GB is recommended for installations with a high print volume.
Spooler Controller | JVM tweaks | Default Value | Optimized Value |
Maximum Java heap memory (Xmx) | 1024 | 2048 |
To maximize throughput of Site Servers without adding additional CPUs it is recommended to disable job analysis and rendering. Job preview and metadata (color, duplex printing, number of copies, ...) will not be available on terminals.
Management | System Configuration | Default Value | Optimized Value |
jobAnalysisResolution | LOW_RESOLUTION_RENDERING | NO_RENDERING |
previewResolution | LOW_RESOLUTION_RENDERING | NO_RENDERING |
Optional configuration if print job volume is expected to be over 20 jobs / sec.
Management | System Configuration | Default Value | Optimized Value |
maxParallelJobProcessing | 30 | 500 |
terminalServerHandlingThreads | 10 | 40 |
YmqRunOnceWorkerThreadPoolSize | 200 | 800 |
Optional configuration to save disk space on site servers by reducing retention time for job storage on site server. This is not needed if majority of print is done via CBPR.
Management | System Configuration | Default Value | Optimized Value |
maxSpoolerJobTime | 7d 0h | 1d |
maxSpoolerJobTimeCheckInterval | 180 | 60 |
maxSpoolerJobTimePrinted | 7d 0h | 8h |
Optional configuration to improve Site Server throughput by reducing file system writes. If Spooler Controller services are restarted then transient unprocessed accounting data may be lost..
Management | System Configuration | Default Value | Optimized Value |
cacheReplicationBufferPersistent | TRUE | FALSE |