Warning: this is still a stub page

Startup

Application startup will use a lot more power than when it's actively running with most requests served from cache. For example, this confluence page just took a moment to load, but it sometimes takes multiple minutes to start up the Confluence instance on system boot. 

When you bring up or failover a cluster, this will always be taking at least as long as a normal boot. If the failover was caused by a disgraceful shutdown for unexpected issues (a real failover), the application will most probably have to check everything is in order, which will add some more time. A very extreme example would be using an ext3 filesystem in a cluster as it normally mounts within 1-2 seconds, but will take hours to mount in case it runs into a fsck due to check counts or an unclean state.

So this means first of all you have to find about three things:

  1. How long does it take to launch the application from a cold boot?
  2. How long does it take when it's recovering from some issues?
  3. How much data is stored in your application?
  4. How do the recovery time and data amount relate?

A somewhat useful application will have defined and quick consistency checks, another one will have to run full scans of its data. Yet another one will not even notice that it has crashed in the middle of a transaction and not roll it back or forth :)

IO Footprint

  • Total amount of diskspace related to the application
  • Amount of non-data stuff that makes up the application (binaries, libraries, etc)
  • Are the data and binaries saved on different disks (are these disks on different physical disks in the backend?)
  • How many MB will be read/written during startup?
  • How many IO Requests to bring the application up?
  • How long does it take to read that data?
  • Are there any database rollbacks etc?

CPU Usage

  • CPU Peak usage (load)
  • Number of CPUs at full load
  • How long does it take till the initial spike is over

Tools:

  • htop
  • iotop