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

Refactor Performance Testing #3953

Merged
merged 100 commits into from
Dec 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
05bdf56
wip
nibanks Aug 18, 2023
a42452f
Merge branch 'main' into nibanks/perf-refactor
nibanks Aug 18, 2023
17ee47d
Merge branch 'main' into nibanks/perf-refactor
nibanks Sep 2, 2023
0a21353
wip
nibanks Sep 5, 2023
105712a
Merge branch 'main' into nibanks/perf-refactor
nibanks Sep 26, 2023
1b652eb
Merge branch 'main' into nibanks/perf-refactor
nibanks Oct 2, 2023
ff91f16
wip
nibanks Oct 9, 2023
43fdb99
Merge branch 'main' into nibanks/perf-refactor
nibanks Oct 12, 2023
474b34a
Merge branch 'main' into nibanks/perf-refactor
nibanks Oct 27, 2023
1e648d7
WIP
nibanks Oct 27, 2023
2e27293
WIP
nibanks Nov 3, 2023
7c4a50d
WIP
nibanks Nov 5, 2023
5b79a56
WIP
nibanks Nov 5, 2023
d074930
Fix build errors
nibanks Nov 5, 2023
3365b6d
Fixes
nibanks Nov 5, 2023
2fa2d1c
WIP
nibanks Nov 5, 2023
d47e738
LOTs of improvements
nibanks Nov 6, 2023
36cd3a5
Some cleanup
nibanks Nov 6, 2023
ca16a6d
more
nibanks Nov 6, 2023
e6ddaec
Improve things
nibanks Nov 7, 2023
0608f95
Remove unnecessary changes
nibanks Nov 7, 2023
813f944
Fix leak
nibanks Nov 7, 2023
a4be336
More improvements
nibanks Nov 7, 2023
7712b6a
Address sharing working
nibanks Nov 7, 2023
5ff2180
More cleanup
nibanks Nov 7, 2023
ed93105
Working on TCP
nibanks Nov 8, 2023
386cf63
Fix default
nibanks Nov 8, 2023
ce1065b
wip
nibanks Nov 9, 2023
68c035a
Merge branch 'main' into nibanks/perf-refactor
nibanks Nov 9, 2023
5a37f04
TCP working somewhat
nibanks Nov 9, 2023
c83a61a
Working better + cleanup
nibanks Nov 9, 2023
dadb65a
progress
nibanks Nov 9, 2023
66c78f5
Fixing some TCP issues
nibanks Nov 9, 2023
df95b1e
Enable some usage
nibanks Nov 9, 2023
cb7d3c8
repeat streams
nibanks Nov 9, 2023
b9cf6c2
Fix Windows builds
nibanks Nov 9, 2023
43864aa
Fix runtime
nibanks Nov 9, 2023
e1597ba
Some fixes
nibanks Nov 14, 2023
ffca07e
Refactoring
nibanks Nov 19, 2023
9b1fc4d
Move throughput tests to new stuff, revert rps
nibanks Nov 19, 2023
8b2d8b4
Fix logs
nibanks Nov 19, 2023
1e605a6
Linux fixes
nibanks Nov 19, 2023
d409876
Add PerfClient.cpp and PerfClient.h files
nibanks Nov 19, 2023
764410f
Fix memory deallocation bug in drvmain.cpp and
nibanks Nov 19, 2023
cd20b59
Few minor fixes for linux and kernel builds
nibanks Nov 20, 2023
1c33f91
WIP
nibanks Nov 21, 2023
8552ebb
Hold ref while send is outstanding
nibanks Nov 23, 2023
1d326c6
TCP mostly working now?
nibanks Nov 23, 2023
ed3c0a3
Remove accidental submodule
nibanks Nov 23, 2023
65cfb3e
More cowbell, I mean TCP
nibanks Nov 23, 2023
a6861db
fix build
nibanks Nov 23, 2023
9c50ffc
remove xdp again
nibanks Nov 23, 2023
dc812ac
Merge branch 'main' into nibanks/perf-refactor
nibanks Nov 27, 2023
7db8fcb
Merge branch 'nibanks/perf-refactor' of https://github.com/microsoft/…
nibanks Nov 27, 2023
435f476
fix LatencyValues freed before shutdown
csujedihy Nov 29, 2023
d7eb036
Fix bugs
csujedihy Nov 29, 2023
a0fbb07
fix some more
csujedihy Nov 30, 2023
676ef2e
fixes
csujedihy Nov 30, 2023
48edd6c
More refactoring
nibanks Dec 1, 2023
c959815
Fixes
nibanks Dec 3, 2023
eaea4f3
Few fixes
nibanks Dec 3, 2023
a963df0
Refactoring
nibanks Dec 5, 2023
bfdb917
Merge branch 'main' into nibanks/perf-refactor
nibanks Dec 5, 2023
7ea9ced
Revert index
nibanks Dec 7, 2023
9ad55b1
Refactoring to remove old tests
nibanks Dec 7, 2023
2b2c132
More work
nibanks Dec 7, 2023
2f0262e
More refactoring
nibanks Dec 7, 2023
b510f3f
Another try
nibanks Dec 7, 2023
e9a5342
Bug fix; refactoring
nibanks Dec 7, 2023
70fe782
bit more refactoring
nibanks Dec 7, 2023
22f038b
clog cleanup
nibanks Dec 7, 2023
6162612
Support new TCP test types
nibanks Dec 7, 2023
1f06115
Clean up
nibanks Dec 7, 2023
829b846
Share local address for HPS
nibanks Dec 7, 2023
6203ff7
more fixes
nibanks Dec 7, 2023
3de9663
Fix UDP stop signal on server
nibanks Dec 12, 2023
1cb1be6
Merge branch 'main' into nibanks/perf-refactor
nibanks Dec 12, 2023
500afa5
Fix matcher
nibanks Dec 12, 2023
e667982
More fixes for matching logic
nibanks Dec 12, 2023
e27431c
skip kernel for tcp
nibanks Dec 12, 2023
cc040e7
skip kernel refactor
nibanks Dec 12, 2023
dd29cdc
handle tcp init failure
nibanks Dec 12, 2023
df29c0e
Missed an HPS arg
nibanks Dec 12, 2023
5e4a329
Reduce connection count
nibanks Dec 12, 2023
084975f
Reduce parallel conn count for HPS tests
nibanks Dec 13, 2023
af47a49
Revert back
nibanks Dec 13, 2023
34b3d29
Change watchdog destructor order
nibanks Dec 13, 2023
96cefec
Kill everything on cleanup
nibanks Dec 14, 2023
686494a
Undo
nibanks Dec 14, 2023
fa597e1
Inc conn count
nibanks Dec 14, 2023
6d29938
Really boost
nibanks Dec 14, 2023
cafc2a7
Refactor worker connection complete
nibanks Dec 14, 2023
99e949f
Lots of conns
nibanks Dec 14, 2023
0a7a98b
Set remote address to skip DNS
nibanks Dec 14, 2023
428b90b
more conns?
nibanks Dec 14, 2023
c60f372
Affinitize
nibanks Dec 14, 2023
74cefba
Fix ideal proc
nibanks Dec 14, 2023
23ac1c8
Refactor worker connection distribution logic in PerfClient.cpp
nibanks Dec 14, 2023
08dce10
Update conns value in RemoteTests.json
nibanks Dec 14, 2023
77ebb70
More fixes
nibanks Dec 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
174 changes: 147 additions & 27 deletions scripts/RemoteTests.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"Tls": ["schannel", "openssl", "openssl3"],
"Arch": ["x64", "x86", "arm", "arm64"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -test:Throughput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -uni:1 -timed:1 -upload:12000 -stats:1 -sstats:1"
"Arguments": "-exec:maxtput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -up:12000 -timed:1 -ptput:1 -pconn:1 -pstream:1 -tcp:0"
},
"Variables": [
{
Expand Down Expand Up @@ -46,11 +46,10 @@
"Tls": ["schannel", "openssl", "openssl3"],
"Arch": ["x64", "x86", "arm", "arm64"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -test:Throughput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -uni:1 -timed:1 -upload:12000 -tcp:1"
"Arguments": "-exec:maxtput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -up:12000 -timed:1 -ptput:1 -pconn:1 -pstream:1 -tcp:1"
},
"Variables": [
],
"SkipKernel": true,
"AllowLoopback": true,
"Iterations": 5,
"RemoteReadyMatcher": "Started!",
Expand All @@ -66,7 +65,7 @@
"Tls": ["openssl", "openssl3"],
"Arch": ["x64", "arm"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -test:Throughput -target:$RemoteAddress -uni:1 -timed:1 -upload:12000 -stats:1 -sstats:1"
"Arguments": "-exec:maxtput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -up:12000 -timed:1 -ptput:1 -pconn:1 -pstream:1 -tcp:0"
},
"Variables": [
{
Expand Down Expand Up @@ -100,11 +99,10 @@
"Tls": ["openssl", "openssl3"],
"Arch": ["x64", "arm"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -test:Throughput -target:$RemoteAddress -uni:1 -timed:1 -upload:12000 -tcp:1"
"Arguments": "-exec:maxtput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -up:12000 -timed:1 -ptput:1 -pconn:1 -pstream:1 -tcp:1"
},
"Variables": [
],
"SkipKernel": true,
"AllowLoopback": true,
"Iterations": 5,
"RemoteReadyMatcher": "Started!",
Expand All @@ -120,7 +118,7 @@
"Tls": ["schannel", "openssl", "openssl3"],
"Arch": ["x64", "x86", "arm", "arm64"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -test:Throughput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -uni:1 -timed:1 -download:12000 -stats:1"
"Arguments": "-exec:maxtput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -down:12000 -timed:1 -ptput:1 -pconn:1 -tcp:0"
},
"Variables": [
{
Expand All @@ -146,11 +144,10 @@
"Tls": ["schannel", "openssl", "openssl3"],
"Arch": ["x64", "x86", "arm", "arm64"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -test:Throughput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -uni:1 -timed:1 -download:12000 -tcp:1"
"Arguments": "-exec:maxtput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -down:12000 -timed:1 -ptput:1 -pconn:1 -tcp:1"
},
"Variables": [
],
"SkipKernel": true,
"AllowLoopback": true,
"Iterations": 5,
"RemoteReadyMatcher": "Started!",
Expand All @@ -166,7 +163,7 @@
"Tls": ["openssl", "openssl3"],
"Arch": ["x64", "arm"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -test:Throughput -target:$RemoteAddress -uni:1 -timed:1 -download:12000 -stats:1"
"Arguments": "-exec:maxtput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -down:12000 -timed:1 -ptput:1 -pconn:1 -tcp:0"
},
"Variables": [
{
Expand All @@ -192,11 +189,10 @@
"Tls": ["openssl", "openssl3"],
"Arch": ["x64", "arm"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -test:Throughput -target:$RemoteAddress -uni:1 -timed:1 -download:12000 -tcp:1"
"Arguments": "-exec:maxtput -target:$RemoteAddress -bind:$LocalAddress:4434 -ip:4 -down:12000 -timed:1 -ptput:1 -pconn:1 -tcp:1"
},
"Variables": [
],
"SkipKernel": true,
"AllowLoopback": true,
"Iterations": 5,
"RemoteReadyMatcher": "Started!",
Expand All @@ -212,16 +208,16 @@
"Tls": ["schannel", "openssl", "openssl3"],
"Arch": ["x64", "x86", "arm", "arm64"],
"Exe": "secnetperf",
"Arguments": "-exec:lowlat -test:RPS -target:$RemoteAddress"
"Arguments": "-exec:lowlat -target:$RemoteAddress -rstream:1 -plat:1 -tcp:0"
},
"Variables": [
{
"Name": "ConnectionCount",
"Local": {
"1": "-conns:1 -requests:1 -runtime:30000",
"40": "-conns:40 -requests:20",
"250": "-conns:250 -requests:7500",
"1000": "-conns:1 -requests:1000"
"40": "-conns:40 -requests:1 -runtime:10000",
"250": "-conns:250 -requests:30 -runtime:10000",
"1000": "-conns:1 -requests:1000 -runtime:10000"
},
"Default": "250"
},
Expand All @@ -246,8 +242,53 @@
"AllowLoopback": false,
"Iterations": 5,
"RemoteReadyMatcher": "Started!",
"ResultsMatcher": "Result: (.*) RPS, Min: (.*), Max: (.*), 50th: (.*), 90th: (.*), 99th: (.*), 99.9th: (.*), 99.99th: (.*), 99.999th: (.*), 99.9999th: (.*), StdErr: (.*)",
"Formats": ["{0} RPS", "Minimum: {0}", "Maximum: {0}", "Percentiles: 50th: {0}", "90th: {0}", "99th: {0}", "99.9th: {0}", "99.99th: {0}", "99.999th: {0}", "99.9999th: {0}", "Standard Error: {0}"],
"ResultsMatcher": "Result: (.*) RPS, Latency,us 0th: (.*), 50th: (.*), 90th: (.*), 99th: (.*), 99.9th: (.*), 99.99th: (.*), 99.999th: (.*), 99.9999th: (.*), Max: (.*)",
"Formats": ["{0} RPS", "Minimum: {0}", "50th: {0}", "90th: {0}", "99th: {0}", "99.9th: {0}", "99.99th: {0}", "99.999th: {0}", "99.9999th: {0}", "Maximum: {0}"],
"RegressionThreshold": "-50.0"
},
{
"TestName": "TcpRPS",
"Local": {
"Platform": "Windows",
"Tls": ["schannel", "openssl", "openssl3"],
"Arch": ["x64", "x86", "arm", "arm64"],
"Exe": "secnetperf",
"Arguments": "-exec:lowlat -target:$RemoteAddress -rstream:1 -plat:1 -tcp:1"
},
"Variables": [
{
"Name": "ConnectionCount",
"Local": {
"1": "-conns:1 -requests:1 -runtime:30000",
"40": "-conns:40 -requests:1 -runtime:10000",
"250": "-conns:250 -requests:30 -runtime:10000",
"1000": "-conns:1 -requests:1000 -runtime:10000"
},
"Default": "250"
},
{
"Name": "RequestSize",
"Local": {
"0": "-request:0"
},
"Default": "0"
},
{
"Name": "ResponseSize",
"Local": {
"0": "-response:0",
"512": "-response:512",
"4096": "-response:4096",
"16384": "-response:16384"
},
"Default": "4096"
}
],
"AllowLoopback": false,
"Iterations": 5,
"RemoteReadyMatcher": "Started!",
"ResultsMatcher": "Result: (.*) RPS, Latency,us 0th: (.*), 50th: (.*), 90th: (.*), 99th: (.*), 99.9th: (.*), 99.99th: (.*), 99.999th: (.*), 99.9999th: (.*), Max: (.*)",
"Formats": ["{0} RPS", "Minimum: {0}", "50th: {0}", "90th: {0}", "99th: {0}", "99.9th: {0}", "99.99th: {0}", "99.999th: {0}", "99.9999th: {0}", "Maximum: {0}"],
"RegressionThreshold": "-50.0"
},
{
Expand All @@ -257,16 +298,16 @@
"Tls": ["openssl", "openssl3"],
"Arch": ["x64", "arm"],
"Exe": "secnetperf",
"Arguments": "-exec:lowlat -test:RPS -target:$RemoteAddress"
"Arguments": "-exec:lowlat -target:$RemoteAddress -rstream:1 -plat:1 -tcp:0"
},
"Variables": [
{
"Name": "ConnectionCount",
"Local": {
"1": "-conns:1 -requests:1",
"40": "-conns:40 -requests:20",
"250": "-conns:250 -requests:7500",
"1000": "-conns:1 -requests:1000"
"1": "-conns:1 -requests:1 -runtime:30000",
"40": "-conns:40 -requests:1 -runtime:10000",
"250": "-conns:250 -requests:30 -runtime:10000",
"1000": "-conns:1 -requests:1000 -runtime:10000"
},
"Default": "250"
},
Expand All @@ -291,8 +332,53 @@
"AllowLoopback": false,
"Iterations": 5,
"RemoteReadyMatcher": "Started!",
"ResultsMatcher": "Result: (.*) RPS, Min: (.*), Max: (.*), 50th: (.*), 90th: (.*), 99th: (.*), 99.9th: (.*), 99.99th: (.*), 99.999th: (.*), 99.9999th: (.*), StdErr: (.*)",
"Formats": ["{0} RPS", "Minimum: {0}", "Maximum: {0}", "Percentiles: 50th: {0}", "90th: {0}", "99th: {0}", "99.9th: {0}", "99.99th: {0}", "99.999th: {0}", "99.9999th: {0}", "Standard Error: {0}"],
"ResultsMatcher": "Result: (.*) RPS, Latency,us 0th: (.*), 50th: (.*), 90th: (.*), 99th: (.*), 99.9th: (.*), 99.99th: (.*), 99.999th: (.*), 99.9999th: (.*), Max: (.*)",
"Formats": ["{0} RPS", "Minimum: {0}", "50th: {0}", "90th: {0}", "99th: {0}", "99.9th: {0}", "99.99th: {0}", "99.999th: {0}", "99.9999th: {0}", "Maximum: {0}"],
"RegressionThreshold": "-75.0"
},
{
"TestName": "TcpRPS",
"Local": {
"Platform": "linux",
"Tls": ["openssl", "openssl3"],
"Arch": ["x64", "arm"],
"Exe": "secnetperf",
"Arguments": "-exec:lowlat -target:$RemoteAddress -rstream:1 -plat:1 -tcp:1"
},
"Variables": [
{
"Name": "ConnectionCount",
"Local": {
"1": "-conns:1 -requests:1 -runtime:30000",
"40": "-conns:40 -requests:1 -runtime:10000",
"250": "-conns:250 -requests:30 -runtime:10000",
"1000": "-conns:1 -requests:1000 -runtime:10000"
},
"Default": "250"
},
{
"Name": "RequestSize",
"Local": {
"0": "-request:0"
},
"Default": "0"
},
{
"Name": "ResponseSize",
"Local": {
"0": "-response:0",
"512": "-response:512",
"4096": "-response:4096",
"16384": "-response:16384"
},
"Default": "4096"
}
],
"AllowLoopback": false,
"Iterations": 5,
"RemoteReadyMatcher": "Started!",
"ResultsMatcher": "Result: (.*) RPS, Latency,us 0th: (.*), 50th: (.*), 90th: (.*), 99th: (.*), 99.9th: (.*), 99.99th: (.*), 99.999th: (.*), 99.9999th: (.*), Max: (.*)",
"Formats": ["{0} RPS", "Minimum: {0}", "50th: {0}", "90th: {0}", "99th: {0}", "99.9th: {0}", "99.99th: {0}", "99.999th: {0}", "99.9999th: {0}", "Maximum: {0}"],
"RegressionThreshold": "-75.0"
},
{
Expand All @@ -302,7 +388,24 @@
"Tls": ["schannel", "openssl", "openssl3"],
"Arch": ["x64", "x86", "arm", "arm64"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -test:HPS -target:$RemoteAddress -incrementtarget:1"
"Arguments": "-exec:maxtput -target:$RemoteAddress -affinitize:1 -inctarget:1 -rconn:1 -conns:800 -share:1 -run:10000 -tcp:0 -prate:1"
},
"Variables": [],
"AllowLoopback": false,
"Iterations": 5,
"RemoteReadyMatcher": "Started!",
"ResultsMatcher": "Result: (.*) HPS.*",
"Formats": ["{0} HPS"],
"RegressionThreshold": "-40.0"
},
{
"TestName": "TcpHPS",
"Local": {
"Platform": "Windows",
"Tls": ["schannel", "openssl", "openssl3"],
"Arch": ["x64", "x86", "arm", "arm64"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -target:$RemoteAddress -affinitize:1 -inctarget:1 -rconn:1 -conns:800 -share:1 -run:10000 -tcp:1 -prate:1"
},
"Variables": [],
"AllowLoopback": false,
Expand All @@ -319,7 +422,24 @@
"Tls": ["openssl", "openssl3"],
"Arch": ["x64", "arm"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -test:HPS -target:$RemoteAddress"
"Arguments": "-exec:maxtput -target:$RemoteAddress -affinitize:1 -inctarget:1 -rconn:1 -conns:800 -share:1 -run:10000 -tcp:0 -prate:1"
},
"Variables": [],
"AllowLoopback": false,
"Iterations": 5,
"RemoteReadyMatcher": "Started!",
"ResultsMatcher": "Result: (.*) HPS.*",
"Formats": ["{0} HPS"],
"RegressionThreshold": "-75.0"
},
{
"TestName": "TcpHPS",
"Local": {
"Platform": "linux",
"Tls": ["openssl", "openssl3"],
"Arch": ["x64", "arm"],
"Exe": "secnetperf",
"Arguments": "-exec:maxtput -target:$RemoteAddress -affinitize:1 -inctarget:1 -rconn:1 -conns:800 -share:1 -run:10000 -tcp:1 -prate:1"
},
"Variables": [],
"AllowLoopback": false,
Expand Down
15 changes: 1 addition & 14 deletions scripts/clog.inputs
Original file line number Diff line number Diff line change
Expand Up @@ -95,22 +95,10 @@
../src/test/lib/QuicDrill.cpp
../src/test/lib/DatagramTest.cpp
../src/test/lib/OwnershipTest.cpp
../src/perf/lib/PerfHelpers.h
../src/perf/lib/PerfClient.cpp
../src/perf/lib/PerfServer.cpp
../src/perf/lib/SecNetPerfMain.cpp
../src/perf/lib/HpsClient.h
../src/perf/lib/PerfServer.h
../src/perf/lib/CMakeLists.txt
../src/perf/lib/Tcp.h
../src/perf/lib/RpsClient.h
../src/perf/lib/Tcp.cpp
../src/perf/lib/ThroughputClient.h
../src/perf/lib/RpsClient.cpp
../src/perf/lib/PerfCommon.h
../src/perf/lib/ThroughputClient.cpp
../src/perf/lib/PerfBase.h
../src/perf/lib/HpsClient.cpp
../src/perf/lib/LatencyHelpers.h
../src/core/unittest/SettingsTest.cpp
../src/core/unittest/SpinFrame.cpp
../src/core/unittest/SlidingWindowExtremumTest.cpp
Expand All @@ -134,6 +122,5 @@
../src/perf/bin/histogram/hdr_histogram.h
../src/perf/bin/histogram/hdr_histogram.c
../src/perf/bin/drvmain.cpp
../src/perf/bin/appmain.cpp
../src/tools/interop/interop.cpp
../src/tools/interop/interop.h
Loading
Loading