Page MenuHomePhabricator

FY2022-2023: Improve Backend Pageview Timing
Open, Needs TriagePublic

Description

Tracking task for various improvements releating to improving general backend response times for pageview rendering.

Motivation

Data

https://grafana.wikimedia.org/d/QLtC93rMz/backend-pageview-timing

Revisions and Commits

Related Objects

StatusSubtypeAssignedTask
OpenNone
OpenLadsgroup
ResolvedLadsgroup
ResolvedKrinkle
ResolvedNone
ResolvedNone
Resolveddaniel
Resolveddaniel
Resolveddaniel
Resolveddaniel
OpenNone
Resolveddaniel
Resolveddaniel
ResolvedJdforrester-WMF
ResolvedPRODUCTION ERRORUmherirrender
Resolveddaniel
Resolveddaniel
Resolveddaniel
ResolvedPeter.ovchyn
Resolveddaniel
ResolvedKrinkle
OpenKrinkle
ResolvedKrinkle
ResolvedKrinkle
ResolvedKrinkle
OpenNone
OpenNone
OpenNone
OpenNone
Resolvedfgiunchedi
Resolvedtstarling
Resolvedaaron
OpenNone
OpenNone
OpenNone
ResolvedLegoktm
ResolvedCatrope
ResolvedLegoktm
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenKrinkle
DuplicateNone
OpenNone
OpenLadsgroup
DuplicateKrinkle
OpenKrinkle
OpenPRODUCTION ERRORTgr
ResolvedPRODUCTION ERRORKrinkle
OpenNone
StalledKormat
ResolvedLadsgroup

Event Timeline

Krinkle updated the task description. (Show Details)
Krinkle moved this task from Untriaged to Not yet on the Performance-Team-publish board.

Change 766179 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/GrowthExperiments@master] HomepageHooks: Micro-optim around onMessageCache__get() and other hooks

https://gerrit.wikimedia.org/r/766179

Change 766179 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] HomepageHooks: Micro-optim around onMessageCache__get() and other hooks

https://gerrit.wikimedia.org/r/766179

Change 822495 had a related patch set uploaded (by Krinkle; author: Tim Starling):

[mediawiki/core@master] SessionManager: don't check whether newly generated session IDs already exist

https://gerrit.wikimedia.org/r/822495

Change 822495 merged by jenkins-bot:

[mediawiki/core@master] SessionManager: don't check whether newly generated session IDs already exist

https://gerrit.wikimedia.org/r/822495

Change 830706 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/core@master] [DNM] objectcache: Disable cool-off bounce feature

https://gerrit.wikimedia.org/r/830706

Change 838872 had a related patch set uploaded (by Krinkle; author: Aaron Schulz):

[mediawiki/core@master] objectcache: use WRITE_BACKGROUND in WANObjectCache where applicable

https://gerrit.wikimedia.org/r/838872

Change 838872 merged by jenkins-bot:

[mediawiki/core@master] objectcache: use WRITE_BACKGROUND in WANObjectCache where applicable

https://gerrit.wikimedia.org/r/838872

Change 838872 merged by jenkins-bot:

[mediawiki/core@master] objectcache: use WRITE_BACKGROUND in WANObjectCache where applicable

https://gerrit.wikimedia.org/r/838872

Impact on https://grafana.wikimedia.org/d/lqE4lcGWz/wanobjectcache-key-group, as measured by the most trafficked key group (SqlBlobStore_blob):

Screenshot 2022-11-18 at 00.42.24.png (611×1 px, 136 KB)

Screenshot 2022-11-18 at 00.42.42.png (1×1 px, 278 KB)

The total miss-compute time is all time spent in getWithSet during a cache miss. The regen_set_delay is the time up until right before the SET command (and possibly the cool-off bounce). This time has been cut by 0.5ms from 0.75ms to 0.25ms.

Would T124371: Clean up usage of $_SESSION in WMF-deployed extensions be worth looking into? I think PHPSessionHandler triggers lots of unnecessary session logic by registering SessionManager as a PHP session handler, which is only necessary for compatibility with old code which does normal PHP session operations, which is hopefully all gone by now, so we should be able to switch off $wgPHPSessionHandling in Wikimedia production, and maybe as a MediaWiki default.