Performance issues in cups 1.3

angelb angelb at bugarin.us
Tue Feb 26 13:48:09 PST 2008


> > > Does anyone know if this performance issue been addressed in 1.3.6?
> >
> > We haven't added any additional tests WRT poll() since the issue
> > was limited to specific versions of HP-UX not honoring the poll()
> > timeout.
> >
> > > I'm testing 1.3.5 and running into the same problem with AIX and
> > > Solaris clients.
> >
> > It would be useful to find out where the performance bottleneck is.
> > Have you done any profiling to determine where cupsd is spending the
> > most time?
>
> Ok, I had a chance to run some statistics on one AIX 5.2 system.
>
> Running lpstat -p: (AIX 5.2)
>
> Here, cupsd is using 11.94% CPU which is spent most of its time in the
> kernel and shared libraries.
>
> Process                                Freq  Total Kernel   User Shared  Other
> =======                                ====  ===== ======   ==== ======  =====
> wait                                      2  73.95  73.95   0.00   0.00   0.00
> cupsd                                     1  11.94   6.32   0.88   4.74   0.00
> /usr/openv/netbackup/bin/bptm             1   4.63   4.55   0.00   0.08   0.00
> /opt/TWWfsw/bin/lpstat                    1   3.55   1.00   0.36   2.20   0.00
>
>
> Breakdown of CPU usage by PID:
>
> Process                   PID      TID  Total Kernel   User Shared  Other
> =======                   ===      ===  ===== ======   ==== ======  =====
> wait                    12294    12295  38.00  38.00   0.00   0.00   0.00
> wait                     8196     8197  35.95  35.95   0.00   0.00   0.00
> cupsd                  430266   999529  11.94   6.32   0.88   4.74   0.00
> v/netbackup/bin/bptm   626814   553213   4.63   4.55   0.00   0.08   0.00
>
>
> Shared Object                                                             %
> =============                                                          ======
> /usr/lib/libc.a[shr.o]                                                   5.26
> /opt/TWWfsw/cups135/lib/libcups.so                                       2.08
>
>
> Probably irrelevant(shown for completeness):
> Subroutine                                            %   Source
> ==========                                         ====== ======
> .waitproc_find_run_queue                            44.51 rnel/proc/dispatch.c
> .waitproc                                           20.04 rnel/proc/dispatch.c
>
>
> Subroutine                                            %   Source
> ==========                                         ====== ======
> ._doprnt                                             1.01 cs/lib/libc/doprnt.c
>
>
> I'm reinstalling CUPS on the other AIX system. Whenever I do an
> lpstat, cupsd dies(disappear) and no error is produced. Hopefully,
> with the reinstall, it clear things up a bit. I will also try to get
> statistics on the Solaris system.
>
> Thanks,
> Angel

Here's a profile from the other AIX 5.2 client:

Like the other AIX client, cupsd is taking much time in kernel and
share libraries.

Process                                Freq  Total Kernel   User Shared  Other
=======                                ====  ===== ======   ==== ======  =====
wait                                      2  82.45  82.45   0.00   0.00   0.00
cupsd                                     1  10.92   5.97   0.72   4.23   0.00
/opt/TWWfsw/bin/lpstat                    1   3.13   0.76   0.28   2.09   0.00


Process                   PID      TID  Total Kernel   User Shared  Other
=======                   ===      ===  ===== ======   ==== ======  =====
wait                    12294    12295  45.25  45.25   0.00   0.00   0.00
wait                     8196     8197  37.20  37.20   0.00   0.00   0.00
cupsd                 2093286  1679569  10.92   5.97   0.72   4.23   0.00
pt/TWWfsw/bin/lpstat   626692  2605281   3.13   0.76   0.28   2.09   0.00



Shared Object                                                             %
=============                                                          ======
/usr/lib/libc.a[shr.o]                                                   5.02
/opt/TWWfsw/cups135/lib/libcups.so                                       1.99




Summary(cups):

cupsd                                     1  10.92   5.97   0.72   4.23   0.00
cupsd                 2093286  1679569  10.92   5.97   0.72   4.23   0.00
/opt/TWWfsw/cups135/lib/libcups.so                                       1.99
  Profile: /opt/TWWfsw/cups135/lib/libcups.so
  Total % For All Processes (/opt/TWWfsw/cups135/lib/libcups.so) = 1.99
.cups_array_find                                     0.19 array.c
.cupsFilePrintf                                      0.15 file.c
.cupsGetDest                                         0.12 dest.c
.cupsAddDest at AF14_11                                 0.06 dest.c
.cups_write                                          0.06 file.c
.cupsFilePuts                                        0.06 file.c
.cupsArrayFind at AF28_17                               0.05 array.c
.cupsFileTell                                        0.04 file.c
.cupsFilePutChar at AF41_15                             0.04 file.c
.cupsFileFlush at AF33_26                               0.03 file.c
.cups_get_sdests                                     0.02 dest.c
.cupsArrayCurrent                                    0.01 array.c
._cupsStrFree                                        0.01 string.c
.cupsArrayCount                                      0.01 array.c
.cupsArrayNext at AF33_8                                0.01 array.c
.cups_array_add                                      0.01 array.c
.cupsFileFlush                                       0.01 file.c
.cupsFilePutChar                                     0.01 file.c

I'm working on the Solaris client; though, not sure really how to do
it yet. dtrace isn't the easiest tool to work with... :(


Thanks,
Angel





More information about the cups mailing list