Можно ли использовать setrlimit для принудительного ограничения использования ресурсов в течение определенного периода времени? - PullRequest
2 голосов
/ 26 апреля 2011

Я хочу установить ограничения на то, как долго программы, порожденные execv, могут использовать определенный объем памяти и определенное количество процессорного времени.Например, я хочу установить пределы, например, если программа не может превышать 100 МБ в течение 30 секунд, а программа не может использовать 90% или более ресурсов ЦП в течение более 20 секунд.

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

Вы можете использовать RLIMIT_CPU, RLIMIT_DATA и друзей, но ни один из них не имеет понятия о продолжительности времени или о окнах.Если те работают для вас, как они, прекрасно;если нет, то можете ли вы объяснить более подробно проблему, которую вы пытаетесь решить?

1 голос
/ 26 апреля 2011

Нет. Вам нужно будет запустить своего рода супервизор «вокруг» кода, либо как программу, которая будет выполнять форк / exec, либо как внедренную библиотеку, которая будет перехватывать системные вызовы libc /.

...