Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interface to adjust process limits #630

Open
pspillai opened this issue Feb 15, 2016 · 2 comments
Open

Interface to adjust process limits #630

pspillai opened this issue Feb 15, 2016 · 2 comments

Comments

@pspillai
Copy link

There does not appear to be a way to adjust the number of user processes limits in Autloab jobs. It seems to be hard coded to 100. It would be useful to allow either grading scripts to set the desired limits or to provide a web interface to override the defaults.

This is important because in Linux, threads also count against process limits. As an example, I am teaching a distributed systems course that uses Java and JavaRMI. For a scalability lab, we may require 10s of processes acting like nodes in a large distributed system. Each uses JavaRMI, and will create dozens of worker threads. This easily exceeds the hard limits in Autolab.

In the past, we overcame this issue by using a custom VM that set a different limit on startup. I'm not sure how this limit is implemented in the Docker version. If the limit is set from within the container, one simple fix is to use soft limits (ulimit -S) in setting limits. So, if a grading script really needs to allow more processes/threads, then it can override the soft limit.

@droh
Copy link
Member

droh commented Feb 15, 2016

I've forwarded this to autolab-help@andrew.cmu.edu

On Mon, Feb 15, 2016 at 12:45 PM, pspillai notifications@github.com wrote:

There does not appear to be a way to adjust the number of user processes
limits in Autloab jobs. It seems to be hard coded to 100. It would be
useful to allow either grading scripts to set the desired limits or to
provide a web interface to override the defaults.

This is important because in Linux, threads also count against process
limits. As an example, I am teaching a distributed systems course that uses
Java and JavaRMI. For a scalability lab, we may require 10s of processes
acting like nodes in a large distributed system. Each uses JavaRMI, and
will create dozens of worker threads. This easily exceeds the hard limits
in Autolab.

In the past, we overcame this issue by using a custom VM that set a
different limit on startup. I'm not sure how this limit is implemented in
the Docker version. If the limit is set from within the container, one
simple fix is to use soft limits (ulimit -S) in setting limits. So, if a
grading script really needs to allow more processes/threads, then it can
override the soft limit.


Reply to this email directly or view it on GitHub
#630.

@ymzong ymzong added bug and removed bug labels Feb 15, 2016
@TheodorJ
Copy link
Contributor

TheodorJ commented Oct 8, 2017

Sounds useful, and definitely doesn't exist yet. Leaving this open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants