In T244340 we discussed about introducing an onhost memcached in order to further speed up our cache fetches.
In this test we will install memcached on mwdebug1001 on localhost:1120 and add and tell mcrouter to use it using the WarmupRoute. Additionally we will add a prometheus exporter.
Functionality test:
Servers: mwdebug1001 (with onhost memcached), & mwdebug1002
Clients: mwdebug2001, mwbug2001
We will run the same subset of URLs against both servers
Performance testing in production:
Manually install a mcrouter config on mw2271 (appserver) and use the following config:
<snip> "onhost": { "servers": [ "127.0.0.1:11210:ascii:plain" ] } <snip> { "aliases": [ "/codfw/mw/" ], "route": { "type": "OperationSelectorRoute", "operation_policies": { "get": { "type": "WarmUpRoute", "cold": "PoolRoute|onhost", "warm": { "failover": "PoolRoute|gutter", "failover_errors": [ "tko" ], "failover_exptime": 600, "normal": "PoolRoute|codfw", "type": "FailoverWithExptimeRoute" }, "exptime": 10 } }, "default_policy": { "failover": "PoolRoute|gutter", "failover_errors": [ "tko" ], "failover_exptime": 600, "normal": "PoolRoute|codfw", "type": "FailoverWithExptimeRoute" } } },
In other words:
- All GETs (but not /*/mw-wan) are first looked up in the onhost memcached (cold) and if not found are fetched from our memcached cluster (warm) and are added (ADD) back in the onhost memcached with a max TTL of 10.
- All other commands are routed to the memcached cluster or the gutter pool
dashboard: https://grafana.wikimedia.org/d/jI1SNdFMz/xxxx-effie-compare-mediawiki-hosts?orgId=1