[Popcon-developers] Bug#483465: popularity-contest: cronjob should use ionice

Franklin PIAT fpiat at bigfoot.com
Sun Jun 8 22:37:30 UTC 2008


Hi Petter,

On Sun, 2008-06-08 at 19:08 +0200, Petter Reinholdtsen wrote:
> [Franklin Piat]
> > popularity-contest's cronjob (/etc/cron.daily/popularity-contest)
> > should use ionice...

> I suspect adding something like this to the script is less intrusive:
> 
>   ionice -c2 -p $$ > /dev/null 2>&1 || true

Yep, it's less intrusive, however, "ionice -p" doesn't seems to be
propagated to existing child process :

$ su -s /bin/sh -c "dd if=/dev/zero of=/dev/zero" nobody 
$ ionice -c2 -p$! -n7

17056 pts/13   S  0:00   \_ su -s /bin/sh -c dd if=/dev/zero ...
17058 pts/13   S  0:00   |   \_ sh -c dd if=/dev/zero of=/dev/zero
17059 pts/13   R  0:03   |       \_ dd if /dev/zero of /dev/zero
17060 pts/13   R+ 0:00   \_ ps xaf

$  ionice -p17059
none: prio 4
$  ionice -p17058
none: prio 4
$  ionice -p17056
best-effort: prio 7


> It change the nice level on the script process.  Btw, why did you
> choose class 2 (best-effort) instead of class 3 (idle)?

The class 3 (idle) can lead to deadlocks[1]. (I think there were some
improvements in recent kernels).

> I thought class 2 was the default, thus making the operation a no-op?
You are right... I usually run "nice ionice -c2 foobar" (which works).
Maybe we should do that... or use "ionice -c2 -n7"

Franklin


[1] http://article.gmane.org/gmane.linux.utilities.util-linux-ng/784
[2] /usr/share/doc/linux-doc-2.6.25/Documentation/block/ioprio.txt.gz






More information about the Popcon-developers mailing list