-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding Renaissance Benchmark #51
Draft
Prakalp23
wants to merge
77
commits into
kruize:master
Choose a base branch
from
Prakalp23:renaissance
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
77 commits
Select commit
Hold shift + click to select a range
e1260ac
Create getmetrics-promql.sh
Prakalp23 fa68aab
Create getmetrics-promql.sh
Prakalp23 f9fc6f7
Delete getmetrics-promql.sh
Prakalp23 5d80c20
Rename getmetrics-promql.sh to getmetrics1-promql.sh
Prakalp23 115d4f7
Update getmetrics1-promql.sh
Prakalp23 0e41f94
Update getmetrics1-promql.sh
Prakalp23 d92ad51
Create renaissance-run.sh
Prakalp23 8ef4f37
Create renaissance-common.sh
Prakalp23 d773071
Update renaissance-run.sh
Prakalp23 eb1b05d
Create renaissance-cleanup.sh
Prakalp23 cc23294
Update renaissance-run.sh
Prakalp23 708638d
Create parsemetrics-wrk.sh
Prakalp23 754adae
Create common.sh
Prakalp23 5a47cf8
Create deploy.sh
Prakalp23 4ebd7d0
Update renaissance-run.sh
Prakalp23 7f3572c
Update renaissance-run.sh
Prakalp23 c52b5e0
Rename getmetrics1-promql.sh to getmetrics-promql.sh
Prakalp23 2bf007b
Create test
Prakalp23 22c7b33
Rename renaissance/common.sh to renaissance/scripts/common.sh
Prakalp23 02a68e8
Rename renaissance/deploy.sh to renaissance/scripts/deploy.sh
Prakalp23 8d44801
Update deploy.sh
Prakalp23 1d23b76
Rename renaissance/getmetrics-promql.sh to renaissance/scripts/getmet…
Prakalp23 1051fe3
Rename renaissance/parsemetrics-wrk.sh to renaissance/scripts/parseme…
Prakalp23 494b5b2
Rename renaissance/renaissance-cleanup.sh to renaissance/scripts/rena…
Prakalp23 243bef0
Rename renaissance/renaissance-common.sh to renaissance/scripts/renai…
Prakalp23 2ff505c
Rename renaissance/renaissance-run.sh to renaissance/scripts/renaissa…
Prakalp23 606349e
Create deployement.yaml
Prakalp23 b3686fd
Create config.yaml
Prakalp23 abc34c5
Delete test
Prakalp23 5014f5e
Update deploy.sh
Prakalp23 604ffd7
Update and rename deploy.sh to renaissance-deploy.sh
Prakalp23 c5da69a
Update renaissance-common.sh
Prakalp23 175bc4b
Update getmetrics-promql.sh
Prakalp23 eb0ec80
Update renaissance-run.sh
Prakalp23 db8c79d
Update renaissance-run.sh
Prakalp23 5642e99
Update renaissance-deploy.sh
Prakalp23 b52f955
Update renaissance-cleanup.sh
Prakalp23 02549fb
Update and rename deployement.yaml to renaissance.yaml
Prakalp23 5286e63
Create Dockerfile
Prakalp23 c61e0ff
Rename renaissance/manifests/config.yaml to renaissance/docker/config…
Prakalp23 d4b0955
Create service-monitor.yaml
Prakalp23 f1d4351
fixing issues
Prakalp23 b399d66
Rename renaissance/scripts/common.sh to renaissance/scripts/utils/com…
Prakalp23 30cb78d
Create parsemetrics-promql.sh
Prakalp23 17913f0
Update Dockerfile
Prakalp23 035f54e
Create readme
Prakalp23 a398e7f
Fixed some prometheus queries and errors
Prakalp23 efaa8f0
fixed issues
Prakalp23 add72fc
fixed issues
Prakalp23 6f2cf62
commiting changes made to parsemetrics-promql.sh
Prakalp23 da9fd9b
latest changes
Prakalp23 b90987c
changed few names in the script
Prakalp23 7df183c
errors fixed
Prakalp23 023ea32
changes made to parsemetrics-promql.sh
Prakalp23 aeba996
changes made to script
Prakalp23 6ea2a63
changes to scripts
d5246a0
changes to script
Prakalp23 3797bc8
changes to remove [] from results
Prakalp23 eb58112
fixed json format type
Prakalp23 9698bd0
Made changes to get the results in specific JSON format
Prakalp23 0e5ec5b
Updating the indentation of the scripts
Prakalp23 b96b527
Some more changes to the outline of the scripts
Prakalp23 df85794
Made changes to the copyright year in the scripts
Prakalp23 b7db1b6
Made the required changes to scripts
Prakalp23 3c1074d
Made changes to parsedatalog and parsememlog
Prakalp23 35dcef3
Made changes to the performance scripts
Prakalp23 86497f1
fixed the output format
Prakalp23 c718559
Add files via upload
Prakalp23 8815db4
Update Dockerfile
Prakalp23 a4d6982
Update Dockerfile
Prakalp23 e1ef0dc
Update Dockerfile
Prakalp23 3bee221
Update Dockerfile
Prakalp23 b02d9f3
Delete renaissance-cleanup.sh
Prakalp23 e608f62
Delete renaissance-common.sh
Prakalp23 ac914a4
Delete renaissance-deploy.sh
Prakalp23 a7b80e1
Add files via upload
Prakalp23 efe9258
Delete readme
Prakalp23 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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,58 @@ | ||
|
||
# About The Benchmark | ||
The Renaissance Benchmark Suite aggregates common modern JVM workloads, including, but not limited to, Big Data, machine-learning, and functional programming. The suite is intended to be used to optimize just-in-time compilers, interpreters, GCs, and for tools such as profilers, debuggers, or static analyzers, and even different hardware. It is intended to be an open-source, collaborative project, in which the community can propose and improve benchmark workloads. | ||
|
||
More information about this benchmark can be found on [Renaissance](https://github.com/renaissance-benchmarks/renaissance) | ||
# Prerequisites | ||
To generate the results from the Renaissance Benchmark,we need to: | ||
|
||
- Install minikube(kubernetes cluster),which can be done from [Minikube](https://minikube.sigs.k8s.io/docs/start/) and then install prometheus on the minikube cluster. This can be done by following the steps in the [Autotune Installation](https://github.com/kruize/autotune/blob/master/docs/autotune_install.md). | ||
|
||
You,also need to install a driver of your choice for running renaissance onto your local system | ||
|
||
Download a driver (docker or podman) | ||
|
||
[Docker](https://docs.docker.com/engine/install/) | ||
|
||
[Podman](https://podman.io/getting-started/installation) | ||
|
||
# How To Run This Benchmark | ||
|
||
To run the benchmark on kubernetes cluster to collect performance metrics | ||
|
||
./scripts/perf/renaissance-run.sh --clustertype=CLUSTER_TYPE -s BENCHMARK_SERVER -e RESULTS_DIR_PATH [-w WARMUPS] [-m MEASURES] [-i TOTAL_INST] [--iter=TOTAL_ITR] [-r= set redeploy to true] [-n NAMESPACE] [-g RENAISSANCE_IMAGE] [--cpureq=CPU_REQ] [--memreq=MEM_REQ] [--cpulim=CPU_LIM] [--memlim=MEM_LIM] [-b BENCHMARKS] [-R REPETITIONS] [-d DURATION] " | ||
|
||
- **CLUSTER_TYPE**: Type of cluster. Supports openshift , minikube. | ||
- **BENCHMARK_SERVER**: Name of the cluster you are using | ||
- **RESULTS_DIR_PATH**: Directory to store results | ||
- **DURATION**: Duration of each warmup and measurement run. | ||
- **WARMUPS**: No.of warmup runs. | ||
- **MEASURES**: No.of measurement runs. | ||
- **ITERATIONS**: No.of iterations. | ||
- **CPU_REQ**: CPU request | ||
- **MEM_REQ**: Memory request | ||
- **CPU_LIM**: CPU limit | ||
- **MEM_LIM**: Memory limit | ||
- **RENAISSANCE_IMAGE**:prakalp23/renaissance1041:latest | ||
- **BENCHMARKS**:Choice of a microbenchmark from Renaissance [Microbenchmarks](https://github.com/renaissance-benchmarks/renaissance) | ||
|
||
Example:./renaissance-run.sh --clustertype=minikube -s localhost -e ./results -w 1 -m 1 -i 1 --iter=1 -r -n default --cpureq=1.5 --memreq=3152M --cpulim=1.5 --memlim=3152M -b "page-rank" -g prakalp23/renaissance1041:latest -d 60 | ||
|
||
# The Experiment Results | ||
|
||
The experiment results using the above scripts generates a csv file which contains the resource usage information for the Renaissance Benchmark can be found here | ||
|
||
[Renaissance Results](https://github.com/Prakalp23/autotune-results/tree/renaissance/Renaissance) | ||
|
||
|
||
## Scripts Details | ||
|
||
| Script Name | What it does? | | ||
|-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| perf/getmetrics-promql.sh | Has prometheus queries that are required calculate the metrics required for objective function and the benchmark. | | ||
| perf/parsemetrics-promql.sh | Parse the prometheus metrics data to calculate the average , max and min values as per the requirement of the benchmark. | | ||
| perf/ci.php | Use to measure confidence interval of data. | | ||
| perf/parsemetrics-wrk.sh | Parse the metrics data from hyperfoil/wrk load simulator. | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This file has been removed now, can you update the readme as well. Also add details about other scripts. |
||
|
||
|
||
|
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,11 @@ | ||
FROM eclipse-temurin:17.0.3_7-jre | ||
WORKDIR /target | ||
RUN mkdir -p /output | ||
ADD https://github.com/renaissance-benchmarks/renaissance/releases/download/v0.14.1/renaissance-gpl-0.14.1.jar /target | ||
COPY renaissance-gpl-0.14.1.jar /target/renaissance-gpl-0.14.1.jar | ||
ADD https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.17.0/jmx_prometheus_javaagent-0.17.0.jar /target | ||
COPY config.yaml config.yaml | ||
ENV JDK_JAVA_OPTIONS= | ||
ENV BENCHMARK=all | ||
ENV TIME_LIMIT=5 | ||
ENTRYPOINT java -javaagent:./jmx_prometheus_javaagent-0.17.0.jar=8080:config.yaml ${JDK_JAVA_OPTIONS} -jar /target/renaissance-gpl-0.14.1.jar -t ${TIME_LIMIT} --csv /output/renaissance-output.csv ${BENCHMARK} |
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,2 @@ | ||
rules: | ||
- pattern: ".*" |
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,54 @@ | ||
apiVersion: apps/v1 | ||
kind: Deployment | ||
metadata: | ||
name: renaissance-sample | ||
labels: | ||
app: renaissance-app | ||
spec: | ||
replicas: 1 | ||
selector: | ||
matchLabels: | ||
app: renaissance-deployment | ||
template: | ||
metadata: | ||
labels: | ||
name: renaissance-deployment | ||
app: renaissance-deployment | ||
# Add label to the application which is used by kruize/autotune to monitor it | ||
app.kubernetes.io/name: "renaissance-deployment" | ||
app.kubernetes.io/layer: "hotspot" | ||
version: v1 | ||
spec: | ||
volumes: | ||
- name: test-volume | ||
containers: | ||
- name: renaissance-server | ||
image: prakalp23/renaissance1041:latest | ||
imagePullPolicy: IfNotPresent | ||
env: | ||
ports: | ||
- containerPort: 8080 | ||
resources: | ||
requests: | ||
limits: | ||
volumeMounts: | ||
- name: "test-volume" | ||
mountPath: "/opt/jLogs" | ||
--- | ||
apiVersion: v1 | ||
kind: Service | ||
metadata: | ||
name: renaissance-service | ||
annotations: | ||
prometheus.io/scrape: 'true' | ||
prometheus.io/path: '/metrics' | ||
labels: | ||
app: renaissance-app | ||
spec: | ||
type: NodePort | ||
ports: | ||
- port: 8080 | ||
targetPort: 8080 | ||
name: renaissance-port | ||
selector: | ||
name: renaissance-deployment |
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,13 @@ | ||
apiVersion: monitoring.coreos.com/v1 | ||
kind: ServiceMonitor | ||
metadata: | ||
name: renaissance | ||
labels: | ||
team: renaissance-frontend | ||
spec: | ||
selector: | ||
matchLabels: | ||
app: renaissance-app | ||
endpoints: | ||
- port: renaissance-port | ||
path: '/metrics' |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file is missing, can you include this file.