Hi All,
I have some questions regarding the use of partialSNMP
and multipleGetBulk
options in SNMP table polling.
According to the documentation:
-
The
partialSNMP
option is described as: "When polling large SNMP tables, you can use the partialSNMP:x option to fetch only 'x' rows at a time." -
The
multipleGetBulk
option is described as: "Gets the table contents, retrieving multiple rows at once."
I've seen configurations using instance;partialSNMP:X;multipleGetBulk:X
, and I'm wondering why both options are needed, as they seem to perform similar functions.
Thanks!
Hi,
-multipleGetBulk is the option that determines the way that the communication with the device is happening. E.g. multipleGetBulk:5 means that we are asking the device to return (max) 5 rows per request.
-partialSNMP is the option that determines when we should pause fetching the table data in between. This is used when a large table needs to be polled. E.g. when it takes a long time to poll a table then it means that it is not possible to do something else in between, e.g. perform an SNMP set, start a QAction when clicking a button,... as the SLProtocol thread is "frozen" and waiting on the result from SLSNMPManager. This will even generate an RTE when it is taking more than 15 minutes. By having a pause in between, there is room for something else prior to be handled.
With the combination of partialSNMP:1000;multipleGetBulk:5 means that the SLSNMPManager process is going to request data per 5 rows to the device. Once there are 1000 rows collected (or end of the table), it will return back to the SLProtocol process which will then determine to first execute something else or will signal back to SLSNMPManager that it can continue to fetch the next 1000 rows of the table.
Regards,
Hi Jason,
I believe multipleGetBulk is focused more on performance; as in how many rows are fetched per GetBulk request.
partialSNMP's focus is on reliability; as in even if one GetBulk fails or returns incomplete data, you tell it to keep going on - this way you might get some data instead of none.