After some analysis I believe the very high default value of
LogDebugHistory (99999) is to blame for this (attaching massif report
from the test case).

With a high number of jobs it's very easy to get hunderds-thousands of messages 
in LogDebugHistory which in turn will lead to enormous memory consumption, e.g.
40000 jobs * 2000 lines * (16 bytes for cupsd_joblog_t structure + 50-60 chars 
per message on average) - 5.66 GB.

After setting LogDebugHistory to 0 the memory consumption never exceeded
300 MB in my tests under the same heavy load. That's a very significant
difference.

The possible workarounds:
1. Decrease LogDebugHistory to a low value (even to 0, upstream it's set to 200 
by default).
2. Change LogLevel to debug (it will slow down cupsd operation significantly, 
but at the price of lower memory consumption as the LogDebugHistory is unused).
3. Make sure jobs are cleaned periodically by setting e.g. PreserveJobHistory 
300.

I am wondering what was the rationale behind increasing LogDebugHistory
to such a high value.

** Attachment added: "massif.out.xz"
   
https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1831021/+attachment/5267574/+files/massif.out.xz

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1831021

Title:
  Extremely high memory consumption under heavy workload

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1831021/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to