From: P@draigBrady.com
To: jeremy.guthrie@berbee.com
Cc: netdev@oss.sgi.com
Subject: Re: Linux Policy Routing-Based IDS Load Balancer HOWTO
Date: Tue, 26 Jul 2005 16:09:17 +0100 [thread overview]
Message-ID: <42E6521D.6020601@draigBrady.com> (raw)
In-Reply-To: <200507260946.38894.jeremy.guthrie@berbee.com>
Jeremy M. Guthrie wrote:
> Linux Policy Routing-Based IDS Load Balancer HOWTO
great thanks!
> 4.2.3.1 CPUs should only following one NIC.
>
> If you look at the output below you can see that CPU0 is taking the
> interrupts for eth3. CPU1 is taking interrupts for eth2 & eth0. Optimising
> any system relies on keep thrashing to a minimum.
I recommend you rename these interfaces throughout the doc,
and then you can refer to and write generic scripts against these
known names. For example:
ip link set dev eth2 name ids1
ip link set dev eth3 name ids2
> As a result I highly
> recommend disable IRQ Balancing.
>
> make menuconfig for your kernel config
> Select "Processor type and features"
> Disable "Enable kernel irq balancing"
> Rebuild your kernel and reboot.
>
> You will have to poke around /proc to set which CPU an interrupt binds to.
> Here is what was used to set the interrupt/CPU bindings down below:
> echo 01 > /proc/irq/18/smp_affinity
> echo 02 > /proc/irq/20/smp_affinity
>
> The value used is expressed in powers of two. ie. CPU3 would actually be
> 04.
>
> cat /proc/interrupts
> CPU0 CPU1
> 0: 3184569581 1789102599 IO-APIC-edge timer
> 1: 1005 218 IO-APIC-edge i8042
> 7: 0 0 IO-APIC-level ohci_hcd
> 8: 1 1 IO-APIC-edge rtc
> 12: 122 74 IO-APIC-edge i8042
> 14: 2 0 IO-APIC-edge ide0
> 18: 995373697 5139 IO-APIC-level eth3
> 20: 2 1378253801 IO-APIC-level eth2
> 27: 7542100 9352305 IO-APIC-level eth0
> 28: 4150402 13187680 IO-APIC-level aic7xxx
> 30: 0 0 IO-APIC-level acpi
> NMI: 0 0
> LOC: 679927478 679903506
> ERR: 0
> MIS: 0
As an example of a generic script:
for iface in ids1 ids2; do
int=`grep $iface\$ /proc/interrupts | cut -d: -f1`
int=`echo $int` #strip whitespace
[ "$iface" = "ids1" ] && mask=01 || mask=04
echo $mask > /proc/irq/$int/smp_affinity
done
> 4.3.3 Basic scripts
I find "watch" very useful, for example:
watch -n1 `ethtool -S ids1`
--
Pádraig Brady - http://www.pixelbeat.org
--
prev parent reply other threads:[~2005-07-26 15:09 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-26 14:46 Linux Policy Routing-Based IDS Load Balancer HOWTO Jeremy M. Guthrie
2005-07-26 15:09 ` P [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42E6521D.6020601@draigBrady.com \
--to=p@draigbrady.com \
--cc=jeremy.guthrie@berbee.com \
--cc=netdev@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).