Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 both 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.

Please refer to Compatibility Guide and Upgrade Planning for infomation on supported databases and supported versions of versions Tomcat.

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.

 Image Removed

Figure 1 Dual Server High Level Architecture

This page gives some indicative sizings for the servers you will need to run PhixFlow. The exact resource levels you need will depend on the details of your solution, how complex the calculations it has to perform, and how many concurrent users you need to handle. In many virtualised environments it is straightforward to change the level of CPU and memory (see Resizing servers for the server configruation changes you need to make after doing this). It is worth monitoring the performance of PhixFlow and the database to get the right balance of performance and cost.

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.

The indicative sizings are the same regardless of operating system (Windows or linux) and the chosen database.


 

Server Size

Small

Medium

Large

Daily records

1m

10m

70m

200m100m

Application Server

CPU cores

4

128

2416

Memory

16 GB

32 GB

64 GB

Disk space1

50 GB

100 GB

200 GB

Database Server

CPU cores

2

64

128

Memory

4 16 GB

8 32 GB

16 64 GB

Data disk space2

250 GB

2 TB

4 TB

Redo/Undo space

40 GB

400 GB

800 GB

Notes:

...

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:

Code Block
languagetext
> 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.

...

- 500 GB

1 - 2 TB

4 -8 TB