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

Reply via email to