Tune performance in GKE
In its default configuration, Portworx attempts to provide good performance across a wide range of situations. However, you can improve your storage performance on your environment by configuring a number of settings and leveraging features Portworx offers. To get the most out of Portworx, follow the guidance provided in this article.
Configure the network data interface
You can provide Portworx with a specific network interface for data when you generate the spec as part of your installation. Portworx by Pure Storage recommends a network interface with a bandwidth of at least 10Gb/s and network latency below 5 milliseconds. If multiple NICs are present on the host, present a bonded interface to Portworx.
If you've already installed Portworx, you can update the network.dataInterface
value of the install spec and reapply it.
Enable hyperconvergence
Use Stork to ensure your Pod is running on the same node in which the data resides.
Configure your cluster topology
When configured to be aware of your cluster topology, Portworx places replicas for high availability. Configure your cluster topology.
Define a VolumePlacementStrategy
StatefulSets, distributed NoSQL databases, such as Cassandra, require PVCs to be distributed across the cluster. Use Affinity/Anti Affinity rules along with topology labels to define relationships between PVCs.
Define a VolumePlacementStrategy using affinity and anti-affinity labels to distribute volumes.
Adjust storage classes
To improve performance, adjust storage class parameters in the following ways:
-
Prioritize volume traffic by setting the
priority_io:
field tohigh
-
Choose the replication factor best suited to your high availability needs
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
name: px-storage-class
provisioner: pxd.portworx.com
allowVolumeExpansion: true
parameters:
repl: "2"
priority_io: "high"
nodiscard: "true"