Hi, Community!
The post will share with you how to solve the inefficient concurrent batch queries for components through SNMP.
Symptom
When MIB Browser, snmpwalk, or snmpbulk queries the storage array information through SNMP, information is slowly returned.
Causes
Root cause:
The data in the storage is arranged on a row-by-row basis as shown in the following table. The underlying data is also queried on a row-by-row basis. For example, in querying the underlying data, the first row is returned first, and then the second row is returned. The following table needs to be queried for five times.
1A | 1B | 1C | 1D |
2A | 2B | 2C | 2D |
3A | 3B | 3C | 3D |
4A | 4B | 4C | 4D |
5A | 5B | 5C | 5D |
However, SNMP queries data on a column-by-column basis. It queries column A first, and then column B.
In this case, when the first row is queried, the first column is returned. Then, when the second row is queried, the first column is returned. 1A, 2A, 3A, 4A, 5A, 1B, 2B, 3B, 4B, 5B, 1C, 2C, ..., 4D, and 5D are returned in sequence. In this case, this table needs to be queried for 20 times. If the data is cached, the 3A data just queried by the customer still exists, but the 3D data queried at last does not exist.
There are a large number of logical objects, LUNs, file systems, disks, and interfaces for queries on the storage array. In addition, disks have 26 attributes, and LUNs have 29 attributes. If there are 1000 items in total, more than 26,000 queries are required. However, CLI or REST requires just 1000 queries.
When the customer queries performance statistics through SNMP, SNMP is not notified of the object ID. Instead, SNMP polls the performance statistics of all objects. In this case, SNMP needs to query all existing LUNs first and then query their performance data from performance statistics. When querying performance statistics on DeviceManager or CLI, the customer needs to specify the object ID to be queried, eliminating the need for query the object ID.
As a result, SNMP query efficiency is inferior to that of REST or CLI. In short, the restricted SNMP is not suitable for querying data of a large number of logical objects and further for performance statistics.
Solution
A technical d*** document was released in 2019.
We warmly welcome you to enjoy our community!