Ticket #47 (closed defect: fixed)

Opened 12 years ago

Last modified 12 years ago

Performance of pykota/pysnmp

Reported by: bse Owned by: jerome
Priority: major Milestone:
Component: pykota Version:
Keywords: snmp performance Cc:


As discussed on the pysnmp-user mailing list, starting 2009-10-09 with subject 'Performance of pysnmp', there is a performance problem within pykota.

I am using version 1.26_official, but I the problem is current.

The problem seems to be in the file snmp.py, class Handler

The patch that Ilya presented in message


has been tested and resulted in at least 4* performance

I think it would be of great benefit to get this into PyKota official release.

Performance is of great importance for us. Last year, on a heavy day, the server was running with cupsd at 100%, pykota polling active printers at 100%, pykota polling printers with problems(paper jam...) another 100%, and close to 1000 smb processes using another 100%.
In total 400%, which is heavy on the old 4 core, 3 GHz production server, and does not give any room for all the other processes that has to run on the server.
Since cupsd was maxed out, adding more CUPSs would not give any benefit.

A rewrite of cupsd got it down to 25%, a small patch to pykota to not poll printers with problems as often as before got that part down to 10%, resulting load on server 25% +100% +10% +100% = 235%
This is on our 4 core 2 GHz production server. (slower, but with more memory)

If this new patch is included in our production environment, the
cpuload for polling active printers could go from 100% to 20%, and in total 25% +20% +10% +100% = 155%.

Taking the slower CPUs into account, the load could be reduced from 400%*3GHz to 155%*2GHz, or by 75%. Not bad. It means that it is possible to run a server for 2000 printers, 10000 users on a single small standard server, just give it some memory, but memory is cheap.


Change History

Changed 12 years ago by jerome

  • status changed from new to closed
  • resolution set to fixed

(In [3506]) Removed all support for pysnmp v3.x
Applied the patch from Ilya Etingof and Börje Sennung to fix #47.

Changed 12 years ago by jerome

(In [3507]) Backported the code that fixed #47.

Note: See TracTickets for help on using tickets.