По умолчанию для непривилигированного пользователя доступно всего 256 одновременно открытых файлов.
Узнать текущее значение для конкретного процесса:
# pfiles 17383 | grep 'Current rlimit'
Current rlimit: 256 file descriptors
где 17383 – номер PID’a.
Это очень мало для production-систем. Изменить ситуацию можно, установив новые значения в /etc/system.
set rlim_fd_max = 260000
set rlim_fd_cur = 260000
Но для применения изменений требуется перезагрузка. Если надо изменить налету – делаем это через mdb:
# echo rlim_fd_max/W 0t260000 | mdb -kw
# echo rlim_fd_cur/W 0t260000 | mdb -kw
Для проверки, что изменения вступили в силу, делаем так:
# echo rlim_fd_max/D | mdb -k
rlim_fd_max:
rlim_fd_max: 260000
# echo rlim_fd_cur/D | mdb -k
rlim_fd_cur:
rlim_fd_cur: 260000
Точно так же меняются и значения
set max_nprocs=999999
set maxuprc=999990
set pidmax=999999
Не забываем делать
# bootadm update-archive
иначе будет двойная перезагрузка.
Примечание.
Для зон эти значения устанавливаются только через глобальную. При этом, даже после применения изменений налету требуется перезагрузка самой зоны.