fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Технології

Підвищення продуктивності білінгової системи

Найчастіше необхідно брати та тарифікувати великі обсяги NetFlow потоку з маршрутизаторів. Для того, щоб пакети не знищувалися при заповненні приймального буфера необхідно в конфігураційному файлі utm5.cfg збільшити розмір цього буфера:
nfbuffer_bufsize=10485760
Дана директива встановлює розмір приймального буфера рівний 10 МБ. При цьому при старті ядра білінгової системи в debug.log повинна бути вказана рядок про успішне збільшення приймального буфера:
?Debug : Jan 29 19:39:30 NFBuffer: Setting SO_RCVBUF to bytes
У деяких випадках знадобиться
збільшити максимально допустимий розмір приймального буфера в операційній
системі. Провести дану операцію під Linux можна командою:
sysctl -w net.core.rmem_max=10485760
під FreeBSD:
kern.ipc.maxsockbuf=10485760
net.inet.udp.recvspace=10485760
net.local.dgram.recvspace=10485760
net.inet.udp.maxdgram=100000
В результаті таких налаштувань білінгова система зможе приймати великі обсяги NetFlow пакетів. Зокрема не буде відбуватися втрата пакетів в моменти пікових завантажень.
Для зменшення навантаження на CPU і зменшення займаного на
жорсткому диску місця необхідно використовувати новий механізм зберігання детальних
даних по трафіку. Детальні дані представляють собою повну копію всього NetFlow потоку прийнятого білінговою системою. Для включення нового механізму необхідно в центрі керування в розділі «Налаштування» додати опцію:
raw_storage_file=1
після додавання даного
параметра необхідно зробити перезапуск ядра білінгової системи.
При цьому детальні дані будуть
записуватися у файли з розширенням .utm. Формат файлів
розроблений в компанії НетАП. Для подальшого аналізу цих даних можна скористатися
утилітою get_nf_direct. Приклад використання:
/netup/utm5/bin/get_nf_direct -b /netup/utm5/db/iptraffic_raw_1138443603.utm –u
Результатом роботи буде висновок
даних, збережених у файлі /netup/utm5/db/iptraffic_raw_1138443603.utm.
Ядро білінгової системи
виробляє запис детальних даних у файл протягом 1 години. Далі проводиться
закриття файлу і відкриття нового. Після того як файл був закритий викликається
зовнішня програма /netup/utm5/bin/raw_fd_script, якої в параметрах передається
шлях до закритого файлу. Дана програма робить необхідні дії –
архівування, резервне копіювання і ін
Приклад програми /netup/utm5/bin/raw_fd_script
на мові shell:
#!/bin/sh
gzip $*
В результаті таких налаштувань
білінгова система буде оптимально використовувати ресурси CPU і дискової підсистеми.
На стенді компанії були НетАП
проведені випробування продуктивності біллінгової системи при великих
обсяги статистики. Для тестування був використаний сервер наступної
конфігурації:
CPU: Intel Pentium 4 частота 3.00 ГГц
Оперативна пам’ять: 2 ГБ
Жорсткий диск: 250 ГБ Serial ATA
Мережева карта: Intel 100 Мбіт/сек
Операційна система: Gentoo Linux
Для створення тестового NetFlow потоку використовувався
окремий сервер. В якості генератора Netflow пакетів використовувалася утиліта utm5_flowgen. Завантаження фіксувалася утилітою top. Для того, щоб умови були максимально наближені до реальних, NetFlow потік на 100% містить статистику, що належить зареєстрованим в білінговій системі тестових абонентам. Коректність прийому і тарифікації контролювалася за даними звіту за трафіком і даними з розділу «Додатково» – «Статистика».
Результати випробувань наведені на
графіку.
Малюнок 1 Завантаження
CPU залежно від інтенсивності NetFlow – потоку
В реальній мережі, за спостереженнями співробітників компанії НетАП, в середньому повністю завантажений канал пропускною здатністю 100 Мбіт/сек генерує
статистику в 100 NetFlow пакетів в секунду. За розрахунками, 3000 NetFlow пакетів в секунду будуть відповідати повністю завантаженому каналу 3
Гбіт/сек.
Всі права захищені (c) 2001-2006 NetUP (www.netup.ru)