Не рекомендуется увеличивать глобальный лимит файловых дескрипторов, так как это может привести к сбою 32-битных программ, если они не знают, как использовать файловые дескрипторы > 255, см.:enable_extended_FILE_stdio(3C)
.
Поэтому может быть лучше просто вызвать базу данных оракула через сценарий оболочки, который сначала выполняет необходимые ulimit
вызовы для установки ограничений, а затем вызывает базу данных.
Позвольте мне показать типичный предельный набор Solaris, который можно получить с помощью Bourne Shell (, как в моем примере ). Обратите внимание, что использование ksh93
здесь бесполезно, так как ksh93 включает информацию из других ресурсов, которые нельзя установить. Это значение по умолчанию для Solaris :
LC_ALL=C ulimit -aSH
-t: time(seconds) unlimited:unlimited
-f: file(blocks) unlimited:unlimited
-d: data(kbytes) unlimited:unlimited
-s: stack(kbytes) 10240:unlimited
-c: coredump(blocks) unlimited:unlimited
-n: nofiles(descriptors) 256:65536
-v: memory(kbytes) unlimited:unlimited
Как видите, все значения по умолчанию выше требуемых, за исключением дескрипторов открытых файлов. Я не уверен, следует ли уменьшить жесткий предел стека.
Если вы хотите изменить значения, напишите сценарий оболочки и введите это:
ulimit -nS 1024
Это увеличивает ограничение на количество дескрипторов программных файлов до 1024 и приводит к новому ограничению:
-n: nofiles(descriptors) 1024:65536
Если вам нужно уменьшить ограничение жесткого стека, также введите:
ulimit -sH 32768
Это уменьшило ограничение жесткого стека до 32 МБ и привело к:
-s: stack(kbytes) 10240:32768
После этого введите команду для запуска базы данных оракула в скрипт, а затем запустите этот скрипт.
Используйтеmdir
(изmtools
):
$ mdir -i boot.img ::
...
g2ldr mbr 8192 2020-05-04 19:14
WIN32-~1 INI 178 2020-05-04 19:14 win32-loader.ini
43 files 76 373 022 bytes
921 333 760 bytes free
Как видите, ни одно из имеющихся у вас чисел не соответствует оставшемуся свободному месту.