В какой-то момент на домашнем компьютере с FreeBSD 9.0 + KDE 4 в логе /var/log/messages стало появляться сообщение:
Nov 6 07:26:53 setevoy-home kernel: kern.maxfiles limit exceeded by uid 1001, please see tuning(7).
Узнаем, кто такой UID 1001:
# cat /etc/passwd | grep 1001
setevoy:*:1001:1001:User &:/home/setevoy:/usr/local/bin/bash
Внезапно 🙂
Теперь, проверим, сколько в данный момент открытых файлов:
# pstat -T
4313/12328 files
0M/5099M swap space
И проверим указанный в данный момент лимит:
# sysctl -a | grep maxfiles
kern.maxfiles: 12328
Или так:
# sysctl kern.maxfiles
kern.maxfiles: 12328
Т.е. в данный момент используется 4313 из максимально разрешенных 12328 одновременно открытых файлов.
Снять ограничение можно двумя способами. Первый – вручную изменить параметр kern.maxfiles. Для этого – выполним:
# sysctl kern.maxfiles=24656
И проверим:
# sysctl kern.maxfiles
kern.maxfiles: 24656
Что бы изменения вступали в силу при загрузке системы – в файл /etc/sysctl.conf добавляем строку:
kern.maxfiles=24656
Другой вариант, НЕ рекомендуемый к использованию – увеличить значение kern.maxusers. На основе этого значения – система автоматически установит параметры kern.maxfilesperproc и kern.maxfiles.
Параметр kern.maxusers является параметром, устанавливаемом “только для чтения”, поэтому для его изменения – отредактируем файл /boot/loader.conf добавив в него такую строку:
# cat /boot/loader.conf | grep max
kern.maxusers=”512″
После этого – требуется перезагрузить машину.
После перезагрузки – проверим новые параметры:
# sysctl kern.maxusers
kern.maxusers: 512
# sysctl kern.maxfiles
kern.maxfiles: 16424
# sysctl kern.maxfilesperproc
kern.maxfilesperproc: 14781