URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5534
[ Назад ]

Исходное сообщение
"Как узнать текущие maxproc, openfiles, memoryuse и т.д.?"

Отправлено Flex25 , 28-Июн-06 17:54 
На FreeBSD в файле /etc/login.conf я прописываю ограничения на использование компьютерных ресурсов для пользователей по следующим параметрам:
- cputime
- openfiles
- maxproc
- memoryuse

В login.conf прописываются МАКСИМАЛЬНО ДОПУСТИМЫЕ значения этих показателей. А как мне узнать их ТЕКУЩИЕ значения на данный момент времени?

Команда TOP мне не подходит, т.к. мне нужно, чтобы моя программа на СИ смогла бы прочитать эти данные, а из TOP я это сделать не могу. К тому же TOP не выводит значение показателя openfiles.


Содержание

Сообщения в этом обсуждении
"Как узнать текущие maxproc, openfiles, memoryuse и т.д.?"
Отправлено vic , 28-Июн-06 18:23 
>На FreeBSD в файле /etc/login.conf я прописываю ограничения на использование компьютерных ресурсов
>для пользователей по следующим параметрам:
>- cputime
>- openfiles
>- maxproc
>- memoryuse
>
>В login.conf прописываются МАКСИМАЛЬНО ДОПУСТИМЫЕ значения этих показателей. А как мне узнать
>их ТЕКУЩИЕ значения на данный момент времени?
>
>Команда TOP мне не подходит, т.к. мне нужно, чтобы моя программа на
>СИ смогла бы прочитать эти данные, а из TOP я это
>сделать не могу. К тому же TOP не выводит значение показателя
>openfiles.

man getrlimit
man getrusage
man setrlimit


"Как узнать текущие maxproc, openfiles, memoryuse и т.д.?"
Отправлено Flex25 , 29-Июн-06 01:07 
>man getrlimit
>man getrusage
>man setrlimit

Да, это то, что нужно. А как мне с помощью этих команд ограничить ресурсы для конкретного пользователя?

Т.е. не понятно, как этим функциям передать имя пользователя и т.д.


"Как узнать текущие maxproc, openfiles, memoryuse и т.д.?"
Отправлено Flex25 , 29-Июн-06 08:18 
И еще... В мануалах написано, что "getrusage возвращает текущие ограничения на ресурсы, используемые ТЕКУЩИМ процессом".

А мне надо получить не ограничения, а текущие заначения, которые ПОДЛЕЖАТ ограничениям. И эти значения нужно получить для мне как пользователю ROOT для ЛЮБОГО пользователя, а не только для текущего (своего).

Т.е. нужно в любой момент узнавать: сколько на данный момент у такого-то пользователя, например, открыто файлов.

Как я понимаю, функции getrlimit, getrusage и setrlimit в этом мне не помогут. :(


"Как узнать текущие maxproc, openfiles, memoryuse и т.д.?"
Отправлено vic , 29-Июн-06 14:22 
>И еще... В мануалах написано, что "getrusage возвращает текущие ограничения на ресурсы,
>используемые ТЕКУЩИМ процессом".
>
>А мне надо получить не ограничения, а текущие заначения, которые ПОДЛЕЖАТ ограничениям.
>И эти значения нужно получить для мне как пользователю ROOT для
>ЛЮБОГО пользователя, а не только для текущего (своего).
>

Ну еще:
quota
lsof
/proc

>Т.е. нужно в любой момент узнавать: сколько на данный момент у такого-то
>пользователя, например, открыто файлов.

Задача: Ну допустим вы узнали что у меня сейчас открыто 387 файлов.. но мгновенье назад у меня было открыто 1021 файл, о чем вы не знаете.. и в чем тут контроль?

>
>Как я понимаю, функции getrlimit, getrusage и setrlimit в этом мне не
>помогут. :(