-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial update. Still a work in progress
Still working on this, wanted to get the basics up
- Loading branch information
Showing
5 changed files
with
121 additions
and
51 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Theory of Operations | ||
|
||
## This document gives guidance on how to use px-bench and | ||
## the reasoning behind its architecture and default settings. | ||
|
||
PLACEHOLDER |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
###### | ||
# AWS Example. Valid for EKS or other K8s orchestrators hosted in AWS. | ||
# | ||
# See https://docs.aws.amazon.com/eks/latest/userguide/storage.html for links to various drivers available in EKS. | ||
# | ||
# EBS: Since Portworx would consume EBS volumes as Portworx Clouddrives, attempting "apples to apples" comparisons | ||
# between AWS native storage and Portworx should be done with EBS volumes that are the same size as the | ||
# Portworx clouddrive used for the pool. | ||
# Installation of the EBS CSI is documented here: https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html | ||
# | ||
# The configmap below (see the Iteration Control section near the bottom) references an EBS storageclass | ||
# called "ebs-sc", update it to your desired AWS storageclass. This example will benchmark "ebs-sc" vs. | ||
# the Portworx storageclass "px-csi-db" | ||
# | ||
--- | ||
apiVersion: v1 | ||
kind: ConfigMap | ||
metadata: | ||
name: env | ||
###### | ||
# Options that control the underlying fio benchmark utility. These equate to the same-named option in fio | ||
# | ||
data: | ||
file_size: "10GiB" # size of region of IO testing, will also be the size of the file | ||
pvc_size: "150Gi" # If the storageclass is backed by a larger disk from infrastructure, | ||
# such as a Portworx pool, then pvc_size should be the same size as | ||
# the backing storage if it's desired to be testing the same | ||
# size and performance storage (See TheoryOfOps.md) | ||
runtime: "20" # runtime in seconds. Start low the first time to ensure everything | ||
# is working as planned. Then increase to desired runtime. | ||
iodepth: "128" | ||
rwmixread: "60" # only used for readwrite and randrw workloads | ||
rwmixwrite: "40" # should be 100 - rwmixread | ||
ramp_time: "5" # ramp time per test. As with runtime, keep low for quick tests | ||
# and then increase to desired ramp_time for later tests | ||
|
||
# Less commonly changed fio options | ||
ioengine: "libaio" | ||
direct: "1" | ||
fsync_on_close: "1" | ||
numjobs: "1" | ||
group_reporting: "1" | ||
|
||
###### | ||
# px-bench specific options. These are not fio options | ||
mixed_workloads: "rw readwrite randrw" # rw is a synonym for readwrite | ||
|
||
###### | ||
# Iteration Control: Each variable will be looped over to create the jobs to be run. | ||
# Do not change the variable name. The variable must consist of one or more space | ||
# delimited strings that are legal values for fio to use in a job file. | ||
# | ||
# For now, the only supported variables here are blocksize and randwrite | ||
# | ||
# Example: If you have 2 blocksize values, and 3 randwrite values, this will result in 6 jobfiles. | ||
|
||
blocksize_list: "4k 16k 256k" # We have not tested fio's support for different values for read and write ("bs=8k,32k") | ||
readwrite_list: "read write readwrite" # valid values are read, write, randread, readwrite (or rw), randrw. | ||
storageclass_list: "ebs-sc px-csi-db" # Existing storageclasses for use by the benchmarks | ||
warmup_blocksize: 256k | ||
warmup_loops: "1" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
--- | ||
apiVersion: v1 | ||
kind: ConfigMap | ||
metadata: | ||
name: env | ||
|
||
###### | ||
# Options that control the underlying fio benchmark utility. These equate to the same-named option in fio | ||
# | ||
data: | ||
file_size: "10GiB" # size of region of IO testing, will also be the size of the file | ||
pvc_size: "50Gi" # If the storageclass is backed by a larger disk from infrastructure, | ||
# such as a Portworx pool, then pvc_size should be the same size as | ||
# the backing storage if it's desired to be testing the same | ||
# size and performance storage (See TheoryOfOps.md) | ||
runtime: "20" # runtime in seconds. Start low the first time to ensure everything | ||
# is working as planned. Then increase to desired runtime. | ||
iodepth: "128" | ||
rwmixread: "60" # only used for readwrite and randrw workloads | ||
rwmixwrite: "40" # should be 100 - rwmixread | ||
ramp_time: "5" # ramp time per test. As with runtime, keep low for quick tests | ||
# and then increase to desired ramp_time for later tests | ||
|
||
# Less commonly changed fio options | ||
ioengine: "libaio" | ||
direct: "1" | ||
fsync_on_close: "1" | ||
numjobs: "1" | ||
group_reporting: "1" | ||
|
||
###### | ||
# px-bench specific options. These are not fio options | ||
mixed_workloads: "rw readwrite randrw" # rw is a synonym for readwrite | ||
|
||
###### | ||
# Iteration Control: Each variable will be looped over to create the jobs to be run. | ||
# Do not change the variable name. The variable must consist of one or more space | ||
# delimited strings that are legal values for fio to use in a job file. | ||
# | ||
# For now, the only supported variables here are blocksize and randwrite | ||
# | ||
# Example: If you have 2 blocksize values, and 3 randwrite values, this will result in 6 jobfiles. | ||
|
||
blocksize_list: "4k 16k 256k" # We have not tested fio's support for different values for read and write ("bs=8k,32k") | ||
readwrite_list: "read write readwrite" # valid values are read, write, randread, readwrite (or rw), randrw. | ||
storageclass_list: "storageclass-1 storageclass-2" # Existing storageclasses for use by the benchmarks | ||
warmup_blocksize: 256k | ||
warmup_loops: "1" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters