Appendix D. Capacity Planning

Table of Contents

Database Sizing and Growth
Internal database growth
SQL Server database growth
Sample database growth calculation

This section discusses capacity planning considerations to allow administrators to plan future infrastructure requirements and make decisions about how to deploy the application.

PaperCut NG is designed to be self-maintaining, however it is important that the administrator understands the disk-space requirements and how this changes overtime.

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 will differ. This section outlines the database growth characteristics of:

  • The internal database (Apache Derby)

  • Microsoft SQL Server

For more information on running PaperCut NG on external databases, see Chapter 15, Deployment on an External 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 a growth estimate can be made. See the section called “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 (as discussed in Chapter 15, Deployment on an External RDBMS).

The following graph shows the database size increase with the number of print jobs.

Database growth using the internal database

Figure D.1. Database growth using the internal database

These results show that the internal database grows by approximately 8.5MB per 10,000 print jobs.

SQL Server database growth

Database growth using a Microsoft SQL Server database

Figure D.2. Database growth using a Microsoft SQL Server database

These results show that the internal 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 we need to make a number of assumptions. These assumptions should be adjusted 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:

  1. 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.

  2. 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.

  3. 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.