forum.bitel.ru http://forum.bitel.ru/ |
|
[6.0] Inet - чистка (удаление) старых таблиц. (CRM) http://forum.bitel.ru/viewtopic.php?f=44&t=9069 |
Страница 1 из 1 |
Автор: | nik247 [ 20 мар 2014, 18:01 ] |
Заголовок сообщения: | [6.0] Inet - чистка (удаление) старых таблиц. |
Уважаемые разработчики. Не подскажете процедуру/рекомендации по чистке/удалению таблиц для модуля(ей) Inet 6.0? Изначально (исходя из рекомендаций) был выделен раздел под БД - 100ГБ. И вот он почти заканчивается - осталось около 8ГБ после полтора года работы. И с такой скоростью заполнения, как сейчас, раздел заполнится через месяц. Основное место в БД занимают таблицы модуля Inet. Сейчас в БД всего 14 444 файла. |
Автор: | Amir [ 20 мар 2014, 18:06 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
А какие таблицы Inet занимают достаточно большие объемы, чтобы из удаление заметно повлияло на свободное место? |
Автор: | skyb [ 20 мар 2014, 18:17 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
Amir писал(а): А какие таблицы Inet занимают достаточно большие объемы, чтобы из удаление заметно повлияло на свободное место? нетфлоу ))))))))))) |
Автор: | nik247 [ 20 мар 2014, 18:43 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
Amir писал(а): А какие таблицы Inet занимают достаточно большие объемы, чтобы из удаление заметно повлияло на свободное место? Вот такой расклад: - inet_session_log_account_{mid}_yyyyMM - 43,768,725K bytes in 2580 files - inet_session_log_detail_{mid}_yyyyMM - 31,780,164K bytes in 1290 files - connection_log_entry_{mid}_yyyyMM - 9,839,390K bytes in 1280 files - inv_ip_resource_subscription_dyn_{mid}_yyyyMM - 3,650,803K bytes in 256 files - bgs_query_log_yyyyMM - 1,508,559K bytes in 48 files - inet_connection__{mid} - 555,441,252 bytes in 110 files Большинство из них с партицированием, про это правда нигде не пишут. |
Автор: | Amir [ 20 мар 2014, 18:55 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
- inet_session_log_account_{mid}_yyyyMM - 43,768,725K bytes in 2580 files - inet_session_log_detail_{mid}_yyyyMM - 31,780,164K bytes in 1290 files - connection_log_entry_{mid}_yyyyMM - 9,839,390K bytes in 1280 files Эти старые, если не нужны - вполне можно удалить. connection_log_entry - координаты DHCP/RADIUS логов, inet_session_log_detail - трафики, разбитые с помощью привязок трафиков, сгруппированные по типу трафика inet_session_log_account - протарифицированная наработка сессий, сгруппированная по услуге |
Автор: | stark [ 21 мар 2014, 12:12 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
skyb писал(а): Amir писал(а): А какие таблицы Inet занимают достаточно большие объемы, чтобы из удаление заметно повлияло на свободное место? нетфлоу ))))))))))) Неверно. netflow лежит в виде файлов на диске, его нет в базе. |
Автор: | skyb [ 21 мар 2014, 12:14 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
stark писал(а): skyb писал(а): Amir писал(а): А какие таблицы Inet занимают достаточно большие объемы, чтобы из удаление заметно повлияло на свободное место? нетфлоу ))))))))))) Неверно. netflow лежит в виде файлов на диске, его нет в базе. от этого он не меньше ![]() |
Автор: | stark [ 21 мар 2014, 12:15 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
nik247 писал(а): Уважаемые разработчики. Не подскажете процедуру/рекомендации по чистке/удалению таблиц для модуля(ей) Inet 6.0? Изначально (исходя из рекомендаций) был выделен раздел под БД - 100ГБ. И вот он почти заканчивается - осталось около 8ГБ после полтора года работы. И с такой скоростью заполнения, как сейчас, раздел заполнится через месяц. Основное место в БД занимают таблицы модуля Inet. Сейчас в БД всего 14 444 файла. А у вас какая схема подключения ? VPN ? трафик как собираете - по netflow ? |
Автор: | stark [ 21 мар 2014, 12:28 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
Вообще есть проблема сейчас, что если настроить inet неправильно, то он может создать просто неограниченные объемы данных . Мы пытались сделать так чтобы timeout сессий был принудительно не меньше 3-х часов, но этим оказалось есть недовольные и это убрали. Проблема модуля Inet в в его гибкости и универсальности, которые позволяют удовлетворить Я это написал к тому, чтобы, возможно, стоит разобраться с объемом данных и уменьшить его в первую очередь, а не бороться просто с помощью удаления старых таблиц. |
Автор: | snark [ 25 мар 2014, 19:22 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
stark писал(а): стоит разобраться с объемом данных и уменьшить его в первую очередь Некие, пусть даже общие, рекомендации не помешали бы, IMHO. |
Автор: | nik247 [ 14 апр 2014, 16:00 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
stark писал(а): nik247 писал(а): Уважаемые разработчики. Не подскажете процедуру/рекомендации по чистке/удалению таблиц для модуля(ей) Inet 6.0? Изначально (исходя из рекомендаций) был выделен раздел под БД - 100ГБ. И вот он почти заканчивается - осталось около 8ГБ после полтора года работы. И с такой скоростью заполнения, как сейчас, раздел заполнится через месяц. Основное место в БД занимают таблицы модуля Inet. Сейчас в БД всего 14 444 файла. А у вас какая схема подключения ? VPN ? трафик как собираете - по netflow ? Мы используем pppoe, pptp, ipoe. Все работает только через radius (Acct-Interim-Interval=300). Трафик собираем и учитываем по netflow. Тарифы все unlim. Типы трафиков только "входящий" и "исходящий" по netflow. |
Автор: | nik247 [ 18 апр 2014, 15:13 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
Отписался выше о схеме работы.... |
Автор: | nik247 [ 08 май 2014, 18:07 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
Время идет, база заполняется, раздел почти заполнился - до время "Ч" осталось пару дней. Поэтому хочу снова обратить внимание на тему. Когда запускал версию 5.2 и выбирал размер партиции под базу, то встречалось мнение, что 100ГБ "хватит за глаза". Но как оказалось на практике - это не относилось к модулю Inet, который начал "кушать" место. Что имеем на текущий момент: Размер партиции под БД - 100ГБ. На текущий момент осталось свободно - 627М (за не полных 2 года работы) - это на пару дней. В работе 6 моделей Inet. Схема работы: pppoe, pptp, ipoe. Все работает только через radius (Acct-Interim-Interval=300). Трафик собираем и учитываем по netflow - за сутки около 30ГБ. Тарифы все unlim. Типы трафиков только "входящий" и "исходящий", привязанный по netflow. Результаты более детального "расследования" по пожирателям дал следующие данные: Код: inv_ip_resource_subscription_dyn: 3883 MB (4.14%) connection_log_entry: 10480 MB (11.17%) inet_session_log_account: 12912 MB (13.77%) inet_session_log: 27320 MB (29.13%) inet_session_log_detail: 34472 MB (36.76%) TOTAL all files size: 93763 MB - 100.00% TOTAL INET used size: 89067 MB - 94.99% Для анализа отобрались самых 5 прожорливых таблиц модуля Inet. Размеры указаны фактические, которые занимают файлы на диске. Выводы: 1) Эти пять таблиц занимают 95% от всего размера БД. 2) Главный пожиратель; 36.76% - inet_session_log_detail - трафики, разбитые с помощью привязок трафиков, сгруппированные по типу трафика с почасовой разбивкой. Что самое интересное, что 33% этой таблицы бестолковые записи, с учетом внутреннего типа трафика "время" - тип "0" со значением 3600 для каждой активной сессий каждый час. Итого имеем, что 10% всей базы составляют такие "нужные" записями, что в часе 3600 сек. Что самое интересное, при нашей схеме работы все данные в этих таблицах для нас вообще не нужны. 3) Анализ показал, что на 1000 клиентов при 2 типах трафика, а по факту 3 типах (+время) - в месяц расходуется около 1000М места в БД для модуля Inet. Это важно знать при планировании выделения места по БД. 4) Таблица inv_ip_resource_subscription_dyn. Не совсем понятно ее назначение. И в описании схемы БД она отсутствует. Кстатит на dbinfo.bitel.ru отсутствует описание не на одну таблицу Inet - минимум штук 5. 5) Начинаю делать дампы самых прожорливых архивных таблиц для освобождения места. |
Автор: | Amir [ 08 май 2014, 18:34 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
inet_session_log_detail используется для отчетов по трафику и для переобсчета. connection_log_entry используется для "Показать DHCP/RADIUS-лог", там координаты старт/стоп пакетов в логах. Это размер в сумме с индексом? Возможно большую часть занимает индекс. |
Автор: | nik247 [ 08 май 2014, 18:54 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
Amir писал(а): inet_session_log_detail используется для отчетов по трафику и для переобсчета. connection_log_entry используется для "Показать DHCP/RADIUS-лог", там координаты старт/стоп пакетов в логах. Это размер в сумме с индексом? Возможно большую часть занимает индекс. Я знаю назначение этих таблиц, за исключением inv_ip_resource_subscription_dyn. Да это размеры файлов, значит с индексами. От этого (насчет индексов) ничего не меняется - раздел заканчивается. Inet оказался очень прожорливым. Выделил мало место под БД изначально, но сейчас это изменить увы не могу - придется пока удалять старые. Вы в рекомендациях по размерам под БД где-то дайте предупреждение насчет прожорливости Inet. На 1000 клиентов - 1000МБ в месяц. |
Автор: | Amir [ 08 май 2014, 19:09 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
Возможно быстрее SQL дампа будет удалить индексы из таблицы, затем сконвертировать ее в MyISAM. Файлы таблицы MyISAM насколько знаю легко можно перемещать, в отличие от таблиц InnoDB. |
Автор: | stark [ 12 май 2014, 18:05 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
nik247 писал(а): 4) Кстатит на dbinfo.bitel.ru отсутствует описание не на одну таблицу Inet - минимум штук 5. Не понял . Какие еще таблицы не описаны? Вот то, что там есть сейчас : Код: Модуль Inet
106 inet_auth_error_{mid}_yyyyMM ошибки авторизации 239 connection_log_entry_{mid}_yyyyMM координаты логов 105 inet_accounting_period_{mid} учетный период 1 inet_connection_{mid} текущие соединения 107 inet_connection_route_179 сети, маршрутизируемые через connection-ы 59 inet_device_{mid} устройство 75 inet_device_type_{mid} тип устройства 337 inet_interface_{mid} интерфейсы, привязанные к типу устройства 342 inet_option_{mid} опции модуля inet 19 inet_serv_{mid} сервис 43 inet_serv_type_{mid} тип сервиса 95 inet_session_{mid} текущие сессии 96 inet_session_account_{mid} наработка по услугам для текущих сессий. 97 inet_session_detail_{mid} детализация по трафикам для текущих сессий 91 inet_session_log_{mid}_{YYYYMM} завершенные сессии 93 inet_session_log_account_{mid}_yyyyMM наработка по услугам для завершенных сесиий 92 inet_session_log_detail_{mid}_yyyyMM детализация завершенных сессий 94 inet_session_log_route_{mid}_yyyyMM сети, маршрутизируемые через выданные завершенными сессиям ip адреса 99 inet_tariff_traffic_max_{mid} значения счетчиков максимальных трафиков. 100 inet_tariff_traffic_max_detail_{mid}_yyyyMM подневная детализация счетчиков максимальных трафиков. 102 inet_tariff_traffic_range_{mid} счетчики диапазонов 103 inet_tariff_traffic_range_detail_{mid}_yyyyMM подневная детализация счетчиков диапазонов. 376 inet_task_process_{mid} задания на переобработку логов 265 inet_traffic_type_{mid} тип трафика 350 inet_traffic_type_link_{mid} привязка типов трафика 353 inet_traffic_type_link_rule_{mid} правила привязки типов трафика 329 inv_device_port_{mid} порты устройства 320 inv_device_port_subscription_{mid} подписка на ресурсы портов 313 inv_ip_category_{mid} категории ip-ресурсов 300 inv_ip_resource_{mid} ресурсы ip 290 inv_ip_resource_subscription_{mid} подписка на ресурсы ip |
Автор: | stark [ 12 май 2014, 18:07 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
сколько у вас сессий за месяц в inet_session_log и сколько записей детализации в inet_session_log_detail ? |
Автор: | stark [ 12 май 2014, 18:09 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
напишите в helpdesk и дайте доступ . Нужно провести анализ у вас на месте. |
Автор: | nik247 [ 13 май 2014, 17:16 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
Amir писал(а): Возможно быстрее SQL дампа будет удалить индексы из таблицы, затем сконвертировать ее в MyISAM. Файлы таблицы MyISAM насколько знаю легко можно перемещать, в отличие от таблиц InnoDB. Спасибо за совет по переводу в MyISAM. Переконвертировал пока connection_log_entry от 6 модулей за 2012 год - освободил пока 1ГБ. Сейчас дальше буду думать, как оптимальнее дальше делать. Делал так: 1) полный дамп оригинала в файл через "mysqldump --single-transaction --disable-keys --extended-insert --quick" 2) удаление партицирования - "ALTER TABLE $table REMOVE PARTITIONING;" 3) удаление лишнего индекса - "ALTER TABLE $table DROP INDEX \`app-dev-con\`;" 4) перевод в MyISAM - "ALTER TABLE $table ENGINE=MyISAM;" |
Автор: | nik247 [ 13 май 2014, 17:30 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
stark писал(а): nik247 писал(а): 4) Кстатит на dbinfo.bitel.ru отсутствует описание не на одну таблицу Inet - минимум штук 5. Не понял . Какие еще таблицы не описаны? Вот то, что там есть сейчас : Код: Модуль Inet 106 inet_auth_error_{mid}_yyyyMM ошибки авторизации 239 connection_log_entry_{mid}_yyyyMM координаты логов 105 inet_accounting_period_{mid} учетный период 1 inet_connection_{mid} текущие соединения 107 inet_connection_route_179 сети, маршрутизируемые через connection-ы 59 inet_device_{mid} устройство 75 inet_device_type_{mid} тип устройства 337 inet_interface_{mid} интерфейсы, привязанные к типу устройства 342 inet_option_{mid} опции модуля inet 19 inet_serv_{mid} сервис 43 inet_serv_type_{mid} тип сервиса 95 inet_session_{mid} текущие сессии 96 inet_session_account_{mid} наработка по услугам для текущих сессий. 97 inet_session_detail_{mid} детализация по трафикам для текущих сессий 91 inet_session_log_{mid}_{YYYYMM} завершенные сессии 93 inet_session_log_account_{mid}_yyyyMM наработка по услугам для завершенных сесиий 92 inet_session_log_detail_{mid}_yyyyMM детализация завершенных сессий 94 inet_session_log_route_{mid}_yyyyMM сети, маршрутизируемые через выданные завершенными сессиям ip адреса 99 inet_tariff_traffic_max_{mid} значения счетчиков максимальных трафиков. 100 inet_tariff_traffic_max_detail_{mid}_yyyyMM подневная детализация счетчиков максимальных трафиков. 102 inet_tariff_traffic_range_{mid} счетчики диапазонов 103 inet_tariff_traffic_range_detail_{mid}_yyyyMM подневная детализация счетчиков диапазонов. 376 inet_task_process_{mid} задания на переобработку логов 265 inet_traffic_type_{mid} тип трафика 350 inet_traffic_type_link_{mid} привязка типов трафика 353 inet_traffic_type_link_rule_{mid} правила привязки типов трафика 329 inv_device_port_{mid} порты устройства 320 inv_device_port_subscription_{mid} подписка на ресурсы портов 313 inv_ip_category_{mid} категории ip-ресурсов 300 inv_ip_resource_{mid} ресурсы ip 290 inv_ip_resource_subscription_{mid} подписка на ресурсы ip Отсутствует полние описание таблиц: 1) inet_connection_{mid}_seq 2) inet_session_{mid}_seq 3) inv_ip_resource_subscription_dyn_{mid}_yyyyMM в таблице "inv_ip_resource_subscription_{mid}" исправьте описание для: 296 addressTo varbinary(24) false конченый адрес в таблице "connection_log_entry_{mid}_yyyyMM" отсутствует описание для: 247 type int(11) false |
Автор: | nik247 [ 13 май 2014, 17:35 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
stark писал(а): сколько у вас сессий за месяц в inet_session_log и сколько записей детализации в inet_session_log_detail ? В разных модулях по разному. В некоторых модулях бывает: inet_session_log - более 300 000 записей в месяц, inet_session_log_detail - более 3 000 000 записей в месяц. |
Автор: | nik247 [ 13 май 2014, 17:38 ] |
Заголовок сообщения: | Re: [6.0] Inet - чистка (удаление) старых таблиц. |
stark писал(а): напишите в helpdesk и дайте доступ . Нужно провести анализ у вас на месте. Я уже давал ранее данные для доступа в helpdesk. Ничего не изменилось - можно заходить. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |