First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Утечка памяти

0

Всем доброго утра/дня/вечера/ночи! Давно я не видел утечек памяти в астериске, но тут внезапно появилась такая проблема. И так имеем следующее: 1) FreePBX 2) Кучка кастома для увязки с MSSQL 2012 (ODBC и FreeTDS) и своими скриптами 3) Патченный астер 11.16.0 (Патч https://issues.asterisk.org/jira/browse/ASTERISK-13145) для правильной работы с телефонами Cisco CP-99XX 4) CentOS 6.5 x64 5) Сервер виртуальный на ESXi 5.5, для астера 24 ядра и 12 Гигов оперативки. Выставлен наивысший приоритет на ресурсы. На всем этом память начинает утекать бешеными темпами. Причем не вылетает, дико свопится, начинает тормозить, но в таком состоянии может работать долго (начинается пропадание голоса, заикание). Вопрос, в чем может быть проблема? В патче (код был бегло просмотрен и ничего подозрительно в нем не увидел) или же в самом астере? Прошу помощи у сообщества, уже не знаю что делать.

спросил Mar 23 '15

Filin Gravatar Filin
9 8 1 7

Comments

не подумали просто разделить на несколько серверов и не валить всё в кучу?

Zavr2008 (Mar 23 '15)edit

не php ли виновато ? а вообще выкидывайте лишние модули и пробуйте связку без патча

awsswa (Mar 23 '15)edit

Здесь неплохо было бы вспомнить, после каких действий появились проблемы.

bolshoy_plohish (Mar 24 '15)edit

Разделить на несколько серверов мысль уже приходила, вот только это очень сильно усложнит и без того не простую схему работы. Телефоны CP-99XX находятся вперемешку с SPA-514g и именно для них накладывался патч, ибо астер из коробки не понимает xml структуру sip от этих телефонов. Лишние модули уже все отключил. На счет кривых php скриптов мысль была, пару раз ошибка была в них, тогда встает вопрос, насколько правильно будет переписывать скрипты от FreePBX? Проблемы начались в самом начале поэтому точки отсчета нет.

Filin (Mar 24 '15)edit

offtopic. А для скольких абонентов/одновременных разговоров такой монстр?

yks (Mar 24 '15)edit

около 240, ядер много что бы наверняка процессорного времени хватало и на все ядра процессора был наивысший приоритет.

Filin (Mar 24 '15)edit

Хмммм... 240 разговоров это не так много, такого железа должно хватать за глаза, даже с излишком, у меня в гораздо более скромной конфе до 500, но там только транзит и рулежка по транкам на обычных текстовых конфигах, значит сам Астер ни при чем. Наиболее вероятная причина - пхп и кривые выборки из скуля.

CheeZ (Mar 24 '15)edit

Пару раз был краш из-за freetds в результате не отработанного запроса, но запросы тривиальны, ничего сверх большого в них нет. Сейчас заметил, при каждом 'core reload' астер отжирает 0,3% от оперативки.

Filin (Mar 24 '15)edit

"запросы тривиальны, ничего сверх большого в них нет" - а вот тут то может и быть корень проболемы, года у тебя будет простой запрос к большой базе, он у тебя будет перелопачивать каждый раз всю базу.

CheeZ (Mar 24 '15)edit

чтото вы ерунду какуюто рассказываете. тоесть у вас каждый релоад ест 0.3% от 12Гб мб или 36мбайт оперативки? может у вас есть какието сверхдлинные скрипты на h-exten?

meral (Mar 24 '15)edit

meral, именно с каждым релоадом улетает по 0.3%, ну и плюс во время обычной работы, объемы утечки во время звонка сказать не могу, но в целом за неделю все 12 гигов и пару гигов свопа улетает. 2 CheeZ, базы не такие большие, в них хранятся данные о городском номере, мобильном (уже не используется), о транках, CID, email, ФИО, группы вызова, ivr. Все перечисленное лежит по разным таблицам и в каждой таблице не более 700 записей, в итоге при одном запросе данных прилетает копейки, даже если брать всю таблицу целиком. Если предположить что проблема в запросах, не должны ли данные после его отработки выгружаться из ОЗУ? Или же я чего то не докурил?

Filin (Mar 25 '15)edit

Вопрос не в том сколько прилетает в ответ, вопрос сколько перебирается, с этим еще разбираться нужно - простой запрос еще не значит что это оптимальный по расходу памяти и производительности запрос - это раз, и тут товарищ вам еще правильно подсказывает проверить закрытие соеденений.

CheeZ (Mar 25 '15)edit

h-exten проверил по всем кастомным файлам ничего не заметил, используется только в одном месте. Все запросы идут через func_odbc, скриптов на текущий момент не используется (если не считать стандартных из freepbx).

Filin (Mar 25 '15)edit

Смотрел кто ест?

ps aux --sort:rss | less

bolshoy_plohish (Mar 25 '15)edit
1

да астериск у него ест) он же написал. вообще не вижу проблемы если он локализована(появляется при каждом релоаде). наймите експерта по c/c++ он вам найдет утечку за день. стоить это будет около 1к долларов. других вариантов не вижу.

meral (Mar 25 '15)edit

Будьте первым, кто ответит на этот вопрос!

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Mar 23 '15

Просмотрен: 1,952 раз

Обновлен: Mar 25 '15

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.