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

Enabled gcServer and disabled gcConcurrent for test runners #1987

Closed
wants to merge 1 commit into from
Closed

Enabled gcServer and disabled gcConcurrent for test runners #1987

wants to merge 1 commit into from

Conversation

ivonin
Copy link

@ivonin ivonin commented Apr 10, 2019

Description

Changed the GC settings to match the settings for MS Test v1 runners (QTAgent.exe)

Related issue

Fixes #1967

@msftclas
Copy link

msftclas commented Apr 10, 2019

CLA assistant check
All CLA requirements met.

@ivonin
Copy link
Author

ivonin commented Apr 11, 2019

The check is failed with some acceptance tests broken, but I'm not sure if my changes could affect any of it... The tests have bad history and are failing randomly it seems?

@sharwell
Copy link
Member

Locally I observed gcServer for testhost.x86 reducing test run time significantly. Here's a message I sent on the subject internally:

The only difference between these two test runs is I turned on server GC for testhost.x86.exe:

[4/2/2019 7:18:43 AM Informational] ------ Run test started ------
[4/2/2019 7:18:46 AM Informational] [xUnit.net 00:00:01.8254068]   Discovering: StyleCop.Analyzers.Test.CSharp7
[4/2/2019 7:18:48 AM Informational] [xUnit.net 00:00:03.9438646]   Discovered:  StyleCop.Analyzers.Test.CSharp7
[4/2/2019 7:18:48 AM Informational] [xUnit.net 00:00:03.9871306]   Starting:    StyleCop.Analyzers.Test.CSharp7
[4/2/2019 7:21:12 AM Informational] [xUnit.net 00:02:27.5838838]   Finished:    StyleCop.Analyzers.Test.CSharp7
[4/2/2019 7:21:13 AM Informational] ========== Run test finished: 6446 run (0:02:29.701225) ==========
[4/2/2019 7:21:52 AM Informational] ------ Run test started ------
[4/2/2019 7:21:55 AM Informational] [xUnit.net 00:00:01.6501179]   Discovering: StyleCop.Analyzers.Test.CSharp7
[4/2/2019 7:21:57 AM Informational] [xUnit.net 00:00:03.8203892]   Discovered:  StyleCop.Analyzers.Test.CSharp7
[4/2/2019 7:21:57 AM Informational] [xUnit.net 00:00:03.8693271]   Starting:    StyleCop.Analyzers.Test.CSharp7
[4/2/2019 7:22:33 AM Informational] [xUnit.net 00:00:40.0539226]   Finished:    StyleCop.Analyzers.Test.CSharp7
[4/2/2019 7:22:33 AM Informational] ========== Run test finished: 6446 run (0:00:41.4295855) ==========

Sam

I have not reviewed the scenario with gcConcurrent set.

@sharwell
Copy link
Member

sharwell commented Apr 11, 2019

⚠️ After locally setting this I started to see frequent OutOfMemoryException failures in x86 test runs, which appear to be caused by the substantial increase in memory required to use Server GC on many cores (2990WX). It will be important to address #1985 at the same time.

@ivonin
Copy link
Author

ivonin commented Apr 11, 2019

GCconcurrent=true makes performance slightly worse on our local test stand: 4 minutes 34 seconds median duration vs 4 minutes 28 seconds with GCconcurrent=false (this is the median from 10 runs).

QTAgent.exe has GCconcurrent=false, so combined with my benchmark it seems to be the right call.

@ivonin
Copy link
Author

ivonin commented Apr 22, 2019

Some tests are indeed failing with my changes... I'll look into it shortly, but help will be appreciated

@singhsarab
Copy link
Contributor

Closing stale PRs please re-open if required.

@singhsarab singhsarab closed this Nov 26, 2019
@sharwell
Copy link
Member

I have not seen OOM errors since #1985 was addressed, even with gcServer enabled.

@yar-shukan
Copy link

yar-shukan commented Jul 28, 2021

@sharwell , @ivonin , can this be reopened?

There should be the ability to configure that through .runsettings file (I guess this is more complicated) or it should be the default setting as gcServer mode in theory should perform better for tests executed in parallel.

Considering the build agent case where it's not trivial (or even impossible due to permissions) to modify the shared vsconsole configuration I think enabling or giving the ability to configure gcServer mode has to be reconsidered again.

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.

Setting ServerGC for the test runner
6 participants