Вже багато раз бачив повідомлення про в відкрито забагато файлових дескрипторів. Таке раніше траплялося, коли користувався не пам’ятаю яким дистрибутивом, і смутно пам’ятаю як я щось змінював в /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