Skip to content
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

perf-test-initial-commit #139

Merged
merged 1 commit into from
Aug 25, 2023
Merged

Conversation

iniesta-08
Copy link

@iniesta-08 iniesta-08 commented Aug 1, 2023

What is in this PR?

We have done several runs to evaluate performace of enclaver/nitro-enclaves. As part of these tests I have created a simple GO server that works using a self signed SSL certificate and does a naive crypto operation.

API used to test - https://localhost:8082/hello

Instance Setup

  1. Provision a new nitro instance and follow the steps here to setup up nitro_allocator.yaml file https://edgebit.io/enclaver/docs/0.x/guide-first/

  2. Modify the file /etc/nitro_enclaves/allocator.yaml to cpu_count: 4

  3. Restart the nitro-allocator service using sudo systemctl restart nitro-enclaves-allocator.service

JMeter setup

SSH into your machine and run the following commands

mkdir jmeter
cd jmeter
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.5.tgz
tar -xf apache-jmeter-5.5.tgz
sudo amazon-linux-extras install java-openjdk11

Running the tests

The script ./run_in_enclave.sh contains the commands to start the nitro enclave.

Comment out the 4vcpu part of the script if you are using 2cvpu to start enclaves and vice-versa.

  1. Start the enclave using the command ./run_in_enclave.sh
  2. Run JMeter tests using ./run_jmeter_test.sh

Sample results

With 4vCPUs -
summary = 12000 in 00:00:42 = 283.7/s Avg: 155 Min: 12 Max: 2707 Err: 0 (0.00%)

With 2vCPUs - summary = 12000 in 00:00:41 = 290.3/s Avg: 108 Min: 14 Max: 1755 Err: 0 (0.00%)

As you can see there is no significant difference in TPS by increasing the number of vCPUs.

@eyakubovich
Copy link
Contributor

Thank you for designing and running the first perf test! To give us more context, could you also:

  1. include what VM instance type you used
  2. have a "control" for the experiment: what do the numbers look like for that VM when this test container is ran outside of the Enclaver in plain Docker.

Thank you!

@robszumski
Copy link
Contributor

Thanks for putting this together, really cool write up.

@iniesta-08
Copy link
Author

@eyakubovich Sure, that makes sense; I will provide the docker benchmarks here.

Copy link
Contributor

@eyakubovich eyakubovich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you you for your contribution.

@eyakubovich eyakubovich merged commit e213f17 into edgebitio:main Aug 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants