Re: Preventing a single student programmer from choking the whole server.

Josh Roden <[email protected]>
Newsgroups gmane.linux.region.israel
Message-ID <CA+pv=q8rQwVwdy25wU-v_K69pEdbSO0XkuypnRa7=m9e9Hc0aw@mail.gmail.com>
Hi Yedidyah
Loved the SIGSTOP/SIGKILL approach - simple but awsome.
I seems to be working.
Thanks for everyone's input.
Josh

On Sun, Apr 23, 2017 at 9:18 AM, Yedidyah Bar David <[email protected]>
wrote:

> On Sat, Apr 22, 2017 at 12:51 PM, Josh Roden <[email protected]> wrote:
> > Hi
> > I see some explanation about cgroups on Centos 6 here:
> > https://www.digitalocean.com/community/tutorials/how-to-
> limit-resources-using-cgroups-on-centos-6
> > I will check about its implementation for Centos 6 and update my post.
> > Thanks for giving a direction.
> > Josh
> >
> > On Fri, Apr 21, 2017 at 4:27 PM, guy keren <[email protected]>
> wrote:
> >>
> >>
> >> how about using cgroups, putting each user's login shell in a cgroup
> that
> >> cannot use more then X% of the whole CPUs. this will affect all
> processes
> >> spawned under the user's shell.
> >>
> >> --guy
> >>
> >>
> >> On 04/21/2017 03:07 PM, Josh Roden wrote:
> >>>
> >>> Hi
> >>>
> >>> server setup:
> >>> ------------------
> >>> Centos 6
> >>> 32GB RAM
> >>> 16 Cpu's
> >>> 70 students max
> >>>
> >>> I am using /etc/security/limits.conf to prevent the students from
> >>> choking the whole
> >>> server but sometimes one student will write a very bad program that
> >>> somehow
> >>> runs itself again and again - so fast that "killall" and "pkill -9 -u"
> >>> can't stop/remove
> >>> the user fast enough before the student's program is run again and
> >>> again...
> >>>
> >>> Here is my definition in limits:
> >>>
> >>>  @stud           hard    cpu             8
> >>>  @stud           hard    nproc           256
> >>>  @stud           hard    nofile          1024
> >>>  @stud           -       maxlogins       6
> >>>
> >>> I can't reduce cpu time below 8min because eclipse will be killed every
> >>> hour or so.
> >>> My problem seems to be that the student can run up to 256 processes
> that
> >>> each
> >>> uses 100% of a single CPU and we only have 16 CPU''s.
> >>>
> >>> Thanks for any suggestions.
> >>> Josh
>
> Also, to handle actual specific cases, you can:
> 1. Send all processes SIGSTOP (or SIGTSTP)
> 2. Then send them SIGKILL
>
> Why does this work?
>
> First, why doesn't simply sending all SIGKILL works?
> The kernel already limits the user to 256 procs. So when they try to create
> more, they fail. But when you kill some of them, the others will now
> succeed
> creating more.
>
> With above, you first suspend all procs, so that they won't manage to try
> to
> create new ones. Then, when you kill some of them, the others do not create
> new ones and eventually all are killed.
>
> Best,
>
> >>>
> >>>
> >>> _______________________________________________
> >>> Linux-il mailing list
> >>> [email protected]
> >>> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
> >>>
> >>
> >>
> >> _______________________________________________
> >> Linux-il mailing list
> >> [email protected]
> >> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
> >
> >
> >
> > _______________________________________________
> > Linux-il mailing list
> > [email protected]
> > http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
> >
>

_______________________________________________
Linux-il mailing list
[email protected]
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.