Server Architecture Overview
PhixFlow is built on a single Java-based architecture i.e. it is not made up of several products with different architectures bolted together. There are two main elements in the server architecture:
- PhixFlow Application Server - The PhixFlow application server is a Java-based application which runs within an Apache Tomcat container. PhixFlow supports installation on all the major hardware architectures and operating systems. Existing installations use Solaris, Linux and Windows based servers.
- Database Server - PhixFlow uses any major JDBC compliant database to store both configuration data and the results of analysis on data collected from other systems. Existing installations currently use either Oracle or Microsoft SQL Server.
Figure 1 shows the most typical deployment of PhixFlow in which the application server and database server run on separate machines, however, for small proof of concept installations a single server may be used to host both the application and database servers.
Figure 1 Dual Server High Level Architecture
Typical Server Sizes
The following are typical server sizes for small, medium and large installations. For large installations we recommend that you engage a PhixFlow consultant to verify requirements and analyse data volumes to be processed and retained within PhixFlow. Please note, that backup/recovery capacity is excluded in these sizing estimates.
| Server Size | ||
---|---|---|---|
Small | Medium | Large | |
Daily records | 10m | 70m | 200m |
Application Server | |||
CPU cores | 4 | 12 | 24 |
Memory | 16 GB | 32 GB | 64 GB |
Disk space1 | 50 GB | 100 GB | 200 GB |
Database Server | |||
CPU cores | 2 | 6 | 12 |
Memory | 4 GB | 8 GB | 16 GB |
Data disk space2 | 250 GB | 2 TB | 4 TB |
Redo/Undo space | 40 GB | 400 GB | 800 GB |
1 Note that the disk space on the applications server is sized assuming that there may be files placed on the server disk for PhixFlow to read. If no files are to be placed on the application server (e.g. PhixFlow will read files from an existing location) then only a small disk is required for the operating system and PhixFlow application software.
2 Note that these figures indicate the amount of database disk storage required which scales with the amount of raw and result data configured to be retained by PhixFlow. Some implementations with a high number of daily records but which only maintain problematic data may require less space than this.
Database Server Disk Configuration
For medium and large implementations the database should be configured for high performance throughput. In particular database performance is significantly affected by the way that the database server disks are configured. Organisations requiring this size of server will generally have their own database administrators who are familiar with this level of planning, however, for clarity the following shows recommendations when setting up a medium installation:
Disk Group 1 | 8 x 300 GB in RAID5 configuration (Used for Oracle Data Tablespace) Format the stripe with a block size that is optimal for data throughput. (typically 4Kb) |
Disk Group 2 | 4 x 146 GB in RAID 1+0 configuration (Used for Oracle Redo) Format the mirror with a block size of 512 bytes. 2 redo groups multiplexed |
Disk Group 3 | 2 * 146 GB in RAID 1+0 configuration (Used for Oracle Undo) Format the mirror with 4Kb block size |
Linux: limit on open file descriptors
On linux a limit can be imposed on the number of open file descriptors a user can have. You can see the current limit by running the ulimit command:
> ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 3889 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 3889 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
The limit is given by the setting open files, in the above example 1,024. This is a common default on linux.
Ensure that the user that will run tomcat has a limit of at least 50,000, or is unlimited. Although PhixFlow will generally open only a fraction of 50,000 file descriptors, it is best to ensure that this limit can never be reached, since otherwise numerous low level errors can occur.