Knowledgebase
Knowledgebase: PaperCut > Administration
Mac Server Admin CUPS issue with large no. of print queues
on 08 February 2011 02:58 PM

Mac Server Admin CUPS issue with large no. of print queues

This page has a collection of random notes about the Server Admin cpu/lockup issue. Seems like Server Admin on Mac OS X 10.6 consumes lots of CPU when there is a large number of printers (e.g. approx 50+).

Here are some DTrace props:

Syscall count on servermgrd before opening queues (for approx. 10 seconds):

 macserver0:~ root# dtrace -n syscall:::entry'/execname == "servermgrd"/{ @syscalls[probefunc] = count(); }'
 dtrace: description 'syscall:::entry' matched 434 probes

  select                                                            1
  workq_kernreturn                                                  4
  kevent                                                            6

Not much going on

Syscall count on servermgrd immediately after opening queues (for approx. 10 seconds):

 macserver0:~ root# dtrace -n syscall:::entry'/execname == "servermgrd"/{ @syscalls[probefunc] = count(); }'
 dtrace: description 'syscall:::entry' matched 434 probes

  madvise                                                           2
  workq_kernreturn                                                  6
  kevent                                                            9
  stat64                                                           42
  symlink                                                          42
  unlink                                                           42
  listxattr                                                       105
  mmap                                                            112
  munmap                                                          112
  flock                                                           150
  lstat64                                                         210
  read                                                            294
  getattrlist                                                     315
  gettimeofday                                                    947
  connect                                                        1608
  socket                                                         1608
  close                                                          1650
  fcntl                                                          1692
  open                                                           1699
  poll                                                           4965
  setsockopt                                                     6432
  sendto                                                         9930
  geteuid                                                       12127
  recvfrom                                                      44086

Lots of writes. Why so many calls to geteuid?

Syscall count on cupsd immediately after opening queues (for approx. 10 seconds):

 macserver0:~ root# dtrace -n syscall:::entry'/execname == "cupsd"/{ @syscalls[probefunc] = count(); }'
 dtrace: description 'syscall:::entry' matched 434 probes

  __disable_threadsignal                                            1
  bsdthread_terminate                                               1
  thread_selfid                                                     1
  workq_kernreturn                                                  2
  accept                                                         2894
  close                                                          2894
  getsockname                                                    2894
  setsockopt                                                     2894
  fcntl                                                          5788
  poll                                                          12937
  recvfrom                                                      15274
  gettimeofday                                                  41612
  sendto                                                        80331
  kevent                                                      2623370

When I have some time, I'll add some tracing in CUPS and see if I can work out what's going on. Rant: In the meantime I hope Apple are working on this. One solution (as adopted by many large Mac sites) is to switch the CUPS server to Linux :-)