Subject: Re: Strange CPU load when flushing route cache (kernel 2.6.31.6)

From: Eric Dumazet <[email-masked]>
Date: Thu, 26 Nov 2009 12:05:07 +0100

Jesper Dangaard Brouer a écrit :
> On Mon, 2009-11-23 at 15:03 +0100, Eric Dumazet wrote:
>>> grep LowTotal /proc/meminfo
>>> LowTotal:         747080 kB
>>>
>>> What does that mean?  Is it bad? What should I run on a 32-bit
>>> system/kernel?
>> If you have more than 1GB of physical ram, and use your machine as a router, you might
>> compile a 2GB/2GB User/Kernel kernel, to get twice available RAM for kernel
>> and more IP route entries (if needed)
> 
> Can I still use this option if the machine "only" have 2G of physical
> RAM?  Most of my production machines have 2G RAM.
> 
> Just to verify: This is not an issue on 64-bit kernels right?

If your kernel is 32bit, and you have 2GB of ram, then selecting a 2G/2G split
allows your kernel to use more ram (This is called LOWMEM.

Yes, this not an issue on 64bits kernels : All RAM is LOWMEM :)

> 
>> make menuconfig
>> --> Processor type and features
>>   --> Memory split
>>     --> 2G/2G
> 
> For completeness sake, Memory split depends on "if EMBEDDED"
> 
> So I also needed to enable:
> 
>  make menuconfig
>   --> General setup
>      --> Configure standard kernel features (for small systems) 
> 
> 
>>> Can you recommend any other /proc/sys/ tuning options?
>> Really hard to say without exact context of use :)
> 
> The machines does Internet traffic routing, but with a VERY large
> iptables rulesets, e.g. on one production machine I have 18409 chains
> and 62916 iptables rules. (I did most of the scalability patches to
> iptables userspace to make this work...). And the machines also uses a
> very large HTB tree.  Basically I do, per customer, Access Control,
> Bandwidth limiting and Personal firewall.
> 
> Also note that I'm reserving extra vmalloc memory as iptables uses
> vmalloc'ed memory...

> 
> Okay I'll keep boot parameter then... or is it possible to resize the
> hash runtime?

Nope, we use RCU lookups, so a resize would be complex.