-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Initial commit for distributed tests using crank #7323
Conversation
var counterGrain = client.GetGrain<ICounterGrain>(parameters.CounterKey); | ||
|
||
var duration = await counterGrain.GetRunDuration(); | ||
BenchmarksEventSource.Register("duration", Operations.First, Operations.Last, "duration", "duration", "n0"); |
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.
A comment or named parameter might help to make it clear what "n0" means
_logger.LogInformation($"{counter}: {value}"); | ||
BenchmarksEventSource.Register(counter, Operations.First, Operations.Sum, counter, counter, "n0"); | ||
BenchmarksEventSource.Measure(counter, value); | ||
if (string.Compare(counter, "requests", StringComparison.InvariantCultureIgnoreCase) == 0) |
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.
string.Equals seems to be the right choice instead, but it doesn't matter
<OutputType>Exe</OutputType> | ||
<TargetFrameworks>$(TestTargetFrameworks)</TargetFrameworks> | ||
<OrleansBuildTimeCodeGen>true</OrleansBuildTimeCodeGen> | ||
<OutputPath Condition=" '$(DistributedOutputPath)'!='' ">$(DistributedOutputPath)/Distributed.Client</OutputPath> |
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.
"DistributedTestsOutputPath" would be clearer
public async Task IssueRequest(int request) | ||
{ | ||
var (router, targets) = _requestList[request % _requestList.Count]; | ||
await router.Ping(targets); |
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.
For benchmarking purposes, it may make sense to not use 'await' and to elide these instead - but we can do that test optimization later
|
||
public CounterGrain(IOptions<ReportingOptions> options) | ||
{ | ||
Debugger.Break(); |
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.
I think we should remove this Debugger.Break() - I recall that it can cause issues in some environments, but maybe I'm misremembering.
break; | ||
} | ||
} | ||
while (_concurrencyGuard.CurrentCount != commonParameters.PipelineSize) |
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.
I think this technique will perform relatively poorly compared to what we have with ConcurrentLoadGenerator https://github.com/dotnet/orleans/blob/main/test/Benchmarks/Ping/ConcurrentLoadGenerator.cs
f7969ad
to
f150852
Compare
@@ -148,7 +148,7 @@ public void RecordDeliveryFailure() | |||
/// <summary> | |||
/// The limit of the maximum number of items that can be added | |||
/// </summary> | |||
public int GetMaxAddCount() { return 100; } | |||
public int GetMaxAddCount() { return 200; } |
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 seems unrelated to the rest
null
Microsoft Reviewers: Open in CodeFlow