diff --git a/hydra-module.nix b/hydra-module.nix
index 32bb2f75..95574798 100644
--- a/hydra-module.nix
+++ b/hydra-module.nix
@@ -225,6 +225,7 @@ in
         base_uri ${cfg.hydraURL}
         notification_sender ${cfg.notificationSender}
         max_servers 25
+        compress_num_threads 0
         ${optionalString (cfg.logo != null) ''
           hydra_logo ${cfg.logo}
         ''}
diff --git a/release.nix b/release.nix
index d6e6ae5c..49c1b9a6 100644
--- a/release.nix
+++ b/release.nix
@@ -134,7 +134,7 @@ rec {
         ];
 
       hydraPath = lib.makeBinPath (
-        [ libxslt sqlite subversion openssh nix coreutils findutils
+        [ libxslt sqlite subversion openssh nix coreutils findutils pixz
           gzip bzip2 lzma gnutar unzip git gitAndTools.topGit mercurial darcs gnused bazaar
         ] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] );
 
diff --git a/src/lib/Hydra/View/NARInfo.pm b/src/lib/Hydra/View/NARInfo.pm
index 4afe4041..460bd706 100644
--- a/src/lib/Hydra/View/NARInfo.pm
+++ b/src/lib/Hydra/View/NARInfo.pm
@@ -21,7 +21,7 @@ sub process {
     my $info;
     $info .= "StorePath: $storePath\n";
     $info .= "URL: nar/" . basename $storePath. "\n";
-    $info .= "Compression: bzip2\n";
+    $info .= "Compression: xz\n";
     $info .= "NarHash: $narHash\n";
     $info .= "NarSize: $narSize\n";
     $info .= "References: " . join(" ", map { basename $_ } @{$refs}) . "\n";
diff --git a/src/lib/Hydra/View/NixNAR.pm b/src/lib/Hydra/View/NixNAR.pm
index 4b2160ac..350ee8e9 100644
--- a/src/lib/Hydra/View/NixNAR.pm
+++ b/src/lib/Hydra/View/NixNAR.pm
@@ -7,13 +7,15 @@ use Hydra::Helper::CatalystUtils;
 sub process {
     my ($self, $c) = @_;
 
-    my $storePath = $c->stash->{storePath};
+    my $storePath  = $c->stash->{storePath};
+    my $numThreads = $c->config->{'compress_num_threads'};
+    my $pParam     = ($numThreads > 0) ? "-p$numThreads" : "";
 
     $c->response->content_type('application/x-nix-archive'); # !!! check MIME type
 
     my $fh = new IO::Handle;
 
-    open $fh, "nix-store --dump '$storePath' | bzip2 |";
+    open $fh, "nix-store --dump '$storePath' | pixz -0 $pParam |";
 
     setCacheHeaders($c, 365 * 24 * 60 * 60);