Spent half an hour sketching up Cognos process architecture — what goes where and when. Will refer to this drawing in my future hardware planning assigments
Comments:
- You can separate all components (Gateway, Application Server, Content Manager) into separate machines
- There can be only one Content Manager service active in cluster at a time
- There may be multiple gateway servers, as I was corrected. What I originally meant was close to something like ‘if you give user a cognos url, that url points to one specific gateway server’, so you have to do clustered web-server and application server installation for gateway fault-tolerance.
- There may be multiple active dispatchers in cluster
- Each dispatcher consists of multiple services, that may be turned off or on for a specific server in cluster.
- Most dispatcher services are processed in application server (Tomcat by default and almost any other of your choice), which can use either 32 or 64 bit java machine
- Reports (interactive and batch) are processed by a special process ‘BIBus’, which is a C++ 32 bit application (hence the 2Gb cap for each process and CCLOutOfMemory errors). Number of such processes depends on Dispatcher service settings, load on each process depends on affinity connection settings.
- BIBus processes generate temporary files if they require significant amount of local processing (hence UDA files problems)
- Each BIBus process can occupy up to 2Gb RAM and 1 CPU Core
Basic rules for capacity planning I use (your mileage may vary greatly, it depends on reports design, size and calculation complexity in first hand):
- Estimate number of concurrent users
- There should be a BIBus process for each couple concurrent users
- There should be at least 1 or 2 cores for all other dispatcher services
- There should be at least 1-2 Gb of RAM for Application Server
- There should be at least 2-3 Gb for Operation System (it depends on operation system greatly)
- There should be a separate database instance for Content Store and Audit database
For example, if we’re talking about 20 concurrent users (mind that it’s 2000 named users by basic IBM metrics), we’ll need:
- 10 BIBus processes, each will take 1 Core and 2 GB Ram
- 2 cores and 2 Gb ram for dispatcher and application server (for each dispatcher server, if there going to be a cluster environment)
- 3 Gb for operating system (for each dispatcher server, if there going to be a cluster environment)
And it gives us 16 cores, 32 Gb RAM for a single server.
Suggested reading:
– Architecture and Deployment Guide )
– these threads on DeveloperWorks, where Phil W. describes all this way better than I’ll ever do:
http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14233120