I have a server that runs two different workloads:
- heavy, linear write (stores all network traffic as pcaps); and
- a transactional DB workload where IDS alerts are written to (frequent inserts) and then analysed (queries with limits, no massive reporting).
At the moment, the disk performance seems to be really poor. Specifically, the pcaps and alerts are written, but DB querying is unacceptably slow.
How to "partition" disk I/O in such way as to give priority to the DB workload while monitoring if any writes are "falling behind".
The server has quite a bit of ram for caching if it helps.
Unfortunately, system memory isn't used for write caching disk I/O.
These workloads are dissimilar enough that you should use separate physical disks.
That said, investigate ionice