У нас есть тестовый сервер, на котором размещено множество тестовых приложений. когда есть много процесса (или нить) работает, мы нашли новый процесс или поток не может быть создан:Как увеличить максимальное количество процессов для Solaris 10 x86 server?
- для программы C: «не может раскошелиться, ресурс недоступен»
- для Java программы: она бросает исключение " OutOfMemory, неспособный создать собственный поток "
Я думаю, что это связано с жестким пределом максимального количества процессов. Я попытался установить ulimit -n 255085
. ulimit:
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 90000
pipe size (512 bytes, -p) 10
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 255085
virtual memory (kbytes, -v) unlimited
но не работает. Я пытался одновременно запускать много процессов с разными пользователями, и все они останавливаются с одинаковой ошибкой одновременно. поэтому, я думаю, что существует «предел» для всей системы независимо от того, что пользователи вошли в систему.
Это запутанный вопрос. Прежде всего, это не вопрос программирования. Во-вторых, вам нужно изменить некоторые настраиваемые параметры ядра: maxpid, max_nprocs и maxuprc. В этой последовательности. maxuprc зависит от максимума. В-третьих, вы на самом деле делаете что-то, похоже, что вам следует пересмотреть свой подход. Зачем? Наводнение системы для запуска множества процессов в то же самое время - почти всегда плохая идея. –
Действительно ли 'ps' показывает более 250 000 процессов? И почему вы думаете, что это проблема с количеством процессов, когда все ошибки говорят, что вы потеряли память? – alanc