Jump to content
Калькуляторы

Оптимизация софтового шейпера, фаервола

Имеется сервер:

Процессор - Core2 3.00GHz

Память - 2 Гб

Встроенная сетевая карта - Broadcom BCM5721

 

На сервере стоит Debian ядро 2.6.18-6-686 При установки системы ни каких оптимизаций под сетевые задачи не проводилось. Просто ставили как предлагалось по умолчанию.

 

Основными задачами сервера являются:

1- «Выпускание» пользователей в Интернет средствами iptables

2 – Шейпинг трафика средствами tc

 

Как обычно бывает, с ростом каналов, росла, и загрузка ЦП пришлось искать пути оптимизации.

 

Практика показала, что и iptables и tc довольно легко поддаются оптимизации.

iptables - путём структурирования правил.

tc - в результате использования хешей.

Эти решение дали примерно троекратный прирост производительности.

Также был увеличен параметр / proc/sys/net/ipv4/netfilter/ip_conntrack_buckets – было присвоено значение равное ip_conntrack_max, что также разгрузило процессор примерно на 10%.

Тем не менее, не смотря на всё вышеперечисленное, при потоке в 500 Мбит/с загрузка ЦП доходит до 70%

 

Существует твердая уверенность, что канал и далее будет расти, а вот идей по оптимизации уже не осталось.

 

Пожалуйста, подскажите, что ещё можно оптимизировать в сетевой подсистеме, дабы повысить её производительность?

 

И ещё вопрос:

Будет ли ощутимый прирост производительности, если вместо встроенной сетевой карты Broadcom BCM5721 поставить что-нибудь другое?

 

Share this post


Link to post
Share on other sites

1 Ядро поновее

2 Подробнее о Core2 3.00GHz

3 Broadcom заменить на Intel 82576 или 82571

4 «Выпускание» перевести на ipset

5 Шейп на одной машине, нат на другой

6 Поставить 2-й тазик или проапгрейдить этот до core i7

Edited by DemYaN

Share this post


Link to post
Share on other sites

Да и в память вы скорее всего уже упираетесь.

Share this post


Link to post
Share on other sites

Спасибо за советы

На счёт ядра, ipset и Broadcom попробуем

NAT и так уже на другой машине

 

 

Процессор:

cat /proc/cpuinfo

processor : 0

vendor_id : GenuineIntel

cpu family : 6

model : 15

model name : Intel® Core2 Duo CPU E6550 @ 2.33GHz

stepping : 11

cpu MHz : 2327.555

cache size : 4096 KB

physical id : 0

siblings : 2

core id : 0

cpu cores : 2

fdiv_bug : no

hlt_bug : no

f00f_bug : no

coma_bug : no

fpu : yes

fpu_exception : yes

cpuid level : 10

wp : yes

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx smx est tm2 cx16 xtpr lahf_lm

bogomips : 4658.45

 

 

подскажите а как в Debian можно получит подробную инфу о установленных сетевых картах ?

Edited by mirk

Share this post


Link to post
Share on other sites

lspci |grep Ethernet

 

PS Процессор Core2 3.00GHz и Intel® Core™2 Duo CPU E6550 @ 2.33GHz как-то не совпадает :)

Edited by DemYaN

Share this post


Link to post
Share on other sites

подскажите а как в Debian можно получит подробную инфу о установленных сетевых картах ?

можно сразу lspci, cat /proc/interrupts, ethtool -S eth0, ethtool -g eth0

Edited by pliskinsad

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this