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

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2012-01-16 13:30:32 +0400

shmagin Gravatar shmagin

Cannot create socket, Too many open files

Уважаемые IT-Специалисты и Инженеры! Через несколько дней работы в астере (версия 1.8.7.1) появляется ошибка о том, что не хватает дескрипторов файлов и астер перестает открывать новые каналы. Ошибки такого типа:

[Jan 16 10:58:10] ERROR[18611] acl.c: Cannot create socket
[Jan 16 10:58:10] ERROR[18611] res_timing_timerfd.c: Failed to create timerfd timer: Too many open files
[Jan 16 10:58:33] ERROR[18493] cdr_sqlite3_custom.c: disk I/O error. SQL: INSERT INTO cdr

Гугл посоветовал, что следует увеличить количество дескрипторов с помощью ulimit. Я считаю, что это неправильный совет. С помощью команды /usr/bin/lsof | /bin/grep asterisk | /usr/bin/wc -l через cron я мониторил кол-во файлов, открытых астериском. В 11 часов астер подвис, вот фрагмент лога:

2012-01-16 10:55:01 1126
2012-01-16 11:00:02 1219
2012-01-16 11:05:01 485
2012-01-16 11:10:01 590

Потом я сравнил списки открытых файлов во время зависания и после перезапуска. Оказалось, что очень в момент зависания было более 600 записей открытых сокетов типа (хотя обычная загрузка 20-30 одновременных звонков):

asterisk  16808       root  250u     IPv4          110416264        0t0        UDP mc-pbx-01.mcxxi.local:15014
asterisk  16808       root  251u     IPv4          112016704        0t0        UDP mc-pbx-01.mcxxi.local:15845
asterisk  16808       root  252u     IPv4          107307428        0t0        UDP mc-pbx-01.mcxxi.local:16348

Посоветуйте, пожалуйста, что следует предпринять? Может это быть ошибкой в диалплане (его не приводил, так он более 100кб)? Или следует перейти на версию 1.8.8? Буду благодарен любым советам/комментариям. Спасибо.

Cannot create socket, Too many open files

Уважаемые IT-Специалисты и Инженеры! Через несколько дней работы в астере (версия 1.8.7.1) появляется ошибка о том, что не хватает дескрипторов файлов и астер перестает открывать новые каналы. Ошибки такого типа:

[Jan 16 10:58:10] ERROR[18611] acl.c: Cannot create socket
[Jan 16 10:58:10] ERROR[18611] res_timing_timerfd.c: Failed to create timerfd timer: Too many open files
[Jan 16 10:58:33] ERROR[18493] cdr_sqlite3_custom.c: disk I/O error. SQL: INSERT INTO cdr

Гугл посоветовал, что следует увеличить количество дескрипторов с помощью ulimit. Я считаю, что это неправильный совет. С помощью команды /usr/bin/lsof | /bin/grep asterisk | /usr/bin/wc -l через cron я мониторил кол-во файлов, открытых астериском. В 11 часов астер подвис, вот фрагмент лога:

2012-01-16 10:55:01 1126
2012-01-16 11:00:02 1219
2012-01-16 11:05:01 485
2012-01-16 11:10:01 590

Потом я сравнил списки открытых файлов во время зависания и после перезапуска. Оказалось, что очень в момент зависания было более 600 записей открытых сокетов типа (хотя обычная загрузка 20-30 одновременных звонков):

asterisk  16808       root  250u     IPv4          110416264        0t0        UDP mc-pbx-01.mcxxi.local:15014
asterisk  16808       root  251u     IPv4          112016704        0t0        UDP mc-pbx-01.mcxxi.local:15845
asterisk  16808       root  252u     IPv4          107307428        0t0        UDP mc-pbx-01.mcxxi.local:16348

Посоветуйте, пожалуйста, что следует предпринять? Может это быть ошибкой в диалплане (его не приводил, так он более 100кб)? Или следует перейти на версию 1.8.8? Буду благодарен любым советам/комментариям. Спасибо.

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