Database sizing and growth
The most important part of capacity planning for PaperCut NG is the size and growth of the underlying database. All other aspects of the system manages itself, but care must be taken to ensure there is enough disk space to hold the growing database.
The size and growth of the database depends on the database being used. Each database uses a different format to store their data, therefore the growth characteristics of databases differ. This section outlines the database growth characteristics of:
The internal database (Apache Derby)
Microsoft SQLStructured Query Language (SQL) is a special-purpose programming language designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS). Server
For more information on running PaperCut NG on external databases, see Deployment on an external database (RDBMS).
Database growth is very dependent on the usage patterns and therefore differs significantly from site to site. The best way to predict database growth is based on the rate of print jobs performed. Although, there is some overhead for other data (like users, groups, printers, etc.), this data is static and does not grow over-time. The majority of database growth is caused by print and transaction logs.
The growth calculations performed below provide an indication of growth per 1000 or 10000 print jobs. Then using these numbers and your estimate of the rate of printing in your organization, you make a growth estimate. See Sample database growth calculation for an example of this calculation.
Internal database growth
Most PaperCut NG installations use the internal database. This database is suitable for most organizations, however, some prefer to run using an external database (see Deployment on an external database (RDBMS)).
The following graph shows the database size increase with the number of print jobs.
These results show that the internal database grows by approximately 8.5MB per 10,000 print jobs.
SQL Server database growth
These results show that a Microsoft SQL Server database grows by approximately 4.5MB per 10,000 print jobs.
Sample database growth calculation
This section provides a sample of how to estimate the database growth for your environment. To perform this calculation you need to make a number of assumptions. Adjust these assumptions to suit your organization. The assumptions are:
1 print job per user per day
20 working days in a month
Therefore, 20 print jobs per user per month
Here is a sample database growth calculation based on a 500 user site using the internal database:
Calculate the total number of print jobs expected for the month. (i.e. the total number of users multiplied by the number of print jobs). 500 * 20 = 10,000. So in this example, PaperCut NG is handling 10,000 print jobs a month.
Calculate the monthly growth rate by dividing the jobs per month by 10,000 and then multiplying by the database growth rate (i.e. for the internal DB this is 8.5MB for 10,000 jobs). So, 10,000 / 10,000 * 8.5 = 8.5MB/Month. Therefore in this situation the internal database will grow by approximately 8.5MB per month.
To estimate the growth per year, multiply the above by 12. Therefore in this situation, the database will grow by 10.2 * 12 = 122.4MB per year.