A sizing is an approximation of the hardware resources required to support a specific software implementation, in this case Openbravo. This document sets main foundations towards sizing the hardware required to run Openbravo.
Openbravo has experience managing internal product installations on the basic instance types provided by Amazon EC2: m1.small, c1.medium and m1.large. We know the results that these instances can provide us, both in terms of performance and scalability.
At the same time Openbravo embraces experience of our customers running product on physical hardware and also using virtualization.
In addition to this Openbravo does performance tests for particular product usage scenarios.
These three inputs has allowed us to write a table comparing the hardware resources needed to support particular number of concurrent users.
Table is available here.
The table has the following columns:
- Topology: it can be either Single (one instance for the database and the application server) or Dual (two instances; one for the database server and another one for the application server).
- EC2 instance types: the type of the Amazon EC2 instance used as a reference. See the complete instance type list for a detailed description of each of them.
- Database: it can be either Oracle (SE - 10g, 11g) or PostgreSQL (8.3.x, 8.4.x).
- Optimal concurrent users (recommended value to use): optimal number of concurrent users using Openbravo. We consider that the performance is high under these conditions.
- Bandwidth: upstream speed (in Mbps = Megabits/second) required to cope with the required number of users.
- Hardware equivalence: an estimation of the real hardware equivalence of the estimated Amazon EC2 instance. In terms of the CPU, physical RAM and hard disk speed. Even if the hard drive capacity is not specified, it should always be higher than 100GB.
Important Sizing Notes
- This data has been estimated taking averaged information from sources mentioned in Introduction into account. Openbravo strongly recommends to test customer installations before going live. The proposed approach is to do manual load testing: when Openbravo is installed, configured and adjusted for the customer, so ready to go, - just do a test run with all customer users emulating normal day-to-day operations and observe the performance (taking notes about users feedback and monitoring main server parameters: CPU load, memory usage).
- Amazon EC2 deployment option is a recommended one:
- It is a natural environment to unleash full power of a web based system
- It allows to scale configuration up and down with ease (in a matter of minutes) and without loosing any investments (EC2 price is hourly based). No need to invest too much time on testing, it might be cheaper to save this effort and reinvest it when needed on another Amazon machine. Similar to Openbravo approach start small and grow as the instance and so its requirements grow.
- For "on premise" installations it is recommended to be more conservative and apply a security factor (looking at the next level hardware configurations or more CPU speed, more RAM and the faster disk) so that we all can be more confident that the hardware will be able to cope with the requirements.