-
Notifications
You must be signed in to change notification settings - Fork 240
feat: docker-based benchmarks comparing OpenSSL perf #2050
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
Merged
DeagleGross
merged 46 commits into
aspnet:main
from
DeagleGross:dmkorolev/idna/openssl-versioning
Jan 29, 2025
Merged
Changes from 44 commits
Commits
Show all changes
46 commits
Select commit
Hold shift + click to select a range
a2eabe1
try ...
DeagleGross 8920333
correct layout
DeagleGross e55a727
sources not source
DeagleGross 96bd8f6
typo back
DeagleGross c64ee87
try
DeagleGross 051c1fc
indent
DeagleGross a4624f9
rollback
DeagleGross a6ebf50
another move indent?
DeagleGross 27de7d9
sources
DeagleGross 97c91a7
push push
DeagleGross 65fc61c
fix docker args
DeagleGross f421171
multiline
DeagleGross 2f09ff8
properly pass args
DeagleGross e5e8c93
urls as build arg
DeagleGross a8929e3
dont override the serevr port
DeagleGross f746fff
any address !
DeagleGross 4091377
ready state text
DeagleGross 940f683
more logs, proper build args,
DeagleGross 3abe8a7
indents?
DeagleGross 54c2b81
one line!
DeagleGross 9376cce
just env
DeagleGross 7b10961
wildcard!
DeagleGross 9ec8ffd
include details in config
DeagleGross 84cde4f
wrap
DeagleGross 640cefc
try again
DeagleGross 8f38060
just explicitly
DeagleGross 1907ca7
openssl 111 support fofr scenario
DeagleGross 3694e67
fix naming
DeagleGross 5814aa7
overriden by job
DeagleGross d0e0e56
base on alpine!
DeagleGross 8b7494f
fix path
DeagleGross a164a2c
sdk alpine
DeagleGross 04c736b
just try
DeagleGross 7b67fca
maybe log from app itself?
DeagleGross d63ff37
try
DeagleGross 8765f4e
qwe
DeagleGross 4506c30
dont do crazy stuff
DeagleGross b53e58b
logs!
DeagleGross 1af4f50
wrap in function + include openssl 3.0.15 comparison
DeagleGross 6480bd1
dont use before script
DeagleGross 9821148
resolve conflicts
DeagleGross 6a9e021
build fix
DeagleGross d54b043
prettify + no links to custom repo
DeagleGross 5abaf5b
Merge branch 'main' into dmkorolev/idna/openssl-versioning
DeagleGross 5987d3b
validate we are on linux or macos
DeagleGross fba8a8b
Merge branch 'dmkorolev/idna/openssl-versioning' of https://github.co…
DeagleGross 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 hidden or 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 hidden or 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,30 @@ | ||
**/.classpath | ||
**/.dockerignore | ||
**/.env | ||
**/.git | ||
**/.gitignore | ||
**/.project | ||
**/.settings | ||
**/.toolstarget | ||
**/.vs | ||
**/.vscode | ||
**/*.*proj.user | ||
**/*.dbmdl | ||
**/*.jfm | ||
**/azds.yaml | ||
**/bin | ||
**/charts | ||
**/docker-compose* | ||
**/Dockerfile* | ||
**/node_modules | ||
**/npm-debug.log | ||
**/obj | ||
**/secrets.dev.yaml | ||
**/values.dev.yaml | ||
LICENSE | ||
README.md | ||
!**/.gitignore | ||
!.git/HEAD | ||
!.git/config | ||
!.git/packed-refs | ||
!.git/refs/heads/** |
This file contains hidden or 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,38 @@ | ||
# This stage is used when running from VS in fast mode (Default for Debug configuration) | ||
FROM mcr.microsoft.com/dotnet/aspnet:9.0-alpine AS base | ||
USER root | ||
WORKDIR /app | ||
EXPOSE 8080 | ||
EXPOSE 8081 | ||
|
||
# Define a build argument for the OpenSSL version | ||
# lookup for openssl+branch version here https://pkgs.alpinelinux.org/packages?name=openssl&branch=v3.20&repo=&arch=x86_64 | ||
ARG OPENSSL_VERSION=1.1.1w-r1 | ||
ARG ALPINE_BRANCH=v3.16 | ||
|
||
# Add the specified Alpine branch repository and install OpenSSL | ||
RUN echo "http://dl-cdn.alpinelinux.org/alpine/${ALPINE_BRANCH}/main" >> /etc/apk/repositories && \ | ||
apk add --no-cache openssl=${OPENSSL_VERSION} wget perl build-base && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
# This stage is used to build the service project | ||
FROM mcr.microsoft.com/dotnet/sdk:9.0-alpine AS build | ||
ARG BUILD_CONFIGURATION=Release | ||
WORKDIR /src | ||
COPY ["Kestrel.csproj", "."] | ||
RUN dotnet restore "./Kestrel.csproj" | ||
COPY . . | ||
WORKDIR "/src/." | ||
RUN dotnet build "./Kestrel.csproj" -c $BUILD_CONFIGURATION -o /app/build | ||
|
||
# This stage is used to publish the service project to be copied to the final stage | ||
FROM build AS publish | ||
ARG BUILD_CONFIGURATION=Release | ||
RUN dotnet publish "./Kestrel.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false | ||
|
||
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration) | ||
FROM base AS final | ||
WORKDIR /app | ||
COPY --from=publish /app/publish . | ||
|
||
ENTRYPOINT [ "dotnet", "Kestrel.dll" ] |
This file contains hidden or 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 hidden or 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 |
---|---|---|
@@ -1,3 +1,4 @@ | ||
using System.Diagnostics; | ||
using System.Net; | ||
using System.Net.Security; | ||
using System.Security.Authentication; | ||
|
@@ -9,6 +10,8 @@ | |
using Microsoft.AspNetCore.Server.Kestrel.Core; | ||
using Microsoft.AspNetCore.Server.Kestrel.Https; | ||
|
||
Console.WriteLine("Starting application..."); | ||
|
||
var builder = WebApplication.CreateBuilder(args); | ||
builder.Logging.ClearProviders(); | ||
|
||
|
@@ -156,6 +159,7 @@ | |
await app.StartAsync(); | ||
|
||
Console.WriteLine("Application Info:"); | ||
LogOpenSSLVersion(); | ||
if (mTlsEnabled) | ||
{ | ||
Console.WriteLine($"\tmTLS is enabled (client cert is required)"); | ||
|
@@ -187,7 +191,7 @@ | |
{ | ||
ip = IPAddress.Loopback; | ||
} | ||
else if (!IPAddress.TryParse(urlPrefix.Host, out ip)) | ||
{ | ||
ip = IPAddress.IPv6Any; | ||
} | ||
|
@@ -219,4 +223,25 @@ | |
} | ||
|
||
return protocols; | ||
} | ||
|
||
static void LogOpenSSLVersion() | ||
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. Looks like this code runs no matter what OS? Should probably check you're on linux? 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. added check that we are on linux or macos |
||
{ | ||
using var process = new Process() | ||
{ | ||
StartInfo = | ||
{ | ||
FileName = "/usr/bin/env", | ||
Arguments = "openssl version", | ||
RedirectStandardOutput = true, | ||
RedirectStandardError = true, | ||
UseShellExecute = false, | ||
CreateNoWindow = true | ||
}, | ||
}; | ||
|
||
process.Start(); | ||
process.WaitForExit(); | ||
var output = process.StandardOutput.ReadToEnd(); | ||
Console.WriteLine(output); | ||
} |
25 changes: 18 additions & 7 deletions
25
src/BenchmarksApps/TLS/Kestrel/Properties/launchSettings.json
This file contains hidden or 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 |
---|---|---|
@@ -1,15 +1,26 @@ | ||
{ | ||
"$schema": "http://json.schemastore.org/launchsettings.json", | ||
{ | ||
"profiles": { | ||
"https": { | ||
"commandName": "Project", | ||
"dotnetRunMessages": true, | ||
"launchBrowser": true, | ||
"launchUrl": "hello-world", | ||
"applicationUrl": "https://localhost:5000;http://localhost:5001", | ||
"environmentVariables": { | ||
"ASPNETCORE_ENVIRONMENT": "Development" | ||
} | ||
}, | ||
"dotnetRunMessages": true, | ||
"applicationUrl": "https://localhost:5000;http://localhost:5001" | ||
}, | ||
"Container (Dockerfile)": { | ||
"commandName": "Docker", | ||
"launchBrowser": true, | ||
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/hello-world", | ||
"environmentVariables": { | ||
"ASPNETCORE_HTTPS_PORTS": "8080", | ||
"ASPNETCORE_HTTP_PORTS": "8081" | ||
}, | ||
"publishAllPorts": true, | ||
"useSSL": true | ||
} | ||
} | ||
} | ||
}, | ||
"$schema": "http://json.schemastore.org/launchsettings.json" | ||
} |
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.
Uh oh!
There was an error while loading. Please reload this page.