поднял на стареньком компе FreeBSD (AMD K6-2 300MHZ 64MB) собрал ядро со следующими параметрами:
options IPFIREWALL
options IPDIVERT
options DUMMYNET
options TCP_DROP_SYNFIN
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_FORWARDпоставил две сетевушки, одна смотрит в домашнюю сеть, вторая в приватную. в ipfw в данный момент порядка 100 строк с правилами.
проблема в следующем
когда я начинаю копировать какой нибудь файл из одной подсети в другую, то скорость не поднимается выше 3Мбайт хотя по суте, при 100Mbit соединение должна быть хотя бы 7-9Мбайт, и при этом top показывает что процессор занят практически на 100% прирываниями
CPU states: 3.5% user, 0.0% nice, 2.7% system, 92.3% interrupt, 1.5% idleсетевухи стояли самые простые, на риалтековских чипах, поменял их на Intel PWLA8390MT, стало конечно немного лучше (скорость теперь поднимается до 6Мбайт) но все же хотелось бы что бы сетка работала шустрее.
можно ли устранить эту проблему програмными средствами? если да, то каким образом? или же все таки нужно менять аппаратную чать?
>поднял на стареньком компе FreeBSD (AMD K6-2 300MHZ 64MB) собрал ядро со
>следующими параметрами:
>options IPFIREWALL
>options IPDIVERT
>options DUMMYNET
>options TCP_DROP_SYNFIN
>options IPFIREWALL_VERBOSE
>options IPFIREWALL_VERBOSE_LIMIT=10
>options IPFIREWALL_FORWARD
>Попробуй отключить VERBOSE и DUMMYNET (если не используется) и включить device polling (man 4 polling).
>>поднял на стареньком компе FreeBSD (AMD K6-2 300MHZ 64MB) собрал ядро со
>>следующими параметрами:
>>options IPFIREWALL
>>options IPDIVERT
>>options DUMMYNET
>>options TCP_DROP_SYNFIN
>>options IPFIREWALL_VERBOSE
>>options IPFIREWALL_VERBOSE_LIMIT=10
>>options IPFIREWALL_FORWARD
>>
>
>Попробуй отключить VERBOSE и DUMMYNET (если не используется) и включить device polling
>(man 4 polling).
DUMMYNET оставил, т.к. использую эту функцию. убрал VERBOSE скорость сразу увеличилась до 6Mbyte/s.разобрался с polling
собрал ядро со следующими опциями:
options DEVICE_POLLING
options HZ=1000настроил polling следующим образом:
sysctl kern.polling.enable=1
sysctl kern.polling.user_frac=10теперь скорость поднимается до 11Mbyte/s! и при этом система остается жива а не замерает как раньше:)
большое спасибо Shane.
>DUMMYNET оставил, т.к. использую эту функцию. убрал VERBOSE скорость сразу увеличилась до
>6Mbyte/s.На самом деле IPFIREWALL_VERBOSE не может никак влиять на производительность.
Указание этой опции влияет только на то, что значение переменной net.inet.ip.fw.verbose по-умолчанию будет единица, а не ноль.ЗЫ. Это так, для истории, чтобы не вводить в заблуждение тех, кто может прочитать этот тред.
>>поднял на стареньком компе FreeBSD (AMD K6-2 300MHZ 64MB) собрал ядро со
>>следующими параметрами:
>>options IPFIREWALL
>>options IPDIVERT
>>options DUMMYNET
>>options TCP_DROP_SYNFIN
>>options IPFIREWALL_VERBOSE
>>options IPFIREWALL_VERBOSE_LIMIT=10
>>options IPFIREWALL_FORWARD
>>
>
>Попробуй отключить VERBOSE и DUMMYNET (если не используется) и включить device polling
>(man 4 polling).Как я понял, машина стоит в качестве шлюза в инет. Если все компы в частной сети находятся в одной сети т.е.имеют адреса из одной подсети, то шлюз при передаче данных в одной подсети в работе участвовать не должен.
NATD работает через IPDIVERT.
Такая связка не очень быстро работает на старых машинках с последними ядрами.Если есть желание добиться максимальной скорости при минимальной нагрузке, то импользуй pf. В pf nat реализован на уровне ядра. Работает очень быстро!
AMD-K6 500MHz 32MBОпции ядра те же, только без dummynet. Оба if на RealTek 100Mbit. Тот же предел в 3MB/s.
Попробовал включить polling, в итоге вообще не вижу разницы, разве что теперь постоянно ~11% уходит на прерывания (при HZ=1000), т.е. только минус в итоге. user_frac что 10, что дефолтный 50 - толку тоже ноль, машина фактически только сетью и занята.
Используется ipfw+natd. Правил пустяк, вся суть которых в выходе из одной сети в другую через один ip этой машины, закрытая схема стены, т.е. только выход с dynamic rules.Одно только: узнал, что kern.polling.enable is deprecated ;)
Что в моем случае можно подкрутить? Может я не до конца разрулил polling? Или мой единственный шанс выбросить RealTek? :( Просто эти же карточки, когда-то показывали довольно неплохие скоростя ~6-7MB/s.