[devel] [Erlang] ограничение на количество потоков в Альте

Илья Курдюков ilyakurdyukov на basealt.ru
Сб Ноя 20 15:07:09 MSK 2021


Почему в нормальных системах этот код возвращает 10000 с плюсом, а в 
Альте 500 с чем-то?

$ cat threadlim.c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>

static void* test(void *data) { while(1) sleep(1); return NULL; }

int main() {
     int i, err = 0;
     pthread_t t;
     for (i = 0; !err && i < 100000; i++)
       err = pthread_create(&t, NULL, test, NULL);
     printf("i = %d, err = %d\n", i, err);
     exit(0);
}
$ cc -O2 -pthread threadlim.c && ./a.out
i = 507, err = 11

ulimit -u стоит по умолчанию на 512 и не даёт поставить выше 1000:

$ ulimit -u
512
$ ulimit -u 1000
$ ulimit -u 1001
-bash: ulimit: max user processes: не удаётся изменить ограничение: 
Операция не позволена

Эти ограничения с начала времён не меняли?

http://git.altlinux.org/gears/e/erlang.git

Почему в спеке Erlang делаются костыли с уменьшением количества потоков, 
вместо того, чтобы наконец исправить устаревшие лимиты в Альте?




Подробная информация о списке рассылки Devel