Table of Contents |
---|
Disk space recommendations
Rationale
FIXEdge constantly generates big volumes of the logs. Long-term work could exhaust all disk space which would result in unstable application operation.
...
- FIXEdge binaries and configuration (~1 GB)
- FIX session logs with FIX messages
Depends on the maximum expected number of messages per day multiplied by the average size of messages. - Application logs (tens - hundreds of MB per day):
- application status and errors
- sessions statuses changes
- validation errors
- monitoring notes
- Reserve extra space for core files (a few GB)
...
Database consumes the similar size as sessions logs but it depends on content to be stored.
Info It is recommended to have the Database setup on another disk or on a different server to make your architecture less vulnerable to failures.
- Enabled debug or trace information could generate several times more logging (all above multiplied 3).
- Disabled archiving and cleaning up (all above multiplied 365 per year).
- Foreseen growth as per business operational plans.
In fact, MiFID II states that a financial institution should be prepared for handling messages twice bigger as the biggest one seen in the previous 6 months (all above-multiplied x 2).
Example
For the solution:
- 130 active sessions
- 160 000 000 messages pass through the system per day
- simple routing from one FIX session to another FIX session
Total space:
- Daily sessions logs take up 70 GB
- Application logs occupy 320 MB
- DB occupies 60 GB
Info | ||
---|---|---|
| ||
For this example, daily sessions and application logs occupy about 8-10 GB after archiving. |
Insufficient disk space mechanism
Info |
---|
The mechanism for handling insufficient disk space is available since FIXEdge C++ 6.14.0 release. |
The minimal amount of free disk space for the FIXEdge session start can be configured via Persistents.MinDiskSpace property in the engine.properties file. By default, the value of this property is set to 50 Mb.
On session creation or switching to backup/primary connection, FIXEdge C++ automatically checks free space on the disc disk and if its amount is less than the value of Persistents.MinDiskSpace property, then FIXEdge C++ does not start a new session or does not switch to backup/primary connection.
...
Code Block |
---|
There is no enough free disk space on "<log_path>" (<available_space> Mb) to create a FIX session. |
Also, FIXEdge C++ automatically checks free space on the disk while the session is running and once its amount is less than the value of Persistents.MinDiskSpace property, then FIXEdge C++ terminates the connection.
Note |
---|
Since FIXEdge C++ 6.14.0 release it is possible to specify different log directories for primary and backup connections of the session. In such a case FIXEdge C++ will check free disk space for each connection. |