The CIP Reporting application stack contains a relational database engine (MySQL) maintained by Oracle. The most important considerations for virtualizing a relational database engine are memory and disk IO. Allocating sufficient memory and having good disk IO performance is critical to system performance.
Database engines try to minimize disk IO as it is the slowest typical IO operation. This is accomplished by doing as much in memory as possible. Unlike typical software systems database engines allocate memory once at system start and work within that block of memory. This enabled the administrator to grant the database a block of physical memory by understanding the physical memory available in the server and allocating memory to the database within those constraints (while considering OS usage, etc).
Database performance degradation remains linear to data scale until a tipping point is reached where the amount of memory available is no longer sufficient for typical operations. The database engine will survive this by using more disk IO and less memory, which slows the system down considerably. This slowing of the system puts additional memory pressure on the database due to queries running slower thus backlogging queries. This creates a non-linear performance degredation that is very noticeable on production systems. Poor disk IO performance will further exacerbate the performance issues.
The calculations below are estimates that should ensure good system performance for the widest variety of configurations. However, it is possible and/or likely that you will have to increase these resources over time as your system expands. Use of Windows Server 2008 and higher ensures easy expansion of the storage volume and is highly recommended.