BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 17 июн 2025, 05:21

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Netflow жрет ОЗУ
СообщениеДобавлено: 25 июл 2014, 17:53 
Не в сети

Зарегистрирован: 14 фев 2014, 13:52
Сообщения: 20
Карма: 0
Добрый день! Биллинг стоит на Centos 6. Проблема такова: с роутера через netflow логи пишутся на сервер биллинга. При этом постепенно забивается оперативка(за месяц примерно с 10% до 55%). После перезагрузки ОЗУ очищается и сбрасывается на рабочее значение 5-10%. Пробовал менять раздел для сохранения логов-изменений нет. При удалении файлов с логами, свободной опер. памяти становиться больше именно на столько, сколько весит этот файл.
Нашел информацию, что возможно надо править эти строки:

# Общее для всех значение, используется, если не указано специально для типа лога
datalog.chunk.size=131072
# DHCP
datalog.dhcp.chunk.size=65536
# RADIUS
datalog.radius.chunk.size=65536
# Netflow/sFlow
datalog.flow.chunk.size=262144


Если правильно мыслю, то как менять значения. Заранее благодарен за помощь!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 25 июл 2014, 18:32 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Так у вас accounting-сервер забивает опертивку ? что показывает его статус ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 26 июл 2014, 07:04 
Не в сети

Зарегистрирован: 14 фев 2014, 13:52
Сообщения: 20
Карма: 0
Что конкретно забивает оперативку или accounting или access не могу разобраться. Как то связано с логами Netflow. Т.к. после отключения Netflow на роутере оперативка останавливается на этом уровне и перестает загружаться. Вот статус Accounting-сервера:

[root@bill BGInetAccounting]# ./accounting_status.sh
Java Runtime: Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM [1.6.0_39] /usr/java/jdk1.6.0_39/jre
Runtime name: 10307@bill
Java endorsed dirs: /lib/endorsed:/usr/java/default/jre//lib/endorsed
OS: Linux 2.6.32-279.el6.x86_64 [amd64], file.encoding: UTF-8, user.name: root
Heap sizes: current=491456k free=488890k max=7292736k
Kernel version 5.2 build 1559 from 26.11.2013 12:44:50
Inet version 5.2 build 1259 from 25.11.2013 13:15:45
Flow listener [null:2055]
flow packets in current minute: 580

Started: 21.07.2014 14:27:42 Uptime: 4 d 21:34:38
Memory total: 31 522 816; max: 238 616 576; free: 9 707 120
Memory pools:
Non-heap memory[Code Cache]: max: 50 331 648; used: 5 727 808; peek: 5 806 016
Heap memory[PS Eden Space]: max: 88 670 208; used: 127 640; peek: 67 174 400
Heap memory[PS Survivor Space]: max: 393 216; used: 245 776; peek: 11 253 840
Heap memory[PS Old Gen]: max: 178 978 816; used: 21 445 632; peek: 178 340 352
Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 31 817 816; peek: 32 009 400
Thread count: 41
Trees in cache: 0
Connections pool to Master status Idle: 3; Active: 0; maxActive: 300; maxIdle: 20


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 28 июл 2014, 07:46 
Не в сети

Зарегистрирован: 14 фев 2014, 13:52
Сообщения: 20
Карма: 0
В какую сторону копать? Перезагрузка раз в месяц не выход. Может где то в настройках коллектора смотреть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 28 июл 2014, 18:42 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Что в inet-accounting.xml? Сколько netflow-агентов?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 29 июл 2014, 18:13 
Не в сети

Зарегистрирован: 14 фев 2014, 13:52
Сообщения: 20
Карма: 0
Агент 1 на роутере. Ниже мой inet-accounting.xml

<?xml version="1.0" encoding="UTF-8"?>
<application context="accounting">
<!-- Уникальное имя приложения -->
<param name="app.name" value="BGInetAccounting"/>
<!-- Уникальный числовой id приложения -->
<param name="app.id" value="1"/>

