Столкнулся на днях с высокой нагрузкой, создаваемой астериском на одном из серверов. На быстрое увеличение вычислительной мощности рассчитывать не приходилось, а la стал уже выше 50.  Сервер работает с протоколами IAX и SIP, а так же в большом объеме перекодируют трафик из g723 в другие кодеки.

Результат изысканий: load average меньше 20, загрузка процессора и использование памяти так же сократились. И это благодаря опциям компилятора.

Ради интереса решил посмотреть, можно ли улучшить ситуацию оптимизировав сборку астериска. В результате в нижиприведенные строки были прописаны следующие значения:

Makefile:

DEBUG=-g0

Makefile.rules:

OPTIMIZE?=-O2

Первое отключает добавление отладочной информации в модули. По-умолчанию в модули добавляется информация для отладки, что увеличивает размер исполняемых файлов и модулей.

Второе — переключает режим оптимизации (важно для gcc4). В gcc3 второе действие не обязательно и может наоборот замедлить работу. В gcc4 максимальный уровень оптимизации излишне увеличивает размер файлов и чаще всего вызывает существенное замедление их выполнения.

автор igorg \\ теги: , ,