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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Peter Hedenskog
September 20, 2019
Technology
1
500
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
470
Measuring Web Performance Using Selenium
soulislove
2
950
Monitoring Web Performance using Open Source tools (Stockholm)
soulislove
2
240
Monitoring web performance using Open Source tools (San Francisco & Silicon Valley Web Performance Group)
soulislove
1
370
Monitoring web performance using Open Source tools (South Bay JavaScript Meetup)
soulislove
0
250
Optimise your home page (fast as lightning)
soulislove
1
60
Integrating performance tools into continuous delivery
soulislove
0
290
How to make your boss speed-curious and other webperf tricks - coldfront2014
soulislove
0
190
Sitespeed.io Lightning demo @ Velocity Santa Clara 2014
soulislove
0
130
Other Decks in Technology
See All in Technology
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
100
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
450
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.6k
Greatest Disaster Hits in Web Performance
guaca
0
280
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
670
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
470
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
Context Engineeringの取り組み
nutslove
0
370
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
AI駆動開発を事業のコアに置く
tasukuonizawa
1
300
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
380
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Statistics for Hackers
jakevdp
799
230k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
67
The SEO identity crisis: Don't let AI make you average
varn
0
290
Optimizing for Happiness
mojombo
379
71k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
A designer walks into a library…
pauljervisheath
210
24k
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]