Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I need to limit CPU, memory and network bandwidth usage for a bulk of processes on per-user basis. User is in fact just logic grouping for several daemon processes and not real humans. So different users has similar (but not necessarily identical) set of running processes.

Unfortunately, I'm not even experienced Linux user, so I have no idea how to get it. Could you point out possible ways to accomplish this?

share|improve this question
add comment

5 Answers

up vote 4 down vote accepted

Pluggable Authentication Modules (PAM) limits will allow you to apply many of these quota restrictions on a per login basis: http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/sag-pam_limits.html and Linux Administrator's Guide

share|improve this answer
add comment

Big subject to be honest, someone else will answer far better than me but you could start with 'man setrlimit'.

share|improve this answer
add comment

ulimit can accomplish much of this, albeit in a somewhat low-level way. You can use iptables for network limiting.

share|improve this answer
    
Note that ulimit in this context is a shell built in ( at least for bash) , so to get information on this use 'help ulimit' not 'man ulimit' –  Kyle Brandt Jun 1 '09 at 12:11
add comment

Use virtualization. Then you can be very strict and they can be root of their own VMs if they want.

share|improve this answer
    
I'd be glad, but this stuff itself intended to be some kind of virtualization =) –  Rorick Jun 2 '09 at 9:59
add comment

If you're running RedHat or some clone like CentOS you can edit /etc/security/limits.conf to limit resources per user or per group. On other distributions, this config file could be located elsewhere.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.