BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: скорость ipfw table add из файла
СообщениеДобавлено: Ср 11 фев, 2015 5:32 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3353
Откуда: Харьков
если ли варианты ещё быстрее этих?
Код:
time (jot 100000 1 | while read ip; do ipfw table 8 add $ip; done )
30,13s user 106,12s system 102% cpu 2:13,50 total

Код:
time (jot 100000 1 | xargs -n 1 ipfw table 8 add)
18,87s user 48,46s system 99% cpu 1:07,36 total


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скорость ipfw table add из файла
СообщениеДобавлено: Ср 11 фев, 2015 6:08 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3353
Откуда: Харьков
похоже самый быстрый вариант:
Код:
time (jot 100000 1 |awk '{print "table 8 add "$1}'| ipfw /dev/stdin)
0,42s user 0,37s system 119% cpu 0,655 total


только он не красивый
варианты?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скорость ipfw table add из файла
СообщениеДобавлено: Ср 11 фев, 2015 6:12 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5376
Откуда: Москва
Что-нибудь типа этого?
Код:
jot 100000 1 | sed -e 's|.*|table 8 add &|' | ipfw /dev/stdin

PS. Опоздал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скорость ipfw table add из файла
СообщениеДобавлено: Ср 11 фев, 2015 6:15 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3353
Откуда: Харьков
кстати только что попробовал 9кк значений, фря упала )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скорость ipfw table add из файла
СообщениеДобавлено: Ср 11 фев, 2015 6:28 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3353
Откуда: Харьков
ещё оказалось можно подготовить файл с содержимим вида
table add 8 10.10.10.2
table add 8 10.10.10.3
table add 8 10.10.10.4
table add 8 10.10.10.5

и потом ipfw полный_путь_к_этому_файлу
но похоже смысла в этом нет, проще на лету генерировать, да и немного медленнее выходит


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скорость ipfw table add из файла
СообщениеДобавлено: Ср 11 фев, 2015 6:33 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5376
Откуда: Москва
grayich писал(а):
кстати только что попробовал 9кк значений, фря упала )

Небось память кончилась. 10 миллионов добавляется без проблем, 2.6G wired.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скорость ipfw table add из файла
СообщениеДобавлено: Ср 11 фев, 2015 8:08 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3353
Откуда: Харьков
AMDmi3 писал(а):
Небось память кончилась
наверно, 2G
просто не ожидал, что так, думал ошиПку скажет )

впрочем даже миллион записей не нужен, интересно даже, используется ли где такие объёмы
в среднем используется до 30к


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скорость ipfw table add из файла
СообщениеДобавлено: Ср 27 окт, 2021 12:11 am 
Не в сети

Зарегистрирован: Вт 26 окт, 2021 11:47 pm
Сообщения: 1
И спустя много лет таки появилось решение! Парсинг файла с должниками, с торжественным занесением их в таблицу IPFW, без промежуточных файлов. Собираем одну единственную последовательность команд IPFW и запускаем на выполнение. Работает в два-три раза быстрее классического "поштучного" внесения IP в таблицу.
debturnoff.txt - список IP кандидатов на вылет. Читаем построчно поля с разделителями «;» Во втором поле – IP. В конце каждой команды для shell/bash ';' – разделитель (последовательный запуск). На выполнение улетает строка типа:
ipfw table 13 add 10.0.0.1;ipfw table 13 add 10.0.0.2;ipfw table 13 add 10.0.0.3;... Если яиц, т.е. ядер на процессоре много, можно попробовать вместо ';' вставить '&' и вся сборка уйдёт в параллельное выполнение, что ещё добавит быстродействия.

Код:
    ipfw table 13 flush

    CMD
=$(cat debturnoff.txt | ( while read LINE
    do
    CMD
=${CMD}'ipfw table 13 add '`echo ${LINE}|cut -d ';' -f2`';'
    done
    eval $CMD
))


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot], torsar


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика