unhappy_mage
[H]ard|DCer of the Month - October 2005
- Joined
- Jun 29, 2004
- Messages
- 11,455
I just bought a new box (Intel Atom 230-based) and I want to use it as a router. I'm using pfSense, which is easy to configure, but I'm getting lousy speeds through it. I currently have four interfaces on it: re0/re1 are pci-express Realtek 8111s, and bge0/1 are on a dual-port PCI-X card plugged into the PCI slot on the board.
My internet connection is 100 megabit ethernet, delivered on cat5 by my university. Right now, though, I can only route about 70 megabits to on-campus destinations, and I think network traffic is killing the CPU. Here's a snippet from `top -S` to show what I mean:
As you can see, bge0 is using an entire virtual core by itself, and swi5 is using the rest of the hyperthreaded core. This is with pfSense's WAN interface set to bge0 and LAN set to re0, but I see similar CPU load with every other configuration. I disabled USB on the board so it wouldn't share an IRQ with the network card on the off chance that would help, no luck. I also tried turning off HT; then irq16 takes 2/3 of the CPU and swi5 takes the other third, and things run slower still.
Right now, as far as I can tell, the IRQs are shared like this:
IRQ 16: VGA re0 bge0
IRQ 17: re1 bge1
This mapping persists, even when I set "first PCI card IRQ" to 10 in the BIOS.
My brother has a machine with dual Pentium 3s that can route traffic faster than this, using Intel ethernet cards. Maybe I'll see if I can borrow a dual-port Intel card from somewhere.
Any suggestions other than "get real NICs"?
My internet connection is 100 megabit ethernet, delivered on cat5 by my university. Right now, though, I can only route about 70 megabits to on-campus destinations, and I think network traffic is killing the CPU. Here's a snippet from `top -S` to show what I mean:
Code:
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
27 root 1 -68 - 0K 8K CPU0 0 4:42 100.00% irq16: bge0
11 root 1 171 ki31 0K 8K RUN 1 3:49 72.17% idle: cpu1
18 root 1 -28 - 0K 8K WAIT 1 1:28 23.58% swi5: +
Right now, as far as I can tell, the IRQs are shared like this:
IRQ 16: VGA re0 bge0
IRQ 17: re1 bge1
This mapping persists, even when I set "first PCI card IRQ" to 10 in the BIOS.
My brother has a machine with dual Pentium 3s that can route traffic faster than this, using Intel ethernet cards. Maybe I'll see if I can borrow a dual-port Intel card from somewhere.
Any suggestions other than "get real NICs"?