Re: net-snmp-5.4.2.1 snmpd cpu usage 100%

bheemesh v <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
Hello,

Since not much updates heard in this case, i want to post some more analysis
i have done in this case:
Most of the cpu time seems to be taken by the if-mib's interface
container_load.

Specifically the macro-level profiling as well as the strace that i have
posted last time has revealed that:

netsnmp_arch_interface_container_load() function from
"if-mib/data_access/interface_linux.c" has a file pointer to "proc/net/dev"
from it tries to get updates of each interface in a while loop, which takes
too much of cpu time when we have many VLAN interfaces defind in our server
this loads CPU 100%.

Specially i have requirement to have atleast 4000 VLAN interfaces and the
above logic needs a re-look in this case.

I request the experts in IF-MIB group to do the needful here, though i have
tried only imature changes here by introducing some usleep(100), which
though is a work around time being.
 A better optimization would solve this problem permanently.

Please update in this respect.

Thanks.

BR,
Bheemesh




On Thu, Nov 5, 2009 at 1:25 PM, bheemesh v <[email protected]> wrote:

> Hello,
>
> Greetings.
>
> Continuing from my below question posted about net-snmp 5.4.2.1 taking 100%
> cpu usage on mips HW, i found the problem similar to the problem ID:
> "*Inefficient route reading kills snmpd on - ID: 465161*"
>
> Now i see from our debug logs, an open being called for every VLAN/IP
> interface created on the server and it repeats and looks like this has taken
> most of the cpu usage time.
>
> The snmpd process is in a loop reading from these files and then doing some
> operation .. I only grepped for opening files…. Maybe this continuous
> looping is consuming cpu too much:
>
> open("/proc/sys/net/ipv4/
> neigh/ethrtm1_2_v995/retrans_time_ms", O_RDONLY) = 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_2_v996/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_2_v997/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_2_v998/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_2_v999/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_2_v1000/retrans_time_ms", O_RDONLY)
> = 11
> open("/proc/stat", O_RDONLY)            = 9
> open("/proc/vmstat", O_RDONLY)          = 9
> open("/proc/net/snmp", O_RDONLY)        = 9
> open("/proc/net/dev", O_RDONLY)         = 9
> open("/proc/sys/net/ipv4/neigh/lo/retrans_time_ms", O_RDONLY) = 11
> open("/proc/sys/net/ipv4/neigh/eth2/retrans_time_ms", O_RDONLY) = 11
> open("/proc/sys/net/ipv4/neigh/eth0/retrans_time_ms", O_RDONLY) = 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v1/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v2/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v3/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v4/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v5/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v6/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v7/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v8/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v9/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v10/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v11/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v12/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v13/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v14/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v15/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v16/retrans_time_ms", O_RDONLY) =
> 11
> open("/proc/sys/net/ipv4/neigh/ethrtm1_1_v17/retrans_time_ms", O_RDONLY) =
> 11
>
> This needs optimization on the number read/open operation done on the
> interfaces as above?
>
> Also from the posted problem ID (*ID: 465161*)status, it looks closed
> without any solution being discussed, is it already corrected?
>
> Please let me know in this regard with your suggessions.
> Thanks very much.
>
> Best Regards,
> Bheemesh
>
>
>
>
>
> On Sun, Nov 1, 2009 at 9:59 AM, bheemesh v <[email protected]> wrote:
>
>> Hello,
>>
>> As part of observations i wanted to add that on the mips HW where if large
>> number of VLAN's are being configured the IP-MIB has to update the
>> ipAddressTable, where in we see such a CPU load of 100%.
>>
>> On the other mips servers nodes where there are no such large VLAN's being
>> configured, we do not see cpu load ans it shows 0%.
>>
>> Is it something to deal with IP-MIB? or the sub aganet configuration for
>> routing?
>>
>> Kindly let me know.
>> Thanks.
>>
>> Best Regards,
>> Bheemesh
>>
>>
>>
>>
>>
>>
>> On Fri, Oct 30, 2009 at 10:56 PM, bheemesh v <[email protected]> wrote:
>>
>>> Hello,
>>>
>>> Currently we are using the net-snmp-5.4.2.1 version on our linux server,
>>> with snmpd running as master agent on x86 environments and as sub-agent on
>>> both x86 and mips environments.
>>>
>>> Now for the sub aganet on x86 cpu usage looks healthy but for the mips
>>> snmpd the cpu usage is occupying 100% most of the time.
>>>
>>> Has such scenario reported in the past in this mailing list (though i did
>>> not come across any)? please suggest your inputs.
>>>
>>> The stratup of the snmpd for mips sub agent is as below:
>>> *snmpd -f -C -c /XX/XXX/etc/SS_NetSNMP/snmpd_subagt.conf -Ls 0 -X -I
>>> -var_route ipCidrRouteTable inetCidrRouteTable*
>>>
>>> The *snmpd_subagt.conf * has this details:
>>>
>>> *agentxSocket tcp:MasterSnmpAgent:705*
>>>
>>> Please send in your inputs and let me know for any more details needed
>>> from my side too.
>>>
>>> Thanks in advance.
>>> Best Regards,
>>> Bheemesh
>>>
>>
>>
>

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july

_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.