Page MenuHomePhabricator

Achieve sub-900ms median first paint time
Closed, ResolvedPublic

Description

Thought: avoid the temptation to micro-optimize by setting an ambitious but realistic goal.

Event Timeline

ori created this task.Jul 9 2015, 7:41 PM
ori raised the priority of this task from to Needs Triage.
ori updated the task description. (Show Details)
ori added a project: Performance-Team.
ori added a subscriber: ori.
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptJul 9 2015, 7:41 PM
Krinkle triaged this task as High priority.Jul 19 2015, 7:03 PM
Krinkle set Security to None.
Krinkle moved this task from Inbox to Backlog: Small & Maintenance on the Performance-Team board.
ori added a comment.Aug 7 2015, 5:00 AM

We're pretty close to achieving this now that rMWd7905627fdc3: resourceloader: Async all the way has rolled out. It's too early to say for sure, but it looks like the new norm will for the five-minute-window moving median to fluctuate between 850ms - 1050ms, depending on the time of day. Shaving another 150ms off of first paint time at peak hours should be doable.

Peter added a subscriber: Peter.Aug 19 2015, 8:21 PM

It seems to have gotten even better lately. It only slightly goes over 900 during peak hours.

Krinkle added a subscriber: Krinkle.EditedAug 26 2015, 9:15 PM

Following rMWd790562, median firstPaint was around 850ms low and 1050ms peak.

Following Ori's script/style order optimisations (e.g. 09537e83e7) median firstPaint is now around 730ms low and 930ms peak.

Krinkle added a comment.EditedSep 4 2015, 2:45 AM

Last week we discussed in the performance team meeting that we need to better define this goal.

We've certainly achieved that our software can now render first paint in under 900ms (median) for all our traffic combined at a certain point in time (e.g. not just for some users). However daily traffic fluctuation does make it go above 900ms every day.

Considering it is a median (and not individual data points, which would be infeasible), I think it is within our reach to achieve persistent sub-900ms first paint (where the daily peak does not go over 900ms). So let's keep this open a little longer?

Having said that, we do need to decide which measure to track (coal vs statsd). So far in this task we've been referring to the coal metric (which is a median). However looking at the firstPaint.median from statsd in Graphite, it doesn't match exactly. You'd expect it to vary more (due it not being a 5-min moving median like coal), but it actually varies less. https://grafana.wikimedia.org/dashboard/db/navigation-timing

According this one, we've not exceeded 860ms at any point in the last 7 days:


Compared to the metric from Coal:

ori closed this task as Resolved.Sep 25 2015, 1:49 AM
ori claimed this task.
ori reassigned this task from ori to Krinkle.Sep 25 2015, 1:51 AM

(Timo deserves the credit for this work.)