<!-- Параметры подключения к БД -->
<param name="db.driver" value="com.mysql.jdbc.Driver"/>
<param name="db.url" value="jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&amp;characterEncoding=Cp1251&amp;allowUrlInLocalInfile=true&amp;zeroDateTimeBehavior=convertToNull&amp;jdbcCompliantTruncation=false&amp;queryTimeoutKillsConnection=true&amp;connectTimeout=1000"/>
<param name="db.user" value="bill"/>
<param name="db.pswd" value="bgbilling"/>
<param name="db.validationTimeout" value="10"/>

<!-- Параметры подключения к MQ -->
<param name="mq.url" value="failover:(tcp://localhost:61616)"/>
<param name="mq.user" value="bill"/>
<param name="mq.pswd" value="bgbilling"/>

<!-- id модуля -->
<param name="moduleId" value="1"/>
<!-- id корневого устройства -->
<param name="rootDeviceId" value="1"/>

<!-- Внутренняя переменная приложения, не изменять -->
<param name="commonIdentifierName" value="rootDeviceId"/>

<!-- Параметры сохранения flow-пакетов в файлы логов -->
<!-- Директория, в которую сохранять flow логи -->
<param name="datalog.flow.dir" value="data/flow" />
<!-- Размер блока данных в файле лога, также размер буфера на лог файл и поток слушателя -->
<param name="datalog.flow.chunk.size" value="524288" />
<!-- Сжимать flow логи: 0 - не сжимать, 1 - zlib -->
<param name="datalog.flow.compression.type" value="1" />


<!-- Создание Accounting -->
<bean name="accounting" class="ru.bitel.bgbilling.modules.inet.accounting.Accounting"/>


<!-- Cоздание процессора flow-пакетов -->
<context name="collector">
<!-- Служебный ScheduledExecutorService, необходимый для dataLogger -->
<scheduledExecutorService name="hrlydtlggr" corePoolSize="1"/>

<!-- Cоздание dataLogger, сохраняющего flow-пакеты на диск (только один экземпляр) -->
<bean name="flowDataLogger" class="ru.bitel.bgbilling.modules.inet.collector.IPHourlyDataLogger">
<param name="scheduledExecutor">hrlydtlggr</param>
</bean>

<!-- Cоздание слушателя flow-пакетов на порту с передачей ему dataLogger -->
<bean name="flowListener" class="ru.bitel.bgbilling.modules.inet.collector.InetFlowListener">
<constructor factoryMethod="newInstance">
<!-- Тип слушателя, netflow, netflow9 или sflow -->
<param name="type" value="netflow"/>
<!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->
<param name="host" value=""/>
<!-- Порт, на котором будет открыт сокет -->
<param name="port" value="2055"/>
<!-- Размер буфера приема слушателя -->
<param name="recvBufferSize">4 * 1024 * 1024</param>
<!-- Рекомендуемый SO_RCVBUF сокета -->
<param name="soRCVBUF">512 * 1024</param>
<!-- Количество потоков-обработчиков -->
<param name="threadCount" value="10"/>
<!-- id устройств-источников, если на данном порту нужно обрабатывать данные только у определенных источников -->
<param name="agentDeviceIds" value=""/>
<!-- Передача dataLogger -->
<param name="dataLogger">flowDataLogger</param>
</constructor>
</bean>

<!--
<bean name="flowListener" class="ru.bitel.bgbilling.modules.inet.collector.InetFlowListener">
<constructor factoryMethod="newInstance">
<param name="type" value="netflow9"/>
<param name="host" value=""/>
<param name="port" value="9367"/>
<param name="recvBufferSize">4 * 1024 * 1024</param>
<param name="soRCVBUF">512 * 1024</param>
<param name="threadCount" value="8"/>
<param name="agentDeviceIds" value="4"/>
<param name="dataLogger">flowDataLogger</param>
</constructor>
</bean>

<bean name="flowListener" class="ru.bitel.bgbilling.modules.inet.collector.InetFlowListener">
<constructor factoryMethod="newInstance">
<param name="type" value="netflow"/>
<param name="host" value=""/>
<param name="port" value="9368"/>
<param name="recvBufferSize">4 * 1024 * 1024</param>
<param name="soRCVBUF">512 * 1024</param>
<param name="threadCount" value="8"/>
<param name="agentDeviceIds" value="20"/>
<param name="dataLogger">flowDataLogger</param>
</constructor>
</bean>
-->

<context name="detail">
<!-- Cоздание обработчика flow детализации -->
<bean name="detailWorker" class="ru.bitel.bgbilling.modules.inet.accounting.detail.InetDetailWorker"/>
</context>
</context>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 29 июл 2014, 18:28 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Перезагрузка Accounting освобождает память?
Если да, то если вызвать два-три раза "accounting.sh gc" не приводит к освобождению?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 29 июл 2014, 18:47 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Amir писал(а):
Перезагрузка Accounting освобождает память?
Если да, то если вызвать два-три раза "accounting.sh gc" не приводит к освобождению?


Если верить статусу, то там нечего освобождать вроде.

Цитата:
Memory total: 31 522 816; max: 238 616 576; free: 9 707 120


Этот статус точно снят в момент когда память забита ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 29 июл 2014, 18:50 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Mixer7b писал(а):
Что конкретно забивает оперативку или accounting или access не могу разобраться.


а что показывает htop? какое приложение память потребляет больше всех ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 30 июл 2014, 18:37 
Не в сети

Зарегистрирован: 14 фев 2014, 13:52
Сообщения: 20
Карма: 0
Добрый день!
Память очищается либо при перезагрузке ПК либо при удалении логов. При отключении Netflow, она колеблется плюс\минус 3%, но загруженность не растет.
Требуется небольшое пояснение, возможно я немного запутался и смотрел не на те цифры.
Вот информация о памяти:

# free -m
total used free shared buffers cached
Mem: 32045 18898 13147 0 375 15974
-/+ buffers/cache: 2548 29497
Swap: 16095 0 16095


Как я понимаю, память может использоваться под дисковой кеш, и поэтому отображаться как занятая. Красным выделена на которую я обращал внимание(занято больше половины)\Зеленым свободная реально.
Ситуация такова: на Роутере и на Сервере биллинга стоят идентичные ОС и Железо. НО у роутера занято 17%, а на биллинге 59%. В день забивается около 1% ОЗУ. Нормально ли это, даже если ее использует дисковой кеш?

НА всякий случай скину скрин htop


Вложения:
Скрин Биллинг.jpg
Скрин Биллинг.jpg [ 702.1 КБ | Просмотров: 4928 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 30 июл 2014, 19:24 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Судя по скриншоту Java приложение НЕ потребляет много памяти ..ДА и памяти реально потреблено - это то, что зеленым показано . Дисковый кэш наш не волнует, он может хоть весь забится. Так и логично что он растет, так как в него попадают файлы. И очищается, когда файлы удаляются. И дисковый кеш очищается, если памяти реально(зеленой) не хватает. Смыслс дискового кэша в том, чтобы использовать свободную память по мере возможности под кэш и очищать если только не хватает памяти реальной(зеленой) . На роутере вашем ничего не кешируется, так как там столько файлов не пишется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 30 июл 2014, 19:28 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Если вам не нравится кэш, вы можете наверное его отключить. Но вопрос - зачем ? если он не мешает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 30 июл 2014, 19:36 
Не в сети

Зарегистрирован: 14 фев 2014, 13:52
Сообщения: 20
Карма: 0
Спасибо! Проблема была еще в том, что логи писались изначально в маленький раздел. Одновременно с индикацией загрузки ОЗУ забивалась и память в этом разделе. В итоге сервис accounting стопорился и абоненты не могли подключиться. Но перезагрузка Сервера давала времени немного поработать accounting'у и поэтому ,почему то, грешили на ОЗУ. В общем огромное спасибо! Будем наблюдать за работой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Netflow жрет ОЗУ
СообщениеДобавлено: 30 июл 2014, 19:48 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Mixer7b писал(а):
Спасибо! Проблема была еще в том, что логи писались изначально в маленький раздел. Одновременно с индикацией загрузки ОЗУ забивалась и память в этом разделе. В итоге сервис accounting стопорился и абоненты не могли подключиться. Но перезагрузка Сервера давала времени немного поработать accounting'у и поэтому ,почему то, грешили на ОЗУ. В общем огромное спасибо! Будем наблюдать за работой.


так надо было смотреть логи accounting-а. Скорее всего там ругалось что-то по этому поводу.


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

Часовой пояс: UTC + 5 часов [ Летнее время ]


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.092s | 47 Queries | GZIP : On ]