Set default binary-caches-parallel-connections to 25

Some benchmarking suggested this as a good value. Running

  $ benchmark -f ... -t 25 -- sh -c 'rm -f /nix/var/nix/binary-cache*; nix-store -r /nix/store/x5z8a2yvz8h6ccmhwrwrp9igg03575jg-nixos-15.09.git.5fd87e1M.drv --dry-run --option binary-caches-parallel-connections <N>'

gave the following mean elapsed times for these values of N:

N=10:  3.3541
N=20:  2.9320
N=25:  2.6690
N=30:  2.9417
N=50:  3.2021
N=100: 3.5718
N=150: 4.2079

Memory usage is also reduced (N=150 used 186 MB, N=25 only 68 MB).

Closes #708.
This commit is contained in:
Eelco Dolstra 2015-11-25 17:13:11 +01:00
parent efd6a8c9f6
commit c0d4173263
2 changed files with 2 additions and 2 deletions

View file

@ -426,7 +426,7 @@ flag, e.g. <literal>--option gc-keep-outputs false</literal>.</para>
<listitem><para>The maximum number of parallel HTTP connections <listitem><para>The maximum number of parallel HTTP connections
used by the binary cache substituter to get NAR info files. This used by the binary cache substituter to get NAR info files. This
number should be high to minimise latency. It defaults to number should be high to minimise latency. It defaults to
150.</para></listitem> 25.</para></listitem>
</varlistentry> </varlistentry>

View file

@ -21,7 +21,7 @@ Nix::Config::readConfig;
my @caches; my @caches;
my $gotCaches = 0; my $gotCaches = 0;
my $maxParallelRequests = int($Nix::Config::config{"binary-caches-parallel-connections"} // 150); my $maxParallelRequests = int($Nix::Config::config{"binary-caches-parallel-connections"} // 25);
$maxParallelRequests = 1 if $maxParallelRequests < 1; $maxParallelRequests = 1 if $maxParallelRequests < 1;
my $ttlNegative = 24 * 3600; # when to purge negative lookups from the database my $ttlNegative = 24 * 3600; # when to purge negative lookups from the database