We're observing WikipediaApp sending bursts of traffic synchronized to the top of the hour. The issue is especially prevalent at 22:00 UTC, or rather, local midnight in Central European Summer Time. The bursts are dramatic enough to cause increased latency and error rate affecting all users at multiple levels of our infrastructure, from the edge CDN to Restbase to the Wikifeeds service.
It seems that at local midnight the install base of the app fetches URLs like
- /api/rest_v1/feed/featured/2020/10/07
- /api/rest_v1/feed/onthisday/events/10/7
- /api/rest_v1/page/random/summary
across a variety of wikis.
AFAICT these paths do seem to get cached in our CDN, but still, the sudden percussive volume of the traffic means that it does create problems in our infra (see also parent task).
As an example: On Oct 6th, in the first minute of 22:00, we go from seeing very few of these requests to seeing over 1.2M requests in the first minute -- an average of about 20.5k rps! I would also guess that this figure understates reality, as clocks on mobiles should be reasonably-synchronized and the traffic is likely skewed towards the start of the minute. 20.5k rps is about 1/5th the daily peak of our esams cluster, and over 1/3rd of the usual steady-state traffic the PoP is serving at that time. The spike is visible on the overall frontend traffic graphs in the cluster, although it doesn't look as pronounced as it actually is because of the smoothing applied by our monitoring (c.f. T246902)
This pattern seems to have began in mid-September, although it's difficult to point to exactly when. Both WikipediaApp/6.7.1.1768 and WikipediaApp/6.7.0.1757 seem to exhibit this behavior.
Can we do something to decrease the burstiness? I'm guessing these are background pre-fetches to speed up opening the app later -- perhaps we can randomly smear them across the hour?








