PageSourceSearch

https://portworx-documentation-staging.netlify.app/assets/js/4aea9193.526bbb13.js

js portworx-documentation-staging.netlify.app collected 2026-10-03 11:19:24 UTC 7,137 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkpxdocs_docusaurus=self.webpackChunkpxdocs_docusaurus||[]).push([[10213],{3905:(e,r,t)=>{t.d(r,{Zo:()=>u,kt:()=>m});var o=t(67294);function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){n(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function s(e,r){if(null==e)return{};var t,o,n=function(e,r){if(null==e)return{};var t,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)t=a[o],r.indexOf(t)>=0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)t=a[o],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var p=o.createContext({}),l=function(e){var r=o.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},u=function(e){var r=l(e.components);return o.createElement(p.Provider,{value:r},e.children)},c={inlineCode:"code",wrapper:function(e){var r=e.children;return o.createElement(o.Fragment,{},r)}},f=o.forwardRef((function(e,r){var t=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),f=l(t),m=n,d=f["".concat(p,".").concat(m)]||f[m]||c[m]||a;return t?o.createElement(d,i(i({ref:r},u),{},{components:t})):o.createElement(d,i({ref:r},u))}));function m(e,r){var t=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var a=t.length,i=new Array(a);i[0]=f;var s={};for(var p in r)hasOwnProperty.call(r,p)&&(s[p]=r[p]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var l=2;l<a;l++)i[l]=t[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,t)}f.displayName="MDXCreateElement"},14888:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var o=t(87462),n=(t(67294),t(3905));const a={title:"Configure IO profiles for Portworx volumes on Kubernetes",sidebar_label:"Configure IO profiles",keywords:["stork, kubernetes, k8s"],description:"Learn how to apply IO profiles to Portworx volumes on Kubernetes.",aliases:["/docs/portworx-enterprise/operations/operate-kubernetes/storage-operations/io-profile-in-k8s/"],sidebar_position:800},i=void 0,s={unversionedId:"operations/operate-kubernetes/storage-operations/io-profile-in-k8s",id:"operations/operate-kubernetes/storage-operations/io-profile-in-k8s",title:"Configure IO profiles for Portworx volumes on Kubernetes",description:"Learn how to apply IO profiles to Portworx volumes on Kubernetes.",source:"@site/docs/portworx-enterprise/operations/operate-kubernetes/storage-operations/io-profile-in-k8s.md",sourceDirName:"operations/operate-kubernetes/storage-operations",slug:"/operations/operate-kubernetes/storage-operations/io-profile-in-k8s",permalink:"/portworx-enterprise/operations/operate-kubernetes/storage-operations/io-profile-in-k8s",draft:!1,tags:[],version:"current",lastUpdatedAt:1694711985,formattedLastUpdatedAt:"Sep 14, 2023",sidebarPosition:800,frontMatter:{title:"Configure IO profiles for Portworx volumes on Kubernetes",sidebar_label:"Configure IO profiles",keywords:["stork, kubernetes, k8s"],description:"Learn how to apply IO profiles to Portworx volumes on Kubernetes.",aliases:["/docs/portworx-enterprise/operations/operate-kubernetes/storage-operations/io-profile-in-k8s/"],sidebar_position:800},sidebar:"pxEnterpriseSidebar",previous:{title:"Using Velero with Portworx",permalink:"/portworx-enterprise/operations/operate-kubernetes/storage-operations/velero"},next:{title:"Kubernetes Storage 101",permalink:"/portworx-enterprise/operations/operate-kubernetes/storage-operations/kubernetes-storage-101/"}},p={},l=[{value:"Manually configure IO profiles",id:"manually-configure-io-profiles",level:2},{value:"Related topics",id:"related-topics",level:2}],u={toc:l};
1function c(e){let{components:r,...t}=e;return(0,n.kt)("wrapper",(0,o.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Portworx volumes on Kubernetes 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 ",(0,n.kt)("a",{parentName:"p",href:"/portworx-enterprise/concepts/io-profiles"},"IO profiles")," concept section. "),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"By default, Portworx uses an ",(0,n.kt)("inlineCode",{parentName:"li"},"auto")," IO profile, which automatically applies an IO profile that is most appropriate for the data patterns it sees."),(0,n.kt)("li",{parentName:"ul"},"You can also configure these profiles manually using ",(0,n.kt)("inlineCode",{parentName:"li"},"pxctl"),". For information about performance tuning using ",(0,n.kt)("inlineCode",{parentName:"li"},"pxctl"),", visit the ",(0,n.kt)("a",{parentName:"li",href:"/portworx-enterprise/operations/operate-other/performance-and-tuning/tuning"},"Performance tuning")," section of the documentation."))),(0,n.kt)("h2",{id:"manually-configure-io-profiles"},"Manually configure IO profiles"),(0,n.kt)("p",null,"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:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Create and configure a storageClass as desired. Add the ",(0,n.kt)("inlineCode",{parentName:"p"},"parameters.io_profile")," field with the IO profile you want to specify:"),(0,n.kt)("pre",{parentName:"li"},(0,n.kt)("code",{parentName:"pre",className:"language-yaml"},'kind: StorageClass\napiVersion: storage.k8s.io/v1\nmetadata:\n  name: portworx-io-profile\nprovisioner: kubernetes.io/portworx-volume\nparameters:\nrepl: "2"\nio_profile: "db_remote"\n'))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In your PVCs, reference the storageClass you just created to apply your IO profile to volumes: "),(0,n.kt)("pre",{parentName:"li"},(0,n.kt)("code",{parentName:"pre",className:"language-yaml"},"kind: PersistentVolumeClaim\napiVersion: v1\nmetadata:\n  name: px-db-remote-pvc\n  annotations:\n    volume.beta.kubernetes.io/storage-class: portworx-io-profile\nspec:\n  accessModes:\n    - ReadWriteOnce\n  resources:\n    requests:\n      storage: 10Gi\n")))),(0,n.kt)("h2",{id:"related-topics"},"Related topics"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/portworx-enterprise/reference/performance-io-path"},"Performance optimization options in the IO path"))))}c.isMDXComponent=!0}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.