-
-
Notifications
You must be signed in to change notification settings - Fork 201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pysnmp traps listener throughput #431
Comments
PySNMP does not have a trap receiver, so you need to disclose more about your experiments, or that's just something wrong in your own code. For your information, a simple trap receiver like this can easily handle 1,500-2,000 v1 trap message per second on my Mac mini M1 2020, and this sample is not even optimized (writing log entries to console and a file can slow it down significantly). |
Hi @lextm , thank you very much for such a quick response! |
I cannot comment further on the performance differences, as I don't have access to that specific test machine of yours. About the situation you raised, the UDP packet buffer and how to drop packets when the buffer is full is controlled by the operating system (Windows or Linux for example). If you really want a high performance agent to be built, then a pure Python approach like PySNMP might deprive you from the best as Python itself is slow. An SNMP implementation in C/C++ or another programming language should be considered. |
Hello!
I'd like to understand what is the throughput of pysnmp traps receiver. I made a couple of experiments and figured out that empty callback without any logic is able to receive ~75 t/s on my machine (btw don't know is it machine dependent or not, since from what I saw it's not CPU or anything else bound), which is quite small number. Is it possible to increase this number somehow? And what if there are, e.g., 1000 traps, or 10000 traps sent by devices at the same time - is there a buffer to keep those traps? If yes, what if the size of this buffer has been exceeded?
The text was updated successfully, but these errors were encountered: