Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Keeping Wikipedia fast [WeLoveSpeed]
Search
Peter Hedenskog
September 20, 2019
Technology
1
470
Keeping Wikipedia fast [WeLoveSpeed]
Peter Hedenskog
September 20, 2019
Tweet
Share
More Decks by Peter Hedenskog
See All by Peter Hedenskog
Measuring Web Performance for Wikipedia using synthetic testing tools
soulislove
0
420
Measuring Web Performance Using Selenium
soulislove
2
830
Monitoring Web Performance using Open Source tools (Stockholm)
soulislove
2
230
Monitoring web performance using Open Source tools (San Francisco & Silicon Valley Web Performance Group)
soulislove
1
340
Monitoring web performance using Open Source tools (South Bay JavaScript Meetup)
soulislove
0
240
Optimise your home page (fast as lightning)
soulislove
1
54
Integrating performance tools into continuous delivery
soulislove
0
270
How to make your boss speed-curious and other webperf tricks - coldfront2014
soulislove
0
180
Sitespeed.io Lightning demo @ Velocity Santa Clara 2014
soulislove
0
120
Other Decks in Technology
See All in Technology
React開発にStorybookとCopilotを導入して、爆速でUIを編集・確認する方法
yu_kod
1
280
第4回Snowflake 金融ユーザー会 Snowflake summit recap
tamaoki
1
280
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
190
AWS認定を取る中で感じたこと
siromi
1
190
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
140
Lakebaseを使ったAIエージェントを実装してみる
kameitomohiro
0
130
Yahoo!しごとカタログ 新しい境地を創るエンジニア募集!
lycorptech_jp
PRO
0
110
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
6
2.4k
敢えて生成AIを使わないマネジメント業務
kzkmaeda
2
450
Geminiとv0による高速プロトタイピング
shinya337
1
270
american airlines®️ USA Contact Numbers: Complete 2025 Support Guide
supportflight
1
110
ネットワーク保護はどう変わるのか?re:Inforce 2025最新アップデート解説
tokushun
0
210
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
Speed Design
sergeychernyshev
32
1k
Site-Speed That Sticks
csswizardry
10
690
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Building Adaptive Systems
keathley
43
2.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
How to Ace a Technical Interview
jacobian
278
23k
Automating Front-end Workflow
addyosmani
1370
200k
How to Think Like a Performance Engineer
csswizardry
25
1.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Transcript
Keeping Wikipedia fast Peter Hedenskog - @soulislove
Keeping Wikipedia fast Peter Hedenskog - @soulislove
@soulislove
@soulislove Sweden France
@soulislove
@soulislove
What to do? @soulislove
@soulislove
@soulislove
@soulislove NO!!!!!
@soulislove Jean Bernadotte?
@soulislove
@soulislove Sweden France
@soulislove
@soulislove
@soulislove
Lets talk about performance @soulislove
@soulislove Today Our setup RUM & Synthetic Learnings I’ve got
the last four years Case study one regression
@soulislove https://news.ycombinator.com/item?id=20903868
@soulislove https://phabricator.wikimedia.org
@soulislove https://grafana.wikimedia.org
Why is performance important? @soulislove
We want to bring free knowledge to the world independently
of where you live and your economic status. @soulislove
@soulislove
Engineers/dev cares too! @soulislove
Why is performance hard (for us)? @soulislove
Keeping Wikipedia fast @soulislove https://news.ycombinator.com/item?id=20903868 Keeping Wikipedia fast is easy
right?
@soulislove
The Wikipedia Performance Team Challenge All Wikis are different (JS/CSS)
All pages are different (JS/CSS) All users are different (JS/CSS) @soulislove
Our history of performance testing @soulislove
PHP -> RUM-> Synthetic @soulislove
RUM @soulislove
@soulislove Metrics from real users Sampled (1/100) Buckets: platform, browser,
location https://github.com/wikimedia/mediawiki-extensions-NavigationTiming https://grafana.wikimedia.org/d/000000143/navigation-timing?refresh=5m&orgId=1
@soulislove
@soulislove
@soulislove
How we use RUM @soulislove Metrics from “all” users/scenarios Median,
75, 95, 99 - percentiles Alert on regressions First Paint / LoadEventEnd BFF with synthetic
Synthetic testing @soulislove
@soulislove
@soulislove Browsertime + WebPageReplay
That flat line @soulislove
Deviation @soulislove
How we use synthetic @soulislove Fixing the chaos (or creating
more?) Wayback machine Three URLs per alert First Visual Change BFF with RUM
Learnings: Synthetics @soulislove
Validate metrics! @soulislove
@soulislove
https://phabricator.wikimedia.org/T187981 @soulislove
@soulislove
page1 != page2 @soulislove
@soulislove Deviation
@soulislove User journey: second view
@soulislove User journey: second view
Server matters! @soulislove
1. AWS vs GCS vs other cloud providers 2. Servers
change over time (what runs on the same physical server?) 3. C4.xlarge != C4.xlarge @soulislove
@soulislove https://phabricator.wikimedia.org/T192138 https://phabricator.wikimedia.org/T192138 https://phabricator.wikimedia.org/T192138 https://youtu.be/pYbgcDfM2Ts?t=1575
Testing multiple steps are hard @soulislove
How long time do your user stay on each page?
How long do browsers keep HTTP connections open? @soulislove
Browser versions matter @soulislove
None
Know when browsers are updated!!! @soulislove
Learnings: RUM @soulislove
RUM can be good for finding regressions @soulislove
None
User Timing API != what shows on screen @soulislove
@soulislove
New element timings are better! @soulislove
@soulislove
Browser versions are important @soulislove
@soulislove
@soulislove
The hidden tabs incident @soulislove
@soulislove The idea: async all the things … use setTimeout
to run things later.
@soulislove https://phabricator.wikimedia.org/T146510 setTimeout
@soulislove https://phabricator.wikimedia.org/T146510
@soulislove 10% of the traffics opens in another tab!
What are we missing? @soulislove
@soulislove
@soulislove RUM Higher sample rate Buckets per page type Which
metrics are important?
@soulislove Synthetic Real mobile phones (T197847) Easier for devs to
add tests (T225416)
Case study: 3/9-2019 incident @soulislove https://phabricator.wikimedia.org/T231929
@soulislove Firefox
@soulislove Firefox
@soulislove Chrome
@soulislove Firefox
@soulislove WebPageTest
@soulislove
@soulislove TTFB? No: because visible with WebPageReplay
@soulislove ttfb?
@soulislove ttfb?
@soulislove ttfb?
@soulislove Screenshots/video Diff the HAR using https://compare.sitespeed.io or size per
content type in Graphite
@soulislove ttfb?
@soulislove We got 311 span class=“cs1-visible-error”!!! Citation errors: not shown
to readers https://en.wikipedia.org/wiki/Help:CS1_errors
@soulislove Credits Pippi and father - SVT Quick et Flupke
- Hergé The king shouting - Expressen The scream - Edward Munch Napoleon - Horace Vernet Engineers India Space Shuttle - Expressen Various pictures of Carl Gustaf - Swedish tax payers through the apanage
@soulislove Questions?? @soulislove
[email protected]