Wikimedia Performance Team

As the Wikimedia Foundation’s Performance Team, we want to create value for readers and editors by making it possible to retrieve and render content at the speed of thought, from anywhere in the world, on the broadest range of devices and connection profiles.

Projects
Availability. Although Wikimedia Foundation currently operates six data centers, MediaWiki is only running on one (in Ashburn, Virginia). If you are an editor in Jakarta, Indonesia, content has to travel over 15,000 kilometers to get from our servers to you (or vice versa). To run MediaWiki concurrently from multiple places across the globe, our code needs to be more resilient to failure modes that can occur when different subsystems are geographically remote from one another.

Performance testing infrastructure. WebPageTest provides a stable reference for a set of browsers, devices, and connection types from different points in the world. It collects very detailed telemetry that we use to find regressions and pinpoint where problems are coming from. This is addition to the more basic Navigation Timing metrics we gather from real users in production.

Media stack. We're currently working on overhauling our thumbnail infrastructure to achieve multiple goals. Improving future-proof maintainability by taking thumbnail code out of MediaWiki-Core and using a service instead to perform thumbnail operations. Saving on expensive storage by no longer storing multiple copies of all thumbnails on disk forever. Enabling far-future expires for images, to greatly improve their client cacheability. And finally switching to the best performing underlying software to generate thumbnails faster.

ResourceLoader. ResourceLoader is the MediaWiki subsystem that is responsible for loading JavaScript and CSS. Whereas much of MediaWiki's code executes only sparingly (in reaction to editors modifying content) ResourceLoader code runs over half a billion times a day on hundreds of millions of devices. Its contribution to how users experience our sites is very large. Our current focus is on improving ResourceLoader's cache efficiency by packaging and delivering JavaScript and CSS code in a way that allows it to be reused across page views without needing to be repeatedly downloaded.

Metrics
A big part of our work is devoted to collecting and analyzing site performance data to ensure that we have a holistic and accurate understanding of what users experience when they access Wikimedia sites.

Links

 * Phabricator workboard
 * Phabricator workboard