Welcome!

Web Performance is a Journey, Not a Destination

Mehdi Daoudi

Subscribe to Mehdi Daoudi: eMailAlertsEmail Alerts
Get Mehdi Daoudi via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Security Journal, DevOps Journal

Article

Security (SSL) Has a Performance Tax | @DevOpsSummit @Catchpoint #DevOps #ContinuousTesting

Your weakest link on a page is a third party that is not ready to handle your load or performance requirement.

Security (SSL) Has a Performance Tax
By Mehdi Daoudi

While on a call with a customer last week, I was faced with the question of why the customer’s site had slowed down, even after they had switched to full SSL.

Well, to be honest, it’s pretty obvious; SSL is more expensive from a web performance perspective. However, it wasn’t until I saw this chart that I realized how bad it has gotten.

Response Times after SSL Intro

Every metric jumped, and jumped by a lot! The worrisome spikes here are obviously the render start, onload, and webpage response.

The problem is that when you introduce SSL, you are also forcing everything on your website (images, third parties, etc.) to also use SSL.

Some of these third parties are better than others at handling SSL. In this case, the customer relies on a marketing third party called Criteo, and unfortunately they failed the test.

Let’s take a look at how the domains associated with this third party impacted this etailer:

Criteo Performance Impact

The hostnames that were present before and after the SSL transition doubled in size! Again SSL is slower, but when you combine it with latency, it’s a performance nightmare for end users.

In this case:

From Los Angeles going to static.criteo.com I ended up in Amsterdam:

Traceroute to static.criteo.com (178.250.2.75), 64 hops max, 52 byte packets

  • 1 192.168.1.1 (192.168.1.1) 0.586 ms 0.401 ms 0.406 ms
  • 2 rrcs-xxxx.west.biz.rr.com (xxxx) 5.815 ms 13.928 ms 10.891 ms
  • 3 142.254.236.121 (142.254.236.121) 19.880 ms 22.241 ms 22.791 ms
  • 4 agg61.lsapcawv02h.socal.rr.com (24.30.169.101) 17.487 ms 15.217 ms 24.056 ms
  • 5 agg20.lsaicaev02r.socal.rr.com (72.129.19.10) 20.255 ms 19.686 ms 14.779 ms
  • 6 agg26.tustcaft01r.socal.rr.com (72.129.17.2) 28.060 ms 86.273 ms 32.855 ms
  • 7 bu-ether26.tustca4200w-bcr00.tbone.rr.com (66.109.3.232) 26.927 ms 45.653 ms 26.746 ms
  • 8 * lag-24.ear2.newyork1.level3.net (4.68.111.101) 26.402 ms 25.614 ms
  • 9 ae-225-3601.edge5.amsterdam1.level3.net (4.69.162.146) 171.798 ms 177.958 ms 170.846 ms
  • 10 criteo.edge5.amsterdam1.level3.net (212.72.41.226) 177.036 ms 173.708 ms 166.786 ms
  • 11 n7k01-inet-am5-eth4-1.eu.criteo.net (178.250.7.116) 207.144 ms 192.979 ms
  • 178.250.7.138 (178.250.7.138) 206.408 ms
  • 12 static.criteo.com (178.250.2.75) 175.349 ms 181.355 ms 169.982 ms

or to Paris:

Traceroute to static.criteo.com (178.250.0.75), 64 hops max, 52 byte packets

  • 1 192.168.1.1 (192.168.1.1) 0.569 ms 0.412 ms 0.357 ms
  • 2 rrcs-xxx.west.biz.rr.com (xxx) 2.728 ms 2.707 ms 9.438 ms
  • 3 142.254.236.121 (142.254.236.121) 18.537 ms 27.040 ms 24.838 ms
  • 4 agg61.lsapcawv02h.socal.rr.com (24.30.169.101) 58.938 ms 31.111 ms 34.907 ms
  • 5 agg20.lsaicaev02r.socal.rr.com (72.129.19.10) 29.830 ms 30.030 ms 20.014 ms
  • 6 agg26.tustcaft01r.socal.rr.com (72.129.17.2) 37.169 ms 28.472 ms 23.341 ms
  • 7 bu-ether26.tustca4200w-bcr00.tbone.rr.com (66.109.3.232) 21.238 ms 24.953 ms 22.439 ms
  • 8 * lag-24.ear2.newyork1.level3.net (4.68.111.101) 105.589 ms 20.029 ms
  • 9 ae-4-90.edge5.paris1.level3.net (4.69.168.200) 174.507 ms
  • ae-2-70.edge5.paris1.level3.net (4.69.168.72) 179.457 ms 169.571 ms
  • 10 ae-2-70.edge5.paris1.level3.net (4.69.168.72) 184.136 ms 169.041 ms
  • ae-1-60.edge5.paris1.level3.net (4.69.168.8) 166.249 ms
  • 11 criteo.edge5.paris1.level3.net (213.242.111.98) 181.880 ms 163.970 ms 170.280 ms
  • 12 178.250.7.240 (178.250.7.240) 159.588 ms
  • 178.250.7.242 (178.250.7.242) 169.325 ms
  • 178.250.7.240 (178.250.7.240) 165.443 ms
  • 13 static.criteo.com (178.250.0.75) 163.561 ms 192.055 ms 175.467 ms

Going to static.criteo.net I either went to SFO or to NY

  • 1 192.168.1.1 (192.168.1.1) 0.563 ms 0.357 ms 0.334 ms
  • 2 rrcs-xxx.west.biz.rr.com (xxx) 12.283 ms 9.262 ms 5.900 ms
  • 3 142.254.236.121 (142.254.236.121) 14.034 ms 29.089 ms 18.924 ms
  • 4 agg61.lsapcawv02h.socal.rr.com (24.30.169.101) 27.351 ms 23.018 ms 23.657 ms
  • 5 agg20.lsaicaev02r.socal.rr.com (72.129.19.10) 22.151 ms 23.728 ms 25.857 ms
  • 6 agg26.tustcaft01r.socal.rr.com (72.129.17.2) 44.198 ms 29.502 ms 39.897 ms
  • 7 bu-ether16.tustca4200w-bcr00.tbone.rr.com (66.109.6.64) 32.621 ms 24.070 ms 23.089 ms
  • 8 * * *
  • 9 ae-1-5.bar1.sanfrancisco1.level3.net (4.69.140.149) 34.351 ms 38.145 ms 39.065 ms
  • 10 ae-1-5.bar1.sanfrancisco1.level3.net (4.69.140.149) 39.776 ms 39.770 ms 40.181 ms
  • 11 criteo.bar1.sanfrancisco1.level3.net (4.53.132.34) 40.056 ms 49.411 ms 35.027 ms
  • 12 * 74.119.116.175 (74.119.116.175) 32.932 ms *
  • 13 * * *
  • 14 * static.criteo.net (74.119.117.74) 47.464 ms *

Because I use Google DNS and OpenDNS, I told myself that maybe that’s what was causing this weird routing.

But, then I traced from five of our nodes in the US:

Denver TWTC
Tracing route to static.criteo.com [178.250.0.75] over a maximum of 30 hops:

  • 1   <1 ms   <1 ms   <1 ms 10.109.40.1
  • 2    1 ms   <1 ms    1 ms 74-202-23-213.static.twtelecom.net[74.202.23.213]
  • 3    1 ms    7 ms    1 ms den1-pr2-xe-2-1-0-0.us.twtelecom.net[66.192.245.198]
  • 4    *       *       *    Timed Out
  • 5  120 ms  121 ms  120 ms ae-4-90.edge5.paris1.level3.net[4.69.168.200]
  • 6  120 ms  125 ms  123 ms ae-4-90.edge5.paris1.level3.net[4.69.168.200]
  • 7  123 ms  124 ms  127 ms criteo.edge5.paris1.level3.net[213.242.111.98]
  • 8  120 ms  120 ms  120 ms 178.250.7.240
  • 9  120 ms  120 ms  119 ms static.criteo.com[178.250.0.75]

SF Level3
Tracing route to static.criteo.com [178.250.2.75] over a maximum of 30 hops:

  • 1   <1 ms   <1 ms   <1 ms 10.113.30.1
  • 2    6 ms   <1 ms   <1 ms lag-ae7-255.ear2.losangeles1.level3.net[4.31.61.117]
  • 3  165 ms  166 ms  219 ms ae-226-3602.edge5.amsterdam1.level3.net[4.69.162.150]
  • 4  167 ms  162 ms  163 ms criteo.edge5.amsterdam1.level3.net[212.72.41.226]
  • 5  141 ms  141 ms  141 ms n7k01-inet-am5-eth4-1.eu.criteo.net[178.250.7.116]
  • 6  141 ms  141 ms  141 ms static.criteo.com[178.250.2.75]

Miami CenturyLink
Tracing route to static.criteo.com [178.250.2.75] over a maximum of 30 hops:

  • 1   <1 ms   <1 ms   <1 ms 10.115.20.1
  • 2   <1 ms   <1 ms   <1 ms mia-edge-03.inet.qwest.net[63.237.255.221]
  • 3    6 ms    2 ms    3 ms nap-brdr-01.inet.qwest.net[67.14.29.102]
  • 4    1 ms   <1 ms   <1 ms mai-b1-link.telia.net[80.239.195.141]
  • 5   26 ms   26 ms   26 ms ash-bb3-link.telia.net[62.115.141.74]
  • 6  101 ms  142 ms  102 ms ldn-bb3-link.telia.net[80.91.246.69]
  • 7  110 ms  110 ms  128 ms adm-bb3-link.telia.net[213.155.136.105]
  • 8  106 ms  106 ms  106 ms adm-b2-link.telia.net[62.115.141.51]
  • 9  117 ms  121 ms  120 ms 62.115.8.190
  • 10  107 ms  107 ms  107 ms n7k02-inet-am5-eth4-1.eu.criteo.net[178.250.7.119]
  • 11  107 ms  107 ms  107 ms static.criteo.com[178.250.2.75]

SF VZN

Tracing route to static.criteo.com [178.250.2.75] over a maximum of 30 hops:

  • 1    1 ms    1 ms    1 ms 10.117.20.1
  • 2    2 ms    1 ms    2 ms 120.gigabitethernet3-0.gw2.sjc7.alter.net[63.65.128.45]
  • 3    3 ms   13 ms   10 ms bundle-ether14.gw3.sjc7.alter.net[140.222.235.53]
  • 4    4 ms    3 ms    4 ms teliasonera-gw.customer.alter.net[152.179.48.214]
  • 5   70 ms  113 ms   69 ms ash-bb4-link.telia.net[213.155.130.212]
  • 6  259 ms  140 ms  141 ms ldn-bb2-link.telia.net[213.248.65.97]
  • 7  151 ms  151 ms  145 ms adm-bb4-link.telia.net[213.155.136.79]
  • 8  159 ms  165 ms  151 ms adm-b2-link.telia.net[62.115.141.11]
  • 9  147 ms  149 ms  144 ms 62.115.8.190
  • 10  169 ms  147 ms  143 ms 178.250.7.158
  • 11  144 ms  143 ms  143 ms static.criteo.com[178.250.2.75]

DC Cogent

Tracing route to static.criteo.com [178.250.2.75] over a maximum of 30 hops:

  • 1   <1 ms   <1 ms   <1 ms 10.111.10.1
  • 2   <1 ms   <1 ms   <1 ms gi0-2-1-18.216.rcr21.iad01.atlas.cogentco.com[38.122.67.73]
  • 3   <1 ms   <1 ms   <1 ms be2955.rcr21.iad02.atlas.cogentco.com[154.54.30.190]
  • 4    1 ms    1 ms    2 ms be2658.ccr41.dca01.atlas.cogentco.com[154.54.47.137]
  • 5    8 ms    7 ms    7 ms be2806.ccr41.jfk02.atlas.cogentco.com[154.54.40.105]
  • 6   76 ms   76 ms   76 ms be2317.ccr41.lon13.atlas.cogentco.com[154.54.30.186]
  • 7   86 ms  107 ms   86 ms be12194.ccr41.ams03.atlas.cogentco.com[154.54.56.94]
  • 8   86 ms   86 ms   86 ms be2499.rcr21.b031955-0.ams03.atlas.cogentco.com[130.117.1.150]
  • 9   87 ms   87 ms   87 ms 149.14.34.114
  • 10   84 ms   84 ms   84 ms n7k01-inet-am5-eth4-1.eu.criteo.net[178.250.7.116]
  • 11   86 ms   86 ms   86 ms static.criteo.com[178.250.2.75]

The challenge here is not only SSL, but the combination of SSL and geographically induced latency that makes things even worse.

It’s also important to compare Hostname A with Hostname B. In this case, I compared www.google-analytics.com vs. static.criteo.com during the switch over to Full SSL. Again, it’s normal that the SSL request should take a bit longer. Obviously, Google has some advantages: massive internet presence, geo load balancing, amazing consistent performance (notice the flat line vs. the jittery blue line), anycast network, people dedicated to monitoring and an environment where performance is part of the core DNA of every employee, even the air we used to breath there contained performance ions!

Performance Criteo vs. Google

As we often said, your weakest link on a page is a third party that is not ready to handle your load or performance requirement. Switching to all SSL is a great feature from a security perspective, but at the cost of performance. Please make sure you keep an eye on your third parties when you switch to SSL.

What’s worrying me the most is what will happen when we move to HTTP 2.0, where it’s all secure. I know the benefits of HTTP/2, but I am very concerned by how all these third parties are going to impact websites when they switch.

Mehdi

The post Security (SSL) has a Performance Tax appeared first on Catchpoint's Blog.

More Stories By Mehdi Daoudi

Catchpoint radically transforms the way businesses manage, monitor, and test the performance of online applications. Truly understand and improve user experience with clear visibility into complex, distributed online systems.

Founded in 2008 by four DoubleClick / Google executives with a passion for speed, reliability and overall better online experiences, Catchpoint has now become the most innovative provider of web performance testing and monitoring solutions. We are a team with expertise in designing, building, operating, scaling and monitoring highly transactional Internet services used by thousands of companies and impacting the experience of millions of users. Catchpoint is funded by top-tier venture capital firm, Battery Ventures, which has invested in category leaders such as Akamai, Omniture (Adobe Systems), Optimizely, Tealium, BazaarVoice, Marketo and many more.