You can optimize the performance of your Portworx volumes by matching the type of workload you’re running with a suitable IO profile. IO profiles change the how a Portworx volume interacts with the underlying storage disks to improve traffic for different workloads.
Understand the different IO profiles
Portworx currently features the following IO profiles:
- db (deprecated)
- sequential (deprecated)
The auto profile
If you don’t provide an IO profile, Portworx will default to
auto. This profile automatically applies an IO profile that based on configuration details it sees, and switches between
db_remote. Portworx chooses
db_remote when a volume’s replication factor is greater than or equal to 2, otherwise, it defaults to
The db profile (deprecated)
Databases typically result in a large number of flush operations on the disk. Because a flush forces Portworx to wait until the data is synched on the disk, it can slow down traffic. When the
db profile is active, Portworx batches flush operations for a quicker write response time.
- Legacy volumes will still show up as having db profile but internally they will be treated as auto profile volumes.
The db_remote profile
This implements a write-back flush coalescing algorithm. This algorithm attempts to coalesce multiple
syncs that occur within a 100ms window into a single sync. Coalesced syncs are acknowledged only after copying to the page cache on all replicas. In order to do this, the algorithm requires a minimum replication (HA factor) of 2. This mode assumes all replicas do not fail (kernel panic or power loss) simultaneously in a 100 ms window.
- If there are not enough nodes online, Portworx will automatically disable this algorithm.
db_remoteprofile only applies if you have a repl count of 2 or more.
The sequential profile (deprecated)
This profile optimizes the read-ahead algorithm for sequential workloads, such as backup operations.
- Legacy volumes will still show up as having sequential profile but internally they will be treated as auto profile volumes.
The none profile
This profile indicates that no io-profile optimizations are being done for the volume.
You can configure IO profiles through Kubernetes specs or at the Portworx level, depending on your needs and what operator you’re running with.