Hello Dmitri Kalintsev!
Tue, Apr 25, 2000 at 13:04:27, dek wrote about "[inet-admins] Linux resource limits":
> Вопрос: как в 2.2.x (x => 13) поднять resource (какой?) limit, чтобы не
> говорило, что
>
> ./oopsctl stat
> bash: fork: Resource temporarily unavailable
Ну вот смотрю linux-2.2.14/kernel/fork.c и вижу:
(do_fork())
if (p->user) {
if (atomic_read(&p->user->count) >= p->rlim[RLIMIT_NPROC].rlim_cur)
goto bad_fork_free;
atomic_inc(&p->user->count);
}
далее:
{
struct task_struct **tslot;
tslot = find_empty_process();
if (!tslot)
goto bad_fork_cleanup_count;
и наконец
static inline struct task_struct ** find_empty_process(void)
{
struct task_struct **tslot = NULL;
if ((nr_tasks < NR_TASKS - MIN_TASKS_LEFT_FOR_ROOT) || !current->uid)
tslot = get_free_taskslot();
return tslot;
}
из которого можно делать вывод, что лимит абсолютного количества
процессов в системе не регулируется никакими sysctl || proc, а вшит
намертво. Что и обнаруживается:
./include/linux/sched.h:extern struct task_struct *task[NR_TASKS];
./include/linux/sched.h:#define PIDHASH_SZ (NR_TASKS >> 2)
./include/linux/tasks.h:#define NR_TASKS 512 /* On x86 Max 4092, or 4090 w/APM configured. */
Итого - пересобирать надо с поднятым NR_TASKS.
> Я понимаю, что что-то в /proc, но вот что именно? Это случается при кол-ве
> тредов oops равному +/- 482. А нужно больше.. :)
>
> Поиск по альтависте и гуголу ничего полезного не принёс - то, что нашёл, не
> помогло. Нашёл про ip_local_port_range и route-max (которого у себя я не
> нашёл, к тому же)...
А что такое гугол?
--
NVA
=============================================================================
"inet-admins" Internet access mailing list. Maintained by East Connection ISP.
Mail "unsubscribe inet-admins" to Majordomo@info.east.ru if you want to quit.
Archive is accessible on http://info.east.ru/rus/inetadm.html