Skip to main content
Version: 3.3

Configure IO profiles for Portworx volumes on AKS

Portworx volumes on your cluster can use different IO profiles to optimize the Portworx volumes' performance for specific use-cases. For information about what IO profiles are, as well as the different profiles available, see the IO profiles concept section.

note

By default, Portworx uses an auto IO profile, which automatically applies an IO profile that is most appropriate for the data patterns it sees.

Manually configure IO profiles

You can direct a group of volumes to use a specific IO profile by defining it at the storageClass level and referencing that storageClass in your PVCs:

  1. Create and configure a storageClass as desired. Add the parameters.io_profile field with the IO profile you want to specify:

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
    name: portworx-io-profile
    provisioner: pxd.portworx.com
    parameters:
    repl: "2"
    io_profile: "db_remote"
    allowVolumeExpansion: true
  2. In your PVCs, reference the storageClass you just created to apply your IO profile to volumes:

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
    name: px-db-remote-pvc
    annotations:
    volume.beta.kubernetes.io/storage-class: portworx-io-profile
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
    requests:
    storage: 10Gi

Configure IO profile using pxctl

Portworx optimizes performance for specific application access patterns using IO profiles. You can set these IO profiles by using one of the following options:

Option 1: Change the default IO profile for the cluster

Change the default IO profile for the cluster without changing the io_profile annotation using the cluster option --default-io-profile. The same profile will be inherited by all the volumes by default if they do not have io_profile StorageClass annotation.

For example, using the following command will assign the none IO profile to any volumes created within the cluster that do not have the io_profile StorageClass annotation:

pxctl cluster options update --default-io-profile none

Verify the profile set using the following command:

pxctl cluster options list | grep -i profile
Default IO Profile                                      : none

Option 2: Set IO profile of new volume

Set io_profile option while creating the volume. Check the command usage and available options.

pxctl volume create --help | grep profile
--io_profile string  IO Profile (Valid Values: [db_remote auto none journal auto_journal use_cluster_default]) (default "use_cluster_default")

For example, using the following command will assign journal io_profile to the demovolume volume.

pxctl volume create --size=10 --repl=3 --io_profile=journal demovolume

Option 3: Change IO profile of existing volume

Change the IO profile of an existing volume using the following command. Check the command usage and available options.

pxctl volume update --help | grep profile
--io_profile string  IO Profile (Valid Values: [db_remote auto none journal auto_journal use_cluster_default]) (default "use_cluster_default")