Текст айті бубон
Asterisk rtp.c: Unable to allocate RTP socket: Too many open files res_timing_timerfd.c: Read error: Bad file descriptor
Потрібно збільшити обмеження на кількість одночасно відкритих файлів у файлі limits.conf.
ulimit розміри файлів
В основному при роботі в системі UNIX ми вважаємо, що її ресурси безмежні. Наприклад, ми не дбаємо про те, що створений файл вийде "занадто великим", а це не так уже й рідко в персональних комп'ютерах на гнучких дисках. Якщо ж ми займаємося супроводом і адмініструванням системи UNIX, то ми повинні бути готові мати справу з ситуаціями, коли перевищуються різні граничні значення системи. Завжди краще дослідити ці питання заздалегідь в некритичних ситуаціях, тому давайте розглянемо межі розмірів файлів і їх зміст.
Деякі параметри "зашиті" в ядро системи при її генерації. Одним з таких значень є максимальний розмір файлу. Він визначає найбільше число блоків, які може займати файл. Цей параметр тісно пов'язаний з прийнятим в UNIX методом використання індексних дескрипторів файлу (inodes). Це набори покажчиків, серед яких перші десять вказують на блоки даних, наступний вказує на іншу таблицю, наступний - на таблицю, що вказує на таблицю і т.д.
Є ще одне обмеження розміру файлу, яке визначено для кожного користувача під час роботи в системі - число ulimit (user limit - призначений для користувача межа). Це значення встановлюється в момент вашої реєстрації в системі і являє собою число блоків по 512 байт, які ви можете записати в будь-який заданий файл. У shell # 'е є команда ulimit, яка при її виклику без аргументів виводить це число. Ця ж команда дозволяє вам зменшити ваше значення ulimit. Тільки суперкористувач (root) може ЗБІЛЬШИТИ значення ulimit.
Побічним ефектом зменшення значення ulimit є те, що ви не можете знову збільшити його до реєстраційного значення. Значення ulimit залишається таким же на весь час роботи вашого shell, тому для відновлення реєстраційного значення вам необхідно вийти з системи, а потім знову зареєструватися.
Ще одним цікавим моментом є те, що якщо ви встановите ваше значення ulimit рівним 0, ви не зможете створити ніякі файли! Максимально допустимим розміром файлу в даному випадку є нульовою, тому ніякої файл не може бути створений. Це представляється досить резонним, проте існують такі ситуації, коли файл нульового розміру МОЖЕ існувати. Знову ж таки, для відновлення вашого звичайного значення ulimit необхідно вийти з системи, а потім знову зареєструватися.
Як зазначалося раніше, збільшити значення ulimit може тільки привілейований користувач. Ця процедура досить проста. Спочатку потрібно збільшити значення ulimit командою ulimit, а потім запустити shell. Цей новий shell має нове значення ulimit. Якщо ми хочемо, щоб система завантажувалася з shell, що має більше значення ulimit, ми можемо встановити програму в inittab (таблиці ініціалізації системи), щоб ця операція виконувалася автоматично.
ulimit кількість відкритих сокетів
Обмеження на кількість одночасно відкритих сокетів. Як правило, більшість nix систем обмежує кількість гнізд до 1024. Ці настройки можна змінити додавши в /etc/security/limits.conf наступні рядки:
Також можна встановити ліміт вручну, через: