all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Chris Marusich <cmmarusich@gmail.com>
Cc: Hartmut Goebel <hartmut@goebel-consult.de>,
	guix-devel@gnu.org, 33600@debbugs.gnu.org
Subject: CDN performance
Date: Sun, 09 Dec 2018 16:59:13 +0100	[thread overview]
Message-ID: <871s6qzo6m.fsf_-_@gnu.org> (raw)
In-Reply-To: <87ftv7l6gy.fsf@gmail.com> (Chris Marusich's message of "Sat, 08 Dec 2018 19:33:17 -0800")

Hello Chris,

Chris Marusich <cmmarusich@gmail.com> skribis:

> Regarding DNS, it would be nice if we could use an official GNU
> subdomain.  If we can't use a GNU subdomain, we should at least make
> sure we have some kind of DNS auto-renewal set up so that nobody can
> poach our domain names.  And the operators should take appropriate
> precautions when sharing any credentials used for managing it all.

Agreed.

Regarding the GNU sub-domain, as I replied to Meiyo, I’m in favor of it,
all we need is someone to champion setting it up.

> Regarding CDNs, I definitely think it's worth a try!  Even Debian is
> using CloudFront (cloudfront.debian.net).  In fact, email correspondence
> suggests that as of 2013, Amazon may even have been paying for it!
>
> https://lists.debian.org/debian-cloud/2013/05/msg00071.html

(Note that debian.net is not Debian, and “there’s no cloud, only other
people’s computer” as the FSFE puts it.)

> Although I don't doubt that a CDN will perform better than what we have
> now, I do think it would be good to measure the performance so that we
> know for sure the money spent is actually providing a benefit.  It would
> be nice to have some data before and after to measure how availability
> and performance have changed.  Apart from anecdotes, what data do we
> have to determine whether performance has improved after introducing a
> CDN?  For example, the following information could be useful:
>
>   * Network load on the origin server(s)
>   * Clients' latency to (the addresses pointed to by) ci.guix.info
>   * Clients' throughput while downloading substitutes from ci.guix.info

Note that performance is one aspect; another one is availability (we’ve
seen that with the recent hydra.gnu.org outage!).  We know we’ll always
win in terms of availability by having a CDN in front of our servers.

That said, measuring performance is very useful and it’s great that we
can benefit from your expertise here!

> Here, it took 0.459667 - 0.254210 = 0.205457 seconds (about 205 ms) to
> establish the TCP connection after the DNS lookup.  The average
> throughput was 1924285 bytes per second (about 40 megabits per second,
> where 1 megabit = 10^6 bits).  It seems my connection to berlin is
> already pretty good!

Indeed.  The bandwidth problem on berlin is when you’re the first to
download a nar and it’s not been cached by nginx yet.  In that case, you
get very low bandwidth (like 10 times less than when the item is cached
by nginx.)  I’ve looked into it, went as far as strace’ing nginx, but
couldn’t find the reason of this.

Do you any idea?

> Establishing the TCP connection took about 21 ms (which matches the mtr
> output), and the throughput was about 79 megabits per second.  (On this
> machine, 100 Mbps is the current link speed, according to dmesg output.)
> This means that in my case, when using CloudFront the latency is 10x
> lower, and the throughput (for a cache hit) is 2x higher, than using
> berlin.guixsd.org directly!

Impressive.

> It would be interesting to see what the performance is for others.

I’ve tried this from home (in France, with FTTH):

--8<---------------cut here---------------start------------->8---
$ measure_get https://berlin.guixsd.org/nar/gzip/1bq783rbkzv9z9zdhivbvfzhsz2s5yac-linux-libre-4.19  2>/dev/null
url_effective: https://berlin.guixsd.org/nar/gzip/1bq783rbkzv9z9zdhivbvfzhsz2s5yac-linux-libre-4.19
http_code: 200
num_connects: 1
num_redirects: 0
remote_ip: 141.80.181.40
remote_port: 443
size_download: 69899433 B
speed_download: 1522001.000 B/s
time_appconnect: 0.178892 s
time_connect: 0.049649 s
time_namelookup: 0.000422 s
time_pretransfer: 0.178934 s
time_redirect: 0.000000 s
time_starttransfer: 0.278312 s
time_total: 45.926021 s
$ measure_get https://berlin-mirror.marusich.info/nar/gzip/1bq783rbkzv9z9zdhivbvfzhsz2s5yac-linux-libre-4.19 2>/dev/null
url_effective: https://berlin-mirror.marusich.info/nar/gzip/1bq783rbkzv9z9zdhivbvfzhsz2s5yac-linux-libre-4.19
http_code: 200
num_connects: 1
num_redirects: 0
remote_ip: 2600:9000:2116:6e00:c:49d4:5a80:93a1
remote_port: 443
size_download: 69899433 B
speed_download: 20803402.000 B/s
time_appconnect: 0.552008 s
time_connect: 0.482477 s
time_namelookup: 0.467598 s
time_pretransfer: 0.552157 s
time_redirect: 0.000000 s
time_starttransfer: 0.735758 s
time_total: 3.360500 s
--8<---------------cut here---------------end--------------->8---

Wall-clock time is less than a tenth; woow.

Thanks for sharing your insight and scripts!

Ludo’.

  parent reply	other threads:[~2018-12-09 15:59 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-03 15:43 [PATCH 0/3] Defaulting to ci.guix.info (aka. berlin.guixsd.org) Ludovic Courtès
2018-12-03 16:12 ` Using a CDN or some other mirror? Ludovic Courtès
2018-12-03 20:47   ` Ricardo Wurmus
2018-12-04 10:40   ` Hartmut Goebel
2018-12-04 14:05     ` Ludovic Courtès
2018-12-04 17:03       ` Pjotr Prins
2018-12-04 17:58       ` Thompson, David
2018-12-05  2:32       ` Meiyo Peng
2018-12-05  5:38         ` Leo Famulari
2018-12-05 10:59         ` Pierre Neidhardt
2018-12-05 11:46       ` Hartmut Goebel
2018-12-07 14:05         ` Ludovic Courtès
2018-12-09  9:44           ` Hartmut Goebel
2018-12-04 21:15     ` ng0
2018-12-04 21:50       ` Thompson, David
2018-12-05  9:28         ` ng0
2018-12-09  3:33   ` Chris Marusich
2018-12-09 12:12     ` Hartmut Goebel
2018-12-09 13:58       ` Ludovic Courtès
2018-12-11 16:38         ` Giovanni Biscuolo
2018-12-11 16:38           ` [bug#33600] " Giovanni Biscuolo
2018-12-14  8:35         ` Hartmut Goebel
2018-12-14  8:35           ` [bug#33600] " Hartmut Goebel
2018-12-14  9:02           ` Pierre Neidhardt
2018-12-14 14:48             ` Compressing nars with lzip or similar Ludovic Courtès
2018-12-14 14:48               ` [bug#33600] " Ludovic Courtès
2018-12-14 15:21               ` Pierre Neidhardt
2018-12-15 12:17                 ` Pierre Neidhardt
2018-12-15 18:06                   ` Ludovic Courtès
2018-12-15 18:06                     ` [bug#33600] " Ludovic Courtès
2019-03-05 11:36                     ` Pierre Neidhardt
2018-12-15 18:04                 ` Ludovic Courtès
2018-12-14 14:45           ` Using a CDN or some other mirror? Ludovic Courtès
2018-12-09 15:59     ` Ludovic Courtès [this message]
2018-12-11  5:17       ` CDN performance Meiyo Peng
     [not found]         ` <CAAYZrgbOZYyKhaHzziWfKz-nHVcUWS6WCo4TAq8bbDn9=YMTZA@mail.gmail.com>
2018-12-11  5:59           ` Meiyo Peng
     [not found]             ` <CAAYZrgb431xW1RD0Hf0d15T3AiW5yZWLL6oqHsyanv1qSf8Zuw@mail.gmail.com>
2018-12-11  6:14               ` Meiyo Peng
2018-12-13  7:11         ` Chris Marusich
2018-12-17  6:48           ` Meiyo Peng
2018-12-17  6:48             ` [bug#33600] " Meiyo Peng
2018-12-21 10:22             ` Chris Marusich
2018-12-21 16:04               ` Meiyo Peng
2018-12-21 16:04                 ` [bug#33600] " Meiyo Peng
2018-12-13  8:05       ` Chris Marusich
2018-12-13 10:41         ` Giovanni Biscuolo
2018-12-15  1:40           ` Mark H Weaver
2018-12-19 12:40             ` Giovanni Biscuolo
2018-12-21  0:23               ` Trustworthiness of build farms (was Re: CDN performance) Mark H Weaver
2018-12-21 20:47               ` CDN performance Marius Bakke
2018-12-21 20:47                 ` [bug#33600] " Marius Bakke
2018-12-24 14:47           ` Ricardo Wurmus
2018-12-14 10:26         ` guix.gnu.org sub-domain Ludovic Courtès
2018-12-15 23:20           ` Chris Marusich
2018-12-15 23:20             ` [bug#33600] " Chris Marusich
2019-01-25  4:54             ` Amin Bandali
2018-12-14 10:35         ` CDN performance Ludovic Courtès
2018-12-13  9:21     ` Using a CDN or some other mirror? Giovanni Biscuolo
2018-12-14 12:17       ` Chris Marusich
2018-12-03 18:20 ` [PATCH 0/3] Defaulting to ci.guix.info (aka. berlin.guixsd.org) Amin Bandali
2018-12-04 14:11   ` Ludovic Courtès
2018-12-11  5:41     ` Amin Bandali
2018-12-03 23:44 ` Mark H Weaver
2018-12-04  5:55   ` Ricardo Wurmus
2018-12-04  5:55     ` [bug#33600] " Ricardo Wurmus
2018-12-04  9:03     ` Ludovic Courtès
2018-12-04 10:08       ` Andreas Enge
2018-12-04  8:59   ` Andreas Enge
2018-12-04 10:28     ` Ludovic Courtès
2018-12-04 10:46       ` Andreas Enge
2018-12-04 14:12         ` Ludovic Courtès
2018-12-04  3:40 ` Meiyo Peng
2018-12-04 14:13   ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=871s6qzo6m.fsf_-_@gnu.org \
    --to=ludo@gnu.org \
    --cc=33600@debbugs.gnu.org \
    --cc=cmmarusich@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=hartmut@goebel-consult.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.