What requires memory

The pdserver needs memory for many purposes. It is probably obvious that memory is required for all the objects in the pdserver. The more objects, the more memory required. However, the pdserver needs memory not only for the objects it contains, but also for the functions it does related to those objects. InfoPrint Manager is rich in functions and allows many alternatives on how to configure and use the system. Some of these configuration decisions require more memory than others.

Some examples of functions that require memory include queued notifications for both end users and GUIs, threads for scheduling jobs, threads for processing jobs, threads for communicating with printers, alarms for handling when to delete retained jobs, scheduler verification records for queued jobs, and memory to handle collecting the information to return on queries of objects. This is not intended to be a complete list; that would be extremely difficult to generate. Suffice it to say, any given function is going to require memory to be performed. The required memory for a given function depends on many variables. Some examples include:

  • A scheduler verification record is needed for every actual destination for every job in a queue. So if you have 10 jobs in a queue with 10 actual destinations, there would be 100 verification records. However, if you have the 10 jobs split between 2 queues, each queue having 5 actual destinations, there would be only 50 verification records.
  • By default, there is a scheduler thread for every scheduling algorithm used by a queue, but if you change the queue's assign-to-destination attribute value to true, there is a scheduler thread for each actual destination on the queue.
  • There is a thread for every processing job. If you increase the maximum-concurrent-jobs from 5 to 10, and you have 100 actual destinations, the number of potential processing job threads increases from 500 to 1000.
  • If a query for all the jobs in the pdserver is received, the pdserver needs to make a copy of the data to return on the query. The amount of memory required for the data grows as the number of jobs grows.

Many factors affect the memory required for a pdserver. The memory required is not linear to the number of objects in the pdserver.