Subject: Re: [vserver] throttler script
From: Fiedler Roman <Roman.Fiedler@ait.ac.at>
Date: Fri, 18 Jan 2013 08:50:08 +0000

 Fri, 18 Jan 2013 08:50:08 +0000
Von: Sandino Araico Sánchez [mailto:sandino@sandino.net] 

>> On 17/01/13 08:25, Phil Parris wrote: 
>> Im running into similar issues.  Please provide the script.  One thing i thought
about was to change cron source and add in a random sleep.
>
> I wrote a couple of throttler scripts two years ago for a host with 50 vservers and
load >250. 
> 
> The ionice-updatedb looks for known I/O consumming processes in the vserver, renices
them and puts the most agressive ones in the throttler.
>
> The throttler script pauses the process for some seconds (depending on the system
load) and lets it run for one second. Two methods are avilable SIGSTOP and freezer but
I stopped using the freezer on kernels 2.6.32 because some processes used to stay forever
in status DN and were impossible to kill until next host server reboot. I have been
using the SIGSTOP method since then.

Did you stop only single processes or whole process group/all processes in guest? If
you used stopping of single processes: did you observe any problems with parents getting
confused when their child got a signal or did not respond to parent/child communication
in time?

> I have not tried the freezer on recent 3.x kernels but it might work now. Some minor
changes may be needed on the throttler to use /sys/fs/gcroup instead of the older /dev/cgroup...
>
> You can download all the scripts from http://sandino.araico.net/throttler/ 
>
> I have put the ionice.cron in /etc/cron.d but you could also use crontab -e to set
the crontab rules on the root user. I run the  ionice-updatedb every minute all day
but you might prefer to run it every 3 or 5 minutes and just on known high load hours...
it's up to you.
>
> For the near future I have plans to rewrite the ionice-updatedb script using iotop
on context 1 to detect the I/O abusers. I was not able to run iotop on context 1 in
the past but some months ago I saw some recipes on this mailing list to make it work
so I will give them a try some day.

I might want to use this one for service execution monitoring