Оптимизация FreeBSD для работы в роли сетевого экрана, kostil, 09-Июл-07, 00:08 [смотреть все]поднял на стареньком компе 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 для работы в роли сетевого экрана, Shane, 01:37 , 09-Июл-07 (1)
>поднял на стареньком компе 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 для работы в роли сетевого экрана, kostil, 09:07 , 11-Июл-07 (2)
>>поднял на стареньком компе 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.
- Оптимизация FreeBSD для работы в роли сетевого экрана, butcher, 00:38 , 12-Июл-07 (4)
>DUMMYNET оставил, т.к. использую эту функцию. убрал VERBOSE скорость сразу увеличилась до >6Mbyte/s. На самом деле IPFIREWALL_VERBOSE не может никак влиять на производительность. Указание этой опции влияет только на то, что значение переменной net.inet.ip.fw.verbose по-умолчанию будет единица, а не ноль. ЗЫ. Это так, для истории, чтобы не вводить в заблуждение тех, кто может прочитать этот тред.
- Оптимизация FreeBSD для работы в роли сетевого экрана, Hammer, 23:34 , 15-Июл-07 (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 для работы в роли сетевого экрана, Andrey, 10:44 , 11-Июл-07 (3)
NATD работает через IPDIVERT. Такая связка не очень быстро работает на старых машинках с последними ядрами. Если есть желание добиться максимальной скорости при минимальной нагрузке, то импользуй pf. В pf nat реализован на уровне ядра. Работает очень быстро!
- Оптимизация FreeBSD для работы в роли сетевого экрана, guest, 20:05 , 14-Июл-07 (5)
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.
|