+ 5
How to limit OS runtime resources on linux?
There is a server with linux (let's say Ubuntu), and there are lots of users (100 or maybe more). So, I want to limit each user to use only: 200MB of RAM and 20second of process time (max). I already did this for the storage thing with Quotas, but I'm not sure what approach is correct when it comes to processes and runtime resources. Any help is appreciated.
8 Answers
+ 7
Did you try using 'ulimit'? I guess it's for the current session only but is helpful. It provides control over the resources available to the shell and to processes started by it, only on systems that allow such control.
Check these links out,
â https://ss64.com/bash/ulimit.html
â https://www.ibm.com/support/knowledgecenter/en/SSYKE2_7.0.0/com.ibm.java.lnx.70.doc/user/ulimits.html
+ 4
DeÍÍv Great, I'll try this out.
+ 3
If CPanel, use Shell Fork Bomb Protection to set a ulimit. Also a good firewall like CSF/LFD will alert you when users exceed a cert virtual memory limit or number of processes. It can be configured to kill these if desired as well.
+ 3
Kayla Armstrong No I'm not using any panel. Right now I'm testing it on my own rig with Ubuntu 16. If my idea works well, I'll host it on AWS or smth similar. But thanks again, I'll try the ulimit as Dev suggested too.
+ 2
Aaron Erhardt I have a server and the users are accessing it via SSH. But I don't want any user to run CPU/RAM heavy process and eat up all the resources.
For example, if a user wants to run an infinite loop, the system should block the process after 20 seconds. Or if the code os eating up all the RAM, again the process should be terminated of it exceed the limit.
+ 2
Oh cool, regarding process time, if theyâre using php, set max_execution_time in php.ini. Definitely look into firewalls, though. Theyâll alert you to anything using more resources than a sane standard.
+ 1
Also, you should be able to limit your users resource allocation. Are you using any panel?
0
Usually you use or virtual machines (or docker container) to limit a users RAM and CPU time.