Skip to content

Infrastructure performance

shaun0x00 edited this page Oct 30, 2014 · 1 revision

Table of Contents

Infrastructure performance monitoring

TODO

Infrastructure performance assessment

Objectives

  • test performance of the infrastructure (software and hardware)
  • optimize setup (resource allocations, software tuning)
  • evaluate limits (maximum web visitors, maximum number of simultaneous games) and performance metrics (latency) to evaluate the infrastructure cost of a player
  • locate under performing code and find remediation

Test entry points and coverage

http

  • website - simulate typical visitors and players
  • SOAP services
  • content downloads??? Discuss: do we make this part of the test?

lobby

  • interaction with zk infrastructure through lobby (nightwatch, springie)
  • uberserver??? Discuss: do we make uberserver part of the test?
NOT covered: ZKLobby client. IMO, as long as players do not complain, it is fast enough.

Requirements

  • server(s)
Preferably, client machines would be close (network) to server and as idle as possible. But anything can be used to generate load on the server, if we don't need too precise latency measurements.
  • client machine(s)
Preferably, zk server(s) should be tested when not in use. Not because we need precise measurements, but because we must be free to crash the server and alter database.
  • informations
The goal is to simulate typical players and users. So we need to know basic facts about players and website visit patterns. Current website logfile contains the required information. If SOAP service calls are not listed in the logfile, we must make sure we do not forget about it.

Server setup and data

  • separate uberserver (ideally co-located with the real one, so latency matches)
  • zk server should have all required software (as in, ready to operate and accept players)
  • it should be possible to deploy new builds of zk-infra easily to test performance tweaks
  • it must be easy to test with different datasets
    • an empty database (as empty as it makes sense)
    • a copy of the current database
    • a much larger dataset, that realistically matches targeted number of players (that dataset may either be "generated" or produced through simulated user activity)

Client setup and data

  • tools to simulate http interactions, various options:
  • tools to simulate lobby interactions:
    • custom basic tcp client?
    • custom lobby client?
    • existing lobby bot?
    • puppetize an existing lobby?
    • maybe expect can still be useful

Schedule

Best case: we can manage to benchmark during a server migration, we can take 1 or 2 weeks to benchmark and optimize the platform *before* the users come in.

Tasks

  • Gather data regarding website visitor pattern
  • Setup server, prepare datasets
  • Write client tools, prepare benchmark scripts
  • Discuss monitoring of server, during and after the benchmark