[QA] Jenkins slaves now use tmpfs for MySQL storage

Krinkle krinklemail at gmail.com
Tue Apr 21 17:00:14 UTC 2015


Hey all,

Over the past months our main MediaWiki PHPUnit run slowed down a lot. Some of that is attributed to our unit tests using too much database integration [1]. Another significant portion is attributed to the switch to MySQL. The overhead was especially significant for Precise instances and PHP Zend.

While MySQL is heavier than SQLite, it generally does perform better at scale, caching, and with concurrent requests from the web. However we lost a lot compared to SQLite because our SQLite wasn't on disk but in a tmpfs mount.

Last week we worked on adding a tmpfs mount to our Jenkins slaves and configuring MySQL to store its data there instead.

Our average build time went from 20 minutes (zend) and 8 minutes (hhvm) to 9 minutes and 4 minutes!

For the impact on the average build time trend graphs, see https://phabricator.wikimedia.org/T96230#1215473

There's still room for more optimisations, which are tracked at https://phabricator.wikimedia.org/T96249.

— Krinkle

[1] https://phabricator.wikimedia.org/T93556


More information about the QA mailing list