Вже багато раз бачив повідомлення про в відкрито забагато файлових дескрипторів. Таке раніше траплялося, коли користувався не пам’ятаю яким дистрибутивом, і смутно пам’ятаю як я щось змінював в /etc/sysctl.conf. Сьогодні не полінувався і таки пошукав в мережі. Результати залишу тут, бо забуду.
Для того щоб дізнатися яке максимальне значення даного параметру для всієї системи треба виконати команду
cat /proc/sys/fs/file-max
або
sysctl -a | grep fs.file-max
Ліміт відкритих файлових дескрипторів для користувача:
$ ulimit -n
Зміна ліміту відкритих файлових дескрипторів на рівні ОС
Для зміни даного обмеження по відношенню до всіє ОС слід відредагувати файл /etc/sysctl.conf внісши туди щось типу такого:
fs.file-max = 500000
Після зміни параметру слід виконати команду (від імені root)
# sysctl -p
або перезавантажитися.
Ще можна написати
# echo > 500000 /proc/sys/fs/file-max
Зміна ліміту відкритих файлових дескрипторів для користувача, групи
Слід відкрити файл /etc/security/limits і записати туди щось типу такого:
user hard nofile 15000 # user — ім’я користувача
Або виконати команду
$ ulimit -n 15000
але зміни будуть втрачені після виходу користувача зі свого облікового запису або перезавантаження компа.
Типовим значення для даного параметру в OpenSUSE 12.3 є 305651