Skip to content

Commit 0d1d1b6

Browse files
authored
Add h2load client app (#1514)
1 parent a5f5411 commit 0d1d1b6

File tree

7 files changed

+469
-1
lines changed

7 files changed

+469
-1
lines changed

benchmarks.sln

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "servicebus-controller", "se
266266
docker\servicebus-controller\stop.sh = docker\servicebus-controller\stop.sh
267267
EndProjectSection
268268
EndProject
269+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H2LoadClient", "src\H2LoadClient\H2LoadClient.csproj", "{7AFACAC0-EFD1-4736-B512-06E8282BB222}"
270+
EndProject
269271
Global
270272
GlobalSection(SolutionConfigurationPlatforms) = preSolution
271273
Debug|Any CPU = Debug|Any CPU
@@ -648,6 +650,18 @@ Global
648650
{499B0522-A7CE-4788-9166-1AFFBF506F68}.Release|x64.Build.0 = Release|Any CPU
649651
{499B0522-A7CE-4788-9166-1AFFBF506F68}.Release|x86.ActiveCfg = Release|Any CPU
650652
{499B0522-A7CE-4788-9166-1AFFBF506F68}.Release|x86.Build.0 = Release|Any CPU
653+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
654+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Debug|Any CPU.Build.0 = Debug|Any CPU
655+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Debug|x64.ActiveCfg = Debug|Any CPU
656+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Debug|x64.Build.0 = Debug|Any CPU
657+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Debug|x86.ActiveCfg = Debug|Any CPU
658+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Debug|x86.Build.0 = Debug|Any CPU
659+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Release|Any CPU.ActiveCfg = Release|Any CPU
660+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Release|Any CPU.Build.0 = Release|Any CPU
661+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Release|x64.ActiveCfg = Release|Any CPU
662+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Release|x64.Build.0 = Release|Any CPU
663+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Release|x86.ActiveCfg = Release|Any CPU
664+
{7AFACAC0-EFD1-4736-B512-06E8282BB222}.Release|x86.Build.0 = Release|Any CPU
651665
EndGlobalSection
652666
GlobalSection(SolutionProperties) = preSolution
653667
HideSolutionNode = FALSE
@@ -704,6 +718,7 @@ Global
704718
{127BD56E-993B-47A7-BC0A-2300DF53FADC} = {39985004-8041-41FC-BBB1-CCF999D7BC16}
705719
{499B0522-A7CE-4788-9166-1AFFBF506F68} = {995FCFF9-E5F6-4BDD-8E5B-FBDEA21145F9}
706720
{C6C8279D-CBC8-467A-875F-79E855D6824E} = {EF444B27-3CBA-4581-893A-7F6DB5527371}
721+
{7AFACAC0-EFD1-4736-B512-06E8282BB222} = {39985004-8041-41FC-BBB1-CCF999D7BC16}
707722
EndGlobalSection
708723
GlobalSection(ExtensibilityGlobals) = postSolution
709724
SolutionGuid = {C48AD7EE-82B1-4307-A869-3FC14AC9B21F}

build/grpc-v2-scenarios.yml

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ parameters:
1414
type: string
1515
default: ''
1616

17-
# Scenarios
17+
# Standard scenarios
1818
- name: scenarios
1919
type: object
2020
default:
@@ -40,6 +40,18 @@ parameters:
4040
- displayName: "Go - Client: Go"
4141
arguments: --scenario grpcgoserver-grpcgoclient $(grpcJobs) --property server=grpcgoserver --property client=grpcgoclient
4242

43+
# H2Load scenarios
44+
- name: h2loadscenarios
45+
type: object
46+
default:
47+
48+
- displayName: "ASP.NET Core - Client: h2load"
49+
arguments: --scenario grpcaspnetcoreserver-h2loadclient $(grpcJobs) --property server=grpcaspnetcoreserver --property client=h2loadclient --application.collectCounters true
50+
- displayName: "Grpc.Core - Client: h2load"
51+
arguments: --scenario grpccoreserver-h2loadclient $(grpcJobs) --property server=grpccoreserver --property client=h2loadclient --application.collectCounters true
52+
- displayName: "Go - Client: h2load"
53+
arguments: --scenario grpcgoserver-h2loadclient $(grpcJobs) --property server=grpcgoserver --property client=h2loadclient
54+
4355
- name: callTypes
4456
type: object
4557
default:
@@ -73,6 +85,20 @@ parameters:
7385
arguments: --variable streams=70 --variable connections=64 --property streams=70
7486

7587
steps:
88+
- ${{ each s in parameters.h2loadscenarios }}:
89+
- ${{ each protocol in parameters.protocols }}:
90+
- ${{ each stream in parameters.connectionStreams }}:
91+
- task: PublishToAzureServiceBus@1
92+
condition: succeededOrFailed()
93+
displayName: ${{ s.displayName }} ${{ protocol.displayName }} ${{ stream.displayName }}
94+
inputs:
95+
connectedServiceName: ${{ parameters.connection }}
96+
waitForCompletion: true
97+
messageBody: |
98+
{
99+
"name": "benchmarksdriver2",
100+
"args": [ "--application.aspnetcoreversion Latest --table GrpcBenchmarks --sql SQL_CONNECTION_STRING --session $(session) --profile ${{ parameters.profile }} --no-metadata --no-measurements --load.variables.duration ${{ parameters.duration }} --load.variables.warmup ${{ parameters.warmup }} ${{ s.arguments }} ${{ protocol.arguments }} ${{ stream.arguments }} --property scenario=unary --property payload=0" ]
101+
}
76102
- ${{ each s in parameters.scenarios }}:
77103
- ${{ each callType in parameters.callTypes }}:
78104
- ${{ each payload in parameters.payloads }}:

src/BenchmarksDriver2/benchmarks.grpc.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ imports:
99
- https://raw.githubusercontent.com/JamesNK/grpc-dotnet/jamesnk/benchmarch-grpcclient/perf/benchmarkapps/GrpcCoreServer/grpc-core-server.yml
1010
- https://raw.githubusercontent.com/aspnet/Benchmarks/master/src/BenchmarksApps/Grpc/GoServer/grpc-go-server.yml
1111
- https://raw.githubusercontent.com/aspnet/Benchmarks/master/src/BenchmarksApps/Grpc/GoClient/grpc-go-client.yml
12+
- https://raw.githubusercontent.com/aspnet/Benchmarks/master/src/H2LoadClient/h2load.yml
1213
variables:
1314
serverPort: 5000
1415
scenarios:
@@ -72,6 +73,22 @@ scenarios:
7273
load:
7374
job: grpcGoClient
7475

76+
grpcaspnetcoreserver-h2loadclient:
77+
application:
78+
job: grpcAspNetCoreServer
79+
load:
80+
job: h2LoadClient
81+
grpccoreserver-h2loadclient:
82+
application:
83+
job: grpcCoreServer
84+
load:
85+
job: h2LoadClient
86+
grpcgoserver-h2loadclient:
87+
application:
88+
job: grpcGoServer
89+
load:
90+
job: h2LoadClient
91+
7592
profiles:
7693
aspnet-physical-lin:
7794
variables:
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
using System.Diagnostics.Tracing;
2+
3+
namespace Benchmarks
4+
{
5+
internal sealed class BenchmarksEventSource : EventSource
6+
{
7+
public static readonly BenchmarksEventSource Log = new BenchmarksEventSource();
8+
9+
internal BenchmarksEventSource()
10+
: this("Benchmarks")
11+
{
12+
}
13+
14+
// Used for testing
15+
internal BenchmarksEventSource(string eventSourceName)
16+
: base(eventSourceName)
17+
{
18+
}
19+
20+
public static void Measure(string name, long value)
21+
{
22+
Log.MeasureLong(name, value);
23+
}
24+
25+
public static void Measure(string name, double value)
26+
{
27+
Log.MeasureDouble(name, value);
28+
}
29+
30+
public static void Measure(string name, string value)
31+
{
32+
Log.MeasureString(name, value);
33+
}
34+
35+
[Event(1, Level = EventLevel.Informational)]
36+
public void MeasureLong(string name, long value)
37+
{
38+
WriteEvent(1, name, value);
39+
}
40+
41+
[Event(2, Level = EventLevel.Informational)]
42+
public void MeasureDouble(string name, double value)
43+
{
44+
WriteEvent(2, name, value);
45+
}
46+
47+
[Event(3, Level = EventLevel.Informational)]
48+
public void MeasureString(string name, string value)
49+
{
50+
WriteEvent(3, name, value);
51+
}
52+
53+
[Event(5, Level = EventLevel.Informational)]
54+
public void Metadata(string name, string aggregate, string reduce, string shortDescription, string longDescription, string format)
55+
{
56+
WriteEvent(5, name, aggregate, reduce, shortDescription, longDescription, format);
57+
}
58+
}
59+
}

src/H2LoadClient/H2LoadClient.csproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>netcoreapp3.0</TargetFramework>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="2.4.2" />
10+
</ItemGroup>
11+
12+
</Project>

0 commit comments

Comments
 (0)