For most customers Mistral is deployed in production to find bottlenecks and detect applications with really bad I/O patterns. However, Mistral can also be integrated into continuous integration and test frameworks as a service. This allows users and developers to opt-in for more detailed I/O profiling data.
This procedure helps to raise quality standards and prevent I/O issues from making their way into production code. In particular, it helps to avoid issues such as hard coded paths that only work in the test environment, failed I/O calls that indicate a reliance on path variables and small I/O.
There are several ways to implement I/O profiling as a service. For example:
- Introduce a manual option that developers can use to get more info about dependencies.
- Carry out specific production tests with I/O profiling that simulate real-life workloads that should be checked for bad I/O patterns or a regression in performance.
- Carry out specific production tests with I/O profiling that are designed to maximise I/O to try to catch the perfect storm that can happen when systems are pushed to their limits.
We suggest starting with I/O patterns that are known to be bad and then adding regression test coverage as specific problems in your system are better understood.