How Does Hardware Checking Affect Printing Speed?
PaperCut provides accurate tracking of printer usage by analyzing the printer spool file on the server. Before the job is sent to the printer, PaperCut determines the job attributes including the page count, color/grayscale, duplex, paper-size, etc. There are some cases where the pages printed can differ from PaperCut’s up-front analysis. Hardware checking can be used to confirm with the printer how many pages were printed.
Hardware checks can improve log accuracy, but it does slow down printing a little by causing a delay between print jobs. To explain why this is the case we first explain how hardware checking works.
The Printer SNMP standard allows querying of printer status and page count information over SNMP. PaperCut makes use of this information to verify the number of pages printed for each print job. This works as follows:
- Before the print job is sent to the printer PaperCut confirms the printer is idle (i.e. not printing).
- A snapshot of the page counters is retrieved using SNMP.
- PaperCut waits for the job to complete by querying the printer status and page counts. If the printer is in error (e.g. out of paper), then PaperCut will continue to wait until the printer error is resolved and the job completes printing.
- Once the job is completed and the printer is idle, another snapshot of the page counts is taken.
- The total pages printed is calculated using the differences between the initial and the post-job snapshot.
Hardware checking affects printing speed by introducing a delay between print jobs while it is waiting for the previous job to complete printing (Step 3 above). PaperCut detects a job has completed by querying the SNMP status and waiting for the device to go into an “idle” state. PaperCut waits to see a few seconds of consistent idle state before taking a snapshot of the page counts and releasing the next job. We wait this time because some printers briefly indicate they are idle whilst still printing a job. PaperCut needs to be 100% sure the previous job has finished before continuing.
This process of waiting for the printer to become idle introduces 2 types of delays:
- The delay whilst waiting for the printer to become idle.
- The delay caused by not allowing the next job to spool while the previous job is being completed. With hardware checking disabled, this process allows the printer to start processing the next job before the previous job is completed.
Enabling hardware checking will slow down printing to a degree. So there is a compromise between improved logging accuracy and the speed of printing. Each site needs to evaluate this compromise to determine if hardware checking meets their needs. Hardware checks can be disabled if printing speed is a priority.
Some sites choose to enable hardware checking to more closely match PaperCut logs with the devices meter/billing counters. If this is the only reason, we generally recommend against this as there will always be some level of discrepancy between these counters as discussed here.
There is an advanced method to fine-tune the PaperCut’s Hardware Page Count. We’ve documented how this feature can be modified so that you can understand how it works, but in almost all cases the PaperCut Support team recommends staying with the default options.
WARNING: Tampering with these settings can cause major problems like print jobs not being released, or pages not being counted correctly. If you decide to modify these settings, make small changes at a time and test each one thoroughly.
When Hardware Page Checks is enabled, PaperCut waits for the printer to report an “idle” state before releasing the next job from the print queue. When the job is released, the printer state changes to “printing” until the job is done, then will return to an “idle” state.
You can adjust this behavior by modifying two values in the Print Provider configuration file.
- “Before” Loops - If the printer is IDLE, this is how many “loops” (1 loop = 1 second) PaperCut will wait before releasing a print job. The default is 0, which is the fastest option. There’s no need to change this.
- “After” Loops - After the meter stops incrementing (which would suggest the printer is done printing) this is how many “loops” (1 loop = 1 second) PaperCut will wait, before recording the final meter read, and then releasing the next job. The default is 5, but you may be able to lower this to 3 for fast printers, greater than 60 pages per minute (PPM). Setting this value too low can cause PaperCut to undercount the page count for the current job and overcount the next job.
To adjust these values, open the print-provider.conf file on your print server where the PaperCut Print Provider is installed. This is stored in
[application-directory]\providers\print\[platform]\print-provider.conf. (On a 64-bit print server running PaperCut MF this path would be C:\Program Files\PaperCut MF\\providers\print\win\print-provider.conf).
In this file you can add up to 5 custom lines to specific unique hardware page check settings for specific printer models or manufacturers. Each of these lines starts with HWCheckModel1, HWCheckModel2, up to HWCheckModel5.
In this example you can see a rule set for a model “HP Laserjet 4100” and a manufacturer “Brother”. This string is matched with what the device self-reports using SNMP.
HWCheckModel1=model=“HP Laserjet 4100” beforeloops=“0” afterloops=“4”
HWCheckModel2=model=“Brother” beforeloops=“0” afterloops=“3”
Keywords: snmp, hardware check, hardware validation, printer port, slow printing, delayed printing