Date post: | 21-Oct-2014 |
Category: |
Internet |
View: | 267 times |
Download: | 0 times |
Lightning fast page load time with
Spree & Ninefold
Hi. I’m Andrew.
How you measure things makes a big
difference.
Why should you care about performance?
1. Do it for the users.
So, users, what do they even want?
Google asked.
“We want more results.”
More results = 500ms slower.
20% drop in traffic and revenue.
Bad performance can ruin your UX.
Improved load time by 400ms. Increased traffic by 9%.
http://www.slideshare.net/stoyan/yslow-20-presentation
Visitors experiencing the best 10% of load times viewed 3 times more pages
than those getting the worst 10%.
http://assets.en.oreilly.com/1/event/29/The%20Secret%20Weapons%20of%20the%20AOL%20Optimization%20Team%20Presentation.pdf
2. Do it for the money.
For every 100ms of load time improvement:
Sales increased by 1%.
https://sites.google.com/site/glinden/Home/StanfordDataMining.2006-11-28.ppt?attredirects=0
Load time: 6 seconds -> 1.2 seconds. Page views: up 25%. Revenue: up 12%.
http://www.slideshare.net/timmorrow/shopzilla-performance-by-design-2433735
47% of ecommerce consumers expect a page load of 2 seconds or less.
40% abandonment rate on pages that take more than 3 seconds to load.
http://blog.kissmetrics.com/loading-time/
What does good even look like?
Google again.
“Mate! We’re much quicker than that!”
Good. Only problem is…
The mean is a lie.
Stats 101: the Bell Curve.
The real world.
What does that even mean?
Every 100ms matters.
How can hosting help?
Proof needs testing.
First: find an app.
Why Spree?
- Ruby on Rails. - Performance matters. - Adoption through the roof.
Got the app: what next?
1. Set up a server. 2. Design a simulation. 3. Throw simulated
users at the server. 4. Measure the latency.
Tools.
Our tool chain.Chrome -> Developer tools provide data for the test plan. !ruby-jmeter -> Provides ruby-based testing DSL. -> Generates JMeter XML. !Flood.io -> Eats JMeter XML. -> Spin up a “Grid” of users following the XML-defined script. -> Measures and reports response times.
Capture click data.
JMeter.
JMeter.
JMeter.
Don’t cry.
There’s ruby-jmeter.
Our test plan.
Our test plan.
Running the test at scale.
Flood.io
- Requires some understanding of JMeter. !- Scales as big as you want to pay for. !
- Gives high-level and very granular results.
Flood.io
Apdex.t = acceptable response time
satisfied = response time < t tolerating = t < response time < 4t
frustrated = response time > 4t
!
Apdex [t] = (satisfied + (tolerating/2))/total requests
Why Apdex?
95th/99th percentile is based on the mean. We know the mean is a lie.
Apdex brings user experience to the table.
Happiness as a constant.Apdex [0.75] 0.95
Benchmarked against Heroku.
Higher threshold than we would
have liked.
Test parameters.• Choose 5 configurations that range from $100
per month to $1,000 per month.
• Run flood.io tests using a 60 second ramp up and a 300 second test duration.
• Vary the concurrent user count to discover the maximum number of users that can be serviced while maintaining an Apdex [0.75] 0.95
The results.
$0.00$
$100.00$
$200.00$
$300.00$
$400.00$
$500.00$
$600.00$
$700.00$
$800.00$
$900.00$
$1,000.00$
$1,100.00$
$1,200.00$
0$ 25$ 50$ 75$ 100$ 125$ 150$ 175$ 200$ 225$ 250$ 275$ 300$ 325$ 350$ 375$ 400$ 425$ 450$ 475$ 500$ 525$ 550$ 575$ 600$ 625$
Mon
thly(cost(for(te
st(con
figura2
on(
Maximum(concurrent(users(whilst(maintaining(Apdex(of(at(least(0.95((
How(much(does(it(cost(to(delight(my(customers?(
Heroku$2X$ Ninefold$
Smooth scaling.
$0.00$$100.00$$200.00$$300.00$$400.00$$500.00$$600.00$$700.00$$800.00$$900.00$
$1,000.00$$1,100.00$$1,200.00$$1,300.00$$1,400.00$$1,500.00$$1,600.00$$1,700.00$$1,800.00$$1,900.00$$2,000.00$$2,100.00$$2,200.00$$2,300.00$$2,400.00$$2,500.00$
0$ 25$ 50$ 75$ 100$ 125$ 150$ 175$ 200$ 225$ 250$ 275$ 300$ 325$ 350$ 375$ 400$ 425$ 450$ 475$ 500$ 525$ 550$ 575$ 600$ 625$ 650$ 675$ 700$ 725$ 750$ 775$ 800$
Mon
thly(cost(for(te
st(con
figura2
on(
Maximum(concurrent(users(whilst(maintaining(Apdex(of(at(least(0.95((
How(much(does(it(cost(to(delight(my(customers?(
Ninefold$ Heroku$PX$
Smooth pricing.
Consistent performance.
1 in 20 clicks.
How many clicks is your average user
journey (to checkout)?
Not 1 in 20 users.
What does this mean for you?
1. Every 100ms matters.
2. Consistency matters.
1. Test, scale, test again.
2. Test your options.
Spree cached 2-2.
Performance, engagement, sales.
Where should I host?
1. Consistent performance. 2. Lowest cost of ownership.
• Competitive VM pricing. • Lower sysadmin costs. • No PaaS premium.
With Ninefold of course…
3. Smooth scaling costs. 4. Easy deployment & scaling. 5. Just enough control.
With Ninefold of course…
www.ninefold.com/spree @ninefold
!
Schedule your individual demo
[email protected] @s4sharpie
Learn more.