Author: eelco
Date: Fri Nov 25 12:58:36 2011
New Revision: 30557
URL: https://nixos.org/websvn/nix/?rev=30557&sc=1
Log:
* Use cgroups to (hopefully) improve the interactiveness of the Hydra
web server (by giving its processes a bigger CPU share than the
build/evaluator processes).
Modified:
configurations/trunk/tud/hydra-module.nix
configurations/trunk/tud/lucifer.nix
Modified: configurations/trunk/tud/hydra-module.nix
==============================================================================
--- configurations/trunk/tud/hydra-module.nix Fri Nov 25 12:35:33 2011
(r30556)
+++ configurations/trunk/tud/hydra-module.nix Fri Nov 25 12:58:36 2011
(r30557)
@@ -146,7 +146,7 @@
{ name = "hydra-server";
startOn = "started network-interfaces and started hydra-init";
exec = ''
- ${pkgs.su}/bin/su - ${cfg.user} -c '${server_env} hydra_server.pl -h
\* --max_spare_servers 20 --max_servers 50 > ${cfg.baseDir}/data/server.log
2>&1'
+ ${pkgs.su}/bin/su - ${cfg.user} -c '${server_env} exec
hydra_server.pl -h \* --max_spare_servers 20 --max_servers 50 >
${cfg.baseDir}/data/server.log 2>&1'
'';
};
@@ -155,7 +155,7 @@
startOn = "started network-interfaces and started hydra-init";
preStart = "${pkgs.su}/bin/su - ${cfg.user} -c 'hydra_queue_runner.pl
--unlock'";
exec = ''
- ${pkgs.su}/bin/su - ${cfg.user} -c 'nice -n 8 hydra_queue_runner.pl
> ${cfg.baseDir}/data/queue_runner.log 2>&1'
+ ${pkgs.su}/bin/su - ${cfg.user} -c 'exec hydra_queue_runner.pl >
${cfg.baseDir}/data/queue_runner.log 2>&1'
'';
};
@@ -163,7 +163,7 @@
{ name = "hydra-evaluator";
startOn = "started network-interfaces";
exec = ''
- ${pkgs.su}/bin/su - ${cfg.user} -c '${env} nice -n 5
hydra_evaluator.pl > ${cfg.baseDir}/data/evaluator.log 2>&1'
+ ${pkgs.su}/bin/su - ${cfg.user} -c '${env} exec hydra_evaluator.pl >
${cfg.baseDir}/data/evaluator.log 2>&1'
'';
};
Modified: configurations/trunk/tud/lucifer.nix
==============================================================================
--- configurations/trunk/tud/lucifer.nix Fri Nov 25 12:35:33 2011
(r30556)
+++ configurations/trunk/tud/lucifer.nix Fri Nov 25 12:58:36 2011
(r30557)
@@ -76,4 +76,37 @@
services.cron.systemCronJobs =
[ "*/5 * * * * hydra-mirror flock -x /data/releases/.lock -c
/home/hydra-mirror/release/mirror/mirror-nixos-isos.sh >>
/home/hydra-mirror/nixos-mirror.log 2>&1" ];
+ services.cgroups = {
+ enable = true;
+ groups =
+ ''
+ mount {
+ cpu = /dev/cgroup/cpu;
+ }
+ group hydra-server {
+ cpu {
+ cpu.shares = "700";
+ }
+ }
+ group hydra-build {
+ cpu {
+ cpu.shares = "200";
+ }
+ }
+ group hydra-evaluator {
+ cpu {
+ cpu.shares = "100";
+ }
+ }
+ '';
+ rules =
+ ''
+ root:nix-worker cpu hydra-build
+ hydra:nix-store cpu hydra-build
+ hydra:.hydra_build.pl-wrapped cpu hydra-build
+ hydra:.hydra_evaluator.pl-wrapped cpu hydra-evaluator
+ hydra:.hydra_server.pl-wrapped cpu hydra-server
+ '';
+ };
+
}
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits