The system is designed to work efficiently on modern hardware, however it is important to size the hardware appropriately, both for current and anticipated loading.
This section describes typical hardware configurations, however this is only general advice, and extremes of usage may require a different emphasis - for example if you are streaming video, or serving many large files.
It is normally sensible to plan a system with some room for expansion. It is notoriously difficult to estimate traffic before a system goes live, and even then sites can experience usage peaks many times greater than their average loading.
We therefore recommend ensuring that there is room for expansion within any server configuration:
- Leave a spare memory slot.
- Leave space for another hard drive.
This way you can quickly upgrade a server without having to move the system onto a new machine.
The following sections give further recommendations for single-server and clustered installations.
With a single server setup, the server is responsible both for the Presentation module that servers the pages to the users, but also for the background administrative tasks and database management.
This means that there will be several different subsystems all making demands on the system, so it is important to provide an adequate platform.
We strongly recommend a multiple-CPU server. This way the load can be more easily shared, and it is harder for one process to slow down the others.
It is essential that you install a generous amount of memory. All the processes will benefit enormously if they do not have to constantly swap their working data out to a page file, so the more memory you can provide the better.
It is impossible to provide a detailed recommendation on hard disk space, as it will be entirely dependent on the contents of your sites, however it is worth noting that the system provides easy mechanisms for sites to be duplicated, and as such data storage requirements can quickly escalate.
We recommend two routes forward for building resilient systems. If you are direct hosting on your own local, or directly controlled, equipment then that should should be a RAID array to guard against disk failure. Alternatively creating your neatComponents installation in Amazon AWS automatically provides you with commercial grade resilience and scalability.
neatComponents is a database management system (DMBS) for the underlying relational SQL database. neatComponents can be configured to use clusters of machines to support Large Sites and Very Large Sites for Enterprise use. See Enterprise Accelerator
The neatComponents system is based on installation management simplicity and the abstraction of SQL-query construction. It does not use a distributed database model because of the engineering issues that would create. See a discussion of the issues involved (reprint).