Ada_Ru форум

Обсуждение языка Ада

Task limit

Оставить новое сообщение

Сообщения

Maxim Reznik
Task limit
2004-04-14 16:50:25

[ Attachment content not displayed ]

Maxim Reznik wrote:

Сколько задач можно создать в GNAT-е одновременно?

Че-то не могу в доке найти.

А пускаю проверку в Линухе под gnat-3.15p получается

1023. (А под Win98 - 248).

Чем это может быть ограниченно?

Нашел ядровый параметр в Линухе

kernel.threads-max = 4095

но он вроде не влияет.

 

У меня в Linux-е получилось 1013. После чего программа зависла. :)

 

В "старом" (1) Linux-е количество задач ограничено количеством процессов системы, которое прошивается при компиляции ядра и по умолчанию - 1024. В это количество входят все процессы (в том числе и ядреные). В "новом" - не знаю.

 

 

1) Под "старым" Linux-ом понимать семейство ядер 2.4.x с библиотекой нитей Leroy Linux Threads. Под новой - 2.6.x и 2.4.20-x с патчем под NTPL. (которой не поддерживается GNAT-3.15p)

 

 

-- Vadim Godunko

hi,

Vadim Godunko wrote:

Maxim Reznik wrote:

Сколько задач можно создать в GNAT-е одновременно?

Че-то не могу в доке найти.

А пускаю проверку в Линухе под gnat-3.15p получается

1023. (А под Win98 - 248).

Чем это может быть ограниченно?

>

Нашел ядровый параметр в Линухе

kernel.threads-max = 4095

но он вроде не влияет.

>

У меня в Linux-е получилось 1013. После чего программа зависла. :) >

В "старом" (1) Linux-е количество задач ограничено количеством процессов системы, которое прошивается при компиляции ядра и по умолчанию - 1024. В это количество входят все процессы (в том числе и ядреные). В "новом" - не знаю.

>

1) Под "старым" Linux-ом понимать семейство ядер 2.4.x с библиотекой нитей Leroy Linux Threads. Под новой - 2.6.x и 2.4.20-x с патчем под NTPL. (которой не поддерживается GNAT-3.15p)

>

--

Vadim Godunko

есть еще команда ulimits (man ulimits),

которая употребляется в скриптах запуска/логина

для указания ограничений общесистемно

и/или на уровне отдельного юзьверя

Alex

On Wed, Apr 14, 2004 at 09:03:55PM +0300, Oleksandr Havva wrote:

hi,

 

Vadim Godunko wrote:

 

Maxim Reznik wrote:

Сколько задач можно создать в GNAT-е одновременно?

Че-то не могу в доке найти.

А пускаю проверку в Линухе под gnat-3.15p получается

1023. (А под Win98 - 248).

Чем это может быть ограниченно?

 

Нашел ядровый параметр в Линухе

kernel.threads-max = 4095

но он вроде не влияет.

 

У меня в Linux-е получилось 1013. После чего программа зависла. :)

В "старом" (1) Linux-е количество задач ограничено количеством процессов системы, которое прошивается при компиляции ядра и по умолчанию - 1024. В это количество входят все процессы (в том числе и ядреные). В "новом" - не знаю.

 

1) Под "старым" Linux-ом понимать семейство ядер 2.4.x с библиотекой нитей Leroy Linux Threads. Под новой - 2.6.x и 2.4.20-x с патчем под NTPL. (которой не поддерживается GNAT-3.15p)

 

--

Vadim Godunko

 

есть еще команда ulimits (man ulimits),

которая употребляется в скриптах запуска/логина

для указания ограничений общесистемно

и/или на уровне отдельного юзьверя

 

Alex

 

Хочется продолжить тему,

Речь идет о "старом" Линуксе. Я на Gentoo смог добиться большего

кол-ва задачь. Проблема в библиотеке ptreads. Там для каждого

потока выделяется стек 2M и т.о. виртуальное пространство 2G

кончается на 1024 потоке. При помощи ulimit можно регулировать

откусываемый под стек кусок. Так при

 

stack size (kbytes, -s) 512

max user processes (-u) 2047

 

уже можно получить 3836 задачь, что уже приближается к пределу

потоков задоваемому в ядре (kernel.threads-max = 4095)

 

На Gentoo glibc-2.3.2 и ядро 2.4.25. Пытался проделать

тоже самое на RedHat 7.3 (glibc-2.2.5) и ALT Linux (glibc-2.2.6)

- не выходит.

 

Может кто попробует у себя?

Команды:

su -

ulimit -s 512

ulimit -u 4096

sysctl -w kernel.threads-max=8191

 

./test_tasks

...

creating task 4093

 

Может у кого получится сделать такое же на glibc-2.2.x?

 

--

Максим Резник

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